diff --git a/docker-compose/full_stack/docker-compose.yml b/docker-compose/full_stack/docker-compose.yml new file mode 100644 index 0000000..e6cb3bb --- /dev/null +++ b/docker-compose/full_stack/docker-compose.yml @@ -0,0 +1,45 @@ +version: '3.3' +services: + backend_db: + image: postgres:11-alpine + environment: + POSTGRES_DB: lfk + POSTGRES_PASSWORD: changeme + POSTGRES_USER: lfk + volumes: + - ./db:/var/lib/postgresql/data + networks: + - default + backend_server: + image: registry.odit.services/lfk/backend:dev + environment: + APP_PORT: '4010' + DB_HOST: backend_db + DB_NAME: lfk + DB_PASSWORD: changeme + DB_PORT: '5432' + DB_TYPE: postgres + DB_USER: lfk + NODE_ENV: production + networks: + - default + frontend_server: + image: registry.odit.services/lfk/backend:dev + networks: + - default + volumes: + - ./env.js:/usr/share/nginx/html/env.js + proxy: + image: nginx:latest + ports: + - 4010:80 + networks: + - default + depends_on: + - backend + - frontend + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf +networks: + default: + driver: overlay diff --git a/docker-compose/full_stack/env.js b/docker-compose/full_stack/env.js new file mode 100644 index 0000000..1439ec9 --- /dev/null +++ b/docker-compose/full_stack/env.js @@ -0,0 +1,7 @@ +const config = { + baseurl: 'http://localhost:4010', + // optional params ⏬ + fallback_username: 'demo', + fallback_password: 'demo', + prefersHashRouting: false +}; diff --git a/docker-compose/full_stack/nginx.conf b/docker-compose/full_stack/nginx.conf new file mode 100644 index 0000000..f094548 --- /dev/null +++ b/docker-compose/full_stack/nginx.conf @@ -0,0 +1,36 @@ +worker_processes 1; + +events { worker_connections 1024; } + +http { + server { + listen 80; #Port that the nginx server listens on + + #Location / redicts every url not specified in another location to the frontend container + location / { + proxy_pass http://frontend_server:80/; + proxy_redirect off; + + #Set the headers needed by the frontend for smooth proxying + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Host $server_name; + } + + #Location /api redicts every api related url to the backend container. + location /api { + proxy_pass http://backend_server:4010; + proxy_redirect off; + + #Set the headers needed by the backend for smooth proxying + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection keep-alive; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Host $server_name; + proxy_set_header X-Forwarded-Prefix /api; + } + } +} \ No newline at end of file