diff --git a/configs/tokenskey.json b/configs/tokenskey.json
new file mode 100644
index 0000000000000000000000000000000000000000..005f9dc4c2eb6aa22dc3c213bd2591e846f1bc98
--- /dev/null
+++ b/configs/tokenskey.json
@@ -0,0 +1,3 @@
+{
+	"Key": "IZOEJFgX0z/Bfx403KdRjfA6FTMcJiOtUb9a4vMWhlU="
+}
\ No newline at end of file
diff --git a/docker-compose.old.yml b/docker-compose.old.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7d966d379a2f0381d8de14b1c987e2c2117a8a62
--- /dev/null
+++ b/docker-compose.old.yml
@@ -0,0 +1,32 @@
+version: '3.7'
+services:
+  nginx:
+    image: nginx:1.16
+    restart: unless-stopped
+    volumes:
+      - ./nginx/site.conf:/etc/nginx/conf.d/default.conf
+      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
+    command: ["nginx", "-g", "daemon off;"]
+    ports:
+        - 8081:8080
+    networks:
+      backoffice:
+    depends_on:
+      - front
+    links:
+      - front
+
+  front:
+    image: bayesimpact/react-base
+    restart: unless-stopped
+    volumes:
+      - ./:/usr/app
+    working_dir: /usr/app
+    ports:
+        - 3000:3000
+    networks:
+        backoffice:
+
+networks:
+    backoffice:
+      
\ No newline at end of file
diff --git a/docker-compose.pro.yml b/docker-compose.pro.yml
deleted file mode 100644
index b69125f9f54d54aa3da8f114bdaa0733e3d6f357..0000000000000000000000000000000000000000
--- a/docker-compose.pro.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: '3.7'
-services:
-  nginx:
-    image: backoffice #TODO: replace with forge image tag
-    build:
-      context: .
-    restart: unless-stopped
-    ports:
-      - 8080:80
diff --git a/docker-compose.yml b/docker-compose.yml
index 7d966d379a2f0381d8de14b1c987e2c2117a8a62..acf1773f51ce1bd176a32f888f0cad06b07ae04b 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,32 +1,64 @@
 version: '3.7'
 services:
   nginx:
-    image: nginx:1.16
+    image: test
     restart: unless-stopped
+    ports:
+      - 443:443
+    networks:
+      backoffice:
     volumes:
       - ./nginx/site.conf:/etc/nginx/conf.d/default.conf
       - ./nginx/nginx.conf:/etc/nginx/nginx.conf
-    command: ["nginx", "-g", "daemon off;"]
+      - ./cert.pem:/etc/nginx/cert.pem
+      - ./key.pem:/etc/nginx/key.pem
+
+  database:
+    image: mysql:5
     ports:
-        - 8081:8080
+      - 3306:3306
     networks:
       backoffice:
-    depends_on:
-      - front
-    links:
-      - front
+    environment:
+      MYSQL_ROOT_PASSWORD: ${DATABASE_PASSWORD}
+      MYSQL_DATABASE: ${DATABASE_NAME}
+    healthcheck:
+      test: mysqladmin ping -h 127.0.0.1 -u root --password=$$MYSQL_ROOT_PASSWORD
+      interval: 5s
+      timeout: 10s
+      retries: 60
 
-  front:
-    image: bayesimpact/react-base
+  backend:
+    image: back
+    networks:
+      backoffice:
+    depends_on:
+      database:
+        condition: service_healthy
     restart: unless-stopped
     volumes:
-      - ./:/usr/app
-    working_dir: /usr/app
+      - /etc/localtime:/etc/localtime:ro
+      - ./configs:/app/configs
+      - ./letsencrypt_cache:/app/letsencrypt_cache
+      - ./data:/app/data
     ports:
-        - 3000:3000
-    networks:
-        backoffice:
+      - ${HTTPS_PORT}:${HTTPS_PORT}
+      - 8090:8090
+    environment:
+      - HOSTNAME=${HOSTNAME}
+      - HTTPS_PORT=${HTTPS_PORT}
+      - ADMIN_ROLE=${ADMIN_ROLE}
+      - REDIRECT_URL=${REDIRECT_URL}
+      - CLIENT_ID=${CLIENT_ID}
+      - CLIENT_SECRET=${CLIENT_SECRET}
+      - AUTH_URL=${AUTH_URL}
+      - TOKEN_URL=${TOKEN_URL}
+      - USERINFO_URL=${USERINFO_URL}
+      - DEBUG_MODE=${DEBUG_MODE}
+      - DATABASE_USER=${DATABASE_USER}
+      - DATABASE_NAME=${DATABASE_NAME}
+      - DATABASE_PASSWORD=${DATABASE_PASSWORD}
+      - DATABASE_HOST=database
 
 networks:
-    backoffice:
-      
\ No newline at end of file
+  backoffice:
diff --git a/nginx/nginx.conf b/nginx/nginx.conf
index bbb55f1abbc00ea4cfb5b8f3726e026f6bdade3e..af0a4a69be83e562124788fe33855439154811aa 100644
--- a/nginx/nginx.conf
+++ b/nginx/nginx.conf
@@ -1,4 +1,4 @@
-worker_processes  1;
+worker_processes  auto;
 error_log  /var/log/nginx/error.log warn;
 pid        /var/run/nginx.pid;
 
@@ -20,6 +20,7 @@ http {
     #tcp_nopush     on;
 
     keepalive_timeout  65;
+    keepalive_requests 65;
 
     # Gzip conf
     gzip on;
diff --git a/nginx/site.conf b/nginx/site.conf
index 94068a9a83bf29b7c574da5ff62ccb1e93b81bd8..e6d27c771cb85e336cc864e81228305a257148c7 100644
--- a/nginx/site.conf
+++ b/nginx/site.conf
@@ -1,15 +1,26 @@
 server {
-        listen 8080;
-        server_name localhost;
+        listen 443 ssl;
+        server_name         localhost;
+        ssl_certificate     /etc/nginx/cert.pem;
+        ssl_certificate_key /etc/nginx/key.pem;
+        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
+        ssl_ciphers         HIGH:!aNULL:!MD5;
 
         location / {
-            proxy_pass http://front:3000;
-            proxy_set_header Upgrade $http_upgrade;
-            proxy_set_header Connection $http_connection;
-            proxy_set_header Host $host;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            add_header Access-Control-Allow-Origin *;
+            root /usr/share/nginx/html;
+            index index.html index.htm;
+            try_files $uri $uri/ /index.html =404;
+        }
+        location /api {  
+            proxy_pass https://backend:1443/api;
+        }
+        location /OAuth2Login {
+            proxy_pass https://backend:1443/OAuth2Login;
+        }
+        location /OAuth2Callback {
+            proxy_pass https://backend:1443/OAuth2Callback;
+        }
+        location /Logout {
+            proxy_pass https://backend:1443/Logout;
         }
 }
diff --git a/src/components/Layout/layout.module.scss b/src/components/Layout/layout.module.scss
index 4b8d70d0c0c416688a4ea43c470811589c52aa1e..a67ace330c72728ec231cf94cc79708c18c15b14 100644
--- a/src/components/Layout/layout.module.scss
+++ b/src/components/Layout/layout.module.scss
@@ -14,7 +14,7 @@
   height: 100vh;
   z-index: 1501;
 
-  @media screen and(max-width: $width-phone) {
+  @media screen and(max-width: $width-tablet) {
     width: 0;
     display: none;
   }
@@ -35,7 +35,7 @@
   box-shadow: 0px 5px 5px rgb(0 0 0 / 20%), 0px 3px 14px rgb(0 0 0 / 12%),
     0px 8px 10px rgb(0 0 0 / 14%);
   background: $dark-light;
-  @media screen and(max-width: $width-phone) {
+  @media screen and(max-width: $width-tablet) {
     margin-left: 0;
     padding-bottom: $navbar-height;
   }
diff --git a/src/components/Login/login.scss b/src/components/Login/login.scss
index 8ce4f8b00b012ee570ef6fadb4bc406d63e57989..ee3b921580016004c02261c867ea1a3b9fc51900 100644
--- a/src/components/Login/login.scss
+++ b/src/components/Login/login.scss
@@ -5,5 +5,6 @@
   min-height: 95vh;
   .container {
     margin: auto;
+    padding: 2rem;
   }
 }
diff --git a/src/hooks/useAuth.ts b/src/hooks/useAuth.ts
index aa4e1c1b1264799e29a4de3ad8bdff3a5dd99556..5033ce15bcea29d77a1e410c8f70ba7839ade792 100644
--- a/src/hooks/useAuth.ts
+++ b/src/hooks/useAuth.ts
@@ -3,7 +3,7 @@ import axios from 'axios'
 import { UserContext } from './userContext'
 import { useHistory } from 'react-router-dom'
 
-const _apiUrl: string = 'https://localhost:1443/'
+const _apiUrl: string = 'https://localhost:443/'
 
 export interface Auth {
   loginUser: () => Promise<void>
@@ -18,7 +18,7 @@ export const useAuth = (): Auth => {
   //login user
   const loginUser = async (): Promise<void> => {
     try {
-      await axios.get(`${_apiUrl}OAuth2Login`)
+      await axios.get(`${_apiUrl}OAuth2Login`, { withCredentials: true })
       await setUserContext()
     } catch (e) {
       setError(e)
@@ -37,10 +37,11 @@ export const useAuth = (): Auth => {
   //set user in context and push them home
   const setUserContext = async (): Promise<void> => {
     try {
-      const { data } = await axios.get(`${_apiUrl}api/common/WhoAmI`)
+      const { data } = await axios.get(`${_apiUrl}api/common/WhoAmI`, {
+        withCredentials: true,
+      })
       if (data && setUser) {
         setUser(data)
-        console.log('usertoContext', data)
         history.push('/editing')
       }
     } catch (e) {
diff --git a/src/hooks/useFindUser.ts b/src/hooks/useFindUser.ts
index 5a3c38eedb100f8bec0519f5895799fa229440fa..2d3ae84939351b8b64a9d19a34de65e241064609 100644
--- a/src/hooks/useFindUser.ts
+++ b/src/hooks/useFindUser.ts
@@ -5,7 +5,7 @@ import { User } from '../models/user.model'
 const useFindUser = () => {
   const [user, setUser] = useState<User | null>(null)
   const [isLoading, setLoading] = useState<boolean>(true)
-  const _apiUrl: string = 'https://localhost:1443/'
+  const _apiUrl: string = 'https://localhost:443/'
 
   useEffect(() => {
     async function findUser() {
diff --git a/src/services/monthlyNews.service.ts b/src/services/monthlyNews.service.ts
index 920018e7fd85a95c928eaa63520effaa817725a8..2185f2a010e2184d7f5de11d1396a09eeebc7917 100644
--- a/src/services/monthlyNews.service.ts
+++ b/src/services/monthlyNews.service.ts
@@ -5,7 +5,7 @@ import { toast } from 'react-toastify'
 export class MonthlyNewsService {
   private readonly _apiUrl: string
   constructor() {
-    this._apiUrl = 'https://localhost:1443/'
+    this._apiUrl = 'https://localhost:443/'
   }
   /**
    * Creates a quotation and header for selected month