diff --git a/.drone.yml b/.drone.yml
index 23b9bea..2615559 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -14,8 +14,8 @@ steps:
         - master
     environment:
       REACT_APP_PUBLIC_PATH: https://map.vault48.org/
-      REACT_APP_API_ADDR: https://backend.map.vault48.org
-      REACT_APP_OSRM_URL: https://vault48.org:5001/route/v1
+      REACT_APP_API_ADDR: https://backend-map.vault48.org
+      REACT_APP_OSRM_URL: https://osrm.vault48.org/route/v1
       REACT_APP_OSRM_PROFILE: bike
     settings:
       dockerfile: docker/www/Dockerfile
diff --git a/.env.example b/.env.example
index 0cd2ce7..0c12873 100644
--- a/.env.example
+++ b/.env.example
@@ -1,4 +1,4 @@
-REACT_APP_PUBLIC_PATH = https://alpha-map.vault48.org/
-REACT_APP_API_ADDR = https://alpha-map.vault48.org:3001
+REACT_APP_PUBLIC_PATH = https://map.vault48.org/
+REACT_APP_API_ADDR = https://backend.map.vault48.org
 REACT_APP_OSRM_URL = https://vault48.org:5001/route/v1
 REACT_APP_OSRM_PROFILE = bike
diff --git a/docker/www/Dockerfile b/docker/www/Dockerfile
index 30177f6..0c348e7 100644
--- a/docker/www/Dockerfile
+++ b/docker/www/Dockerfile
@@ -1,11 +1,26 @@
 # stage1 as builder
 FROM node:erbium-alpine as builder
+
 COPY package.json yarn.lock ./
+
 RUN yarn
+
 COPY . .
+
+ARG REACT_APP_PUBLIC_PATH
+ARG REACT_APP_API_ADDR
+ARG REACT_APP_OSRM_URL
+ARG REACT_APP_OSRM_PROFILE
+
+ENV REACT_APP_PUBLIC_PATH $REACT_APP_PUBLIC_PATH
+ENV REACT_APP_API_ADDR $REACT_APP_API_ADDR
+ENV REACT_APP_OSRM_URL $REACT_APP_OSRM_URL
+ENV REACT_APP_OSRM_PROFILE $REACT_APP_OSRM_PROFILE
+
 RUN yarn build
 
 FROM nginx:alpine
+
 COPY docker/www/nginx.conf /etc/nginx/nginx.conf
 RUN rm -rf /usr/share/nginx/html/*
 COPY --from=builder /build /usr/share/nginx/html
diff --git a/public/index.html b/public/index.html
index 0917b3d..b109d7a 100644
--- a/public/index.html
+++ b/public/index.html
@@ -6,6 +6,9 @@
 
   <link href="https://fonts.googleapis.com/css?family=Rubik:300,400,500,700&amp;subset=cyrillic" rel="stylesheet" />
   <title>Редактор маршрутов</title>
+  
+  <!-- analytics, lol -->
+  <script async src="https://anal.vault48.org/script.js" data-website-id="9f2c8b59-93ff-4bcc-9ab6-11541f68f198"></script>
 
   <link rel="shortcut icon" href="/favicon.png" type="image/png">
   <meta property="og:image" content="/misc/vk_preview.png" />
diff --git a/src/components/panels/UserPanel.tsx b/src/components/panels/UserPanel.tsx
index 047643c..ef198b6 100644
--- a/src/components/panels/UserPanel.tsx
+++ b/src/components/panels/UserPanel.tsx
@@ -63,7 +63,7 @@ export class UserPanelUnconnected extends PureComponent<Props, State> {
   };
 
   componentDidMount() {
-    window.addEventListener('message', e => {
+    window.addEventListener('message', (e) => {
       const { data } = e;
 
       if (
@@ -123,7 +123,7 @@ export class UserPanelUnconnected extends PureComponent<Props, State> {
 
   openGpxDialog = () => {
     this.props.editorChangeMode(MODES.GPX);
-  }
+  };
 
   render() {
     const {
diff --git a/src/config/frontend.ts b/src/config/frontend.ts
index c498a40..af1bdb2 100644
--- a/src/config/frontend.ts
+++ b/src/config/frontend.ts
@@ -5,9 +5,10 @@ const PUBLIC_PATH = process.env.REACT_APP_PUBLIC_PATH || '';
 const API_ADDR = process.env.REACT_APP_API_ADDR || '';
 const OSRM_URL = process.env.REACT_APP_OSRM_URL || '';
 const OSRM_PROFILE = process.env.REACT_APP_OSRM_PROFILE || 'bike';
-const OSRM_TEST_URL = ([south_west, north_east]: LatLngLiteral[]) => (
-  `${OSRM_URL}/${OSRM_PROFILE}/${Object.values(south_west).join(',')};${Object.values(north_east).join(',')}`
-);
+const OSRM_TEST_URL = ([south_west, north_east]: LatLngLiteral[]) =>
+  `${OSRM_URL}/${OSRM_PROFILE}/${Object.values(south_west).join(',')};${Object.values(
+    north_east
+  ).join(',')}`;
 
 export const CLIENT = {
   OSRM_URL,