From 5627f37d9f7feafa6ec0cb02b8a2da1d88d36f5e Mon Sep 17 00:00:00 2001 From: Gabriel Majeri Date: Fri, 24 Jan 2025 11:41:31 +0200 Subject: [PATCH] Break up Docker Compose files into dev and production versions --- compose.production.yml | 75 +++++++++++++++++++++++++++++ compose.yml | 65 +------------------------ src/app/admin/auth/sign-in/page.tsx | 5 +- 3 files changed, 81 insertions(+), 64 deletions(-) create mode 100644 compose.production.yml diff --git a/compose.production.yml b/compose.production.yml new file mode 100644 index 0000000..1ae912c --- /dev/null +++ b/compose.production.yml @@ -0,0 +1,75 @@ +services: + # Container for web app + web: + build: . + depends_on: + - postgres + - nginx-proxy-acme + restart: unless-stopped + networks: + - nginx-proxy + - database + environment: + DATABASE_URL: postgresql://taxes_app:dev_pwd@postgres:5432/taxes?schema=public + VIRTUAL_HOST: ponou.unibuc.ro + LETSENCRYPT_HOST: ponou.unibuc.ro + + # Container for NGINX reverse proxy + nginx-proxy: + image: nginxproxy/nginx-proxy:latest + restart: unless-stopped + ports: + - 80:80 + - 443:443 + volumes: + - nginx-certs:/etc/nginx/certs + - nginx-vhost:/etc/nginx/vhost.d + - nginx-html:/usr/share/nginx/html + - /var/run/docker.sock:/tmp/docker.sock:ro + networks: + - nginx-proxy + labels: + - com.github.nginx-proxy.nginx + environment: + TRUST_DOWNSTREAM_PROXY: false + + # ACME companion for NGINX, for automatical TLS certificate generation + nginx-proxy-acme: + image: nginxproxy/acme-companion:latest + restart: unless-stopped + depends_on: + - nginx-proxy + volumes: + - nginx-certs:/etc/nginx/certs + - nginx-vhost:/etc/nginx/vhost.d + - nginx-html:/usr/share/nginx/html + - /etc/acme.sh + - /var/run/docker.sock:/var/run/docker.sock:ro + networks: + - nginx-proxy + environment: + DEFAULT_EMAIL: contact@it.unibuc.ro + + # Database container + postgres: + image: postgres:16.1 + expose: + - 5432 + environment: + POSTGRES_USER: taxes_app + POSTGRES_PASSWORD: dev_pwd + POSTGRES_DB: taxes + volumes: + - db-data:/var/lib/postgresql/data + networks: + - database + +volumes: + nginx-certs: + nginx-vhost: + nginx-html: + db-data: + +networks: + nginx-proxy: + database: diff --git a/compose.yml b/compose.yml index 03d05c1..f008d11 100644 --- a/compose.yml +++ b/compose.yml @@ -1,75 +1,14 @@ services: - # Container for web app - web: - build: . - depends_on: - - postgres - - nginx-proxy-acme - restart: unless-stopped - networks: - - nginx-proxy - - database - environment: - DATABASE_URL: postgresql://taxes_app:dev_pwd@postgres:5432/taxes?schema=public - VIRTUAL_HOST: ponou.unibuc.ro - LETSENCRYPT_HOST: ponou.unibuc.ro - - # Container for NGINX reverse proxy - nginx-proxy: - image: nginxproxy/nginx-proxy:latest - restart: unless-stopped - ports: - - 80:80 - - 443:443 - volumes: - - nginx-certs:/etc/nginx/certs - - nginx-vhost:/etc/nginx/vhost.d - - nginx-html:/usr/share/nginx/html - - /var/run/docker.sock:/tmp/docker.sock:ro - networks: - - nginx-proxy - labels: - - com.github.nginx-proxy.nginx - environment: - TRUST_DOWNSTREAM_PROXY: false - - # ACME companion for NGINX, for automatical TLS certiifcate generation - nginx-proxy-acme: - image: nginxproxy/acme-companion:latest - restart: unless-stopped - depends_on: - - nginx-proxy - volumes: - - nginx-certs:/etc/nginx/certs - - nginx-vhost:/etc/nginx/vhost.d - - nginx-html:/usr/share/nginx/html - - /etc/acme.sh - - /var/run/docker.sock:/var/run/docker.sock:ro - networks: - - nginx-proxy - environment: - DEFAULT_EMAIL: contact@it.unibuc.ro - - # Database container postgres: image: postgres:16.1 - expose: - - 5432 + ports: + - 5432:5432 environment: POSTGRES_USER: taxes_app POSTGRES_PASSWORD: dev_pwd POSTGRES_DB: taxes volumes: - db-data:/var/lib/postgresql/data - networks: - - database volumes: - nginx-certs: - nginx-vhost: - nginx-html: db-data: - -networks: - nginx-proxy: - database: diff --git a/src/app/admin/auth/sign-in/page.tsx b/src/app/admin/auth/sign-in/page.tsx index ff96c39..ef9b528 100644 --- a/src/app/admin/auth/sign-in/page.tsx +++ b/src/app/admin/auth/sign-in/page.tsx @@ -1,9 +1,12 @@ +import { Suspense } from "react"; import SignInButton from "./SignInButton"; export default async function SignInPage() { return (
- + + +
); }