diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 233e53a..ab457db 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -1,25 +1,21 @@ services: db: image: postgres:17-alpine - container_name: wedding_db environment: POSTGRES_DB: ${POSTGRES_DB:-wedding} POSTGRES_USER: ${POSTGRES_USER:-wedding} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} volumes: - postgres_data:/var/lib/postgresql/data - networks: - - app_network restart: unless-stopped healthcheck: - test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-wedding}"] + test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-wedding} -d ${POSTGRES_DB:-wedding}"] interval: 5s timeout: 5s - retries: 5 + retries: 10 backend: image: 192.168.31.100:3847/arrelin/wedding-backend:latest - container_name: wedding_backend environment: DATABASE_URL: postgres://${POSTGRES_USER:-wedding}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB:-wedding} PORT: 8080 @@ -27,32 +23,29 @@ services: depends_on: db: condition: service_healthy - networks: - - app_network - restart: unless-stopped - - frontend: - image: 192.168.31.100:3847/arrelin/wedding-frontend:latest - container_name: wedding_frontend - depends_on: - - backend - networks: - - app_network - - coolify restart: unless-stopped labels: - traefik.enable=true - - traefik.http.routers.wedding-frontend.rule=Host(`weddinge.duckdns.org`) + - 'traefik.http.routers.wedding-backend.rule=Host(`weddinge.duckdns.org`) && PathPrefix(`/api`)' + - traefik.http.routers.wedding-backend.entrypoints=https + - traefik.http.routers.wedding-backend.tls=true + - traefik.http.routers.wedding-backend.tls.certresolver=letsencrypt + - traefik.http.services.wedding-backend.loadbalancer.server.port=8080 + - traefik.http.routers.wedding-backend.priority=10 + + frontend: + image: 192.168.31.100:3847/arrelin/wedding-frontend:latest + depends_on: + - backend + restart: unless-stopped + labels: + - traefik.enable=true + - 'traefik.http.routers.wedding-frontend.rule=Host(`weddinge.duckdns.org`)' - traefik.http.routers.wedding-frontend.entrypoints=https - traefik.http.routers.wedding-frontend.tls=true + - traefik.http.routers.wedding-frontend.tls.certresolver=letsencrypt - traefik.http.services.wedding-frontend.loadbalancer.server.port=80 - -networks: - app_network: - driver: bridge - coolify: - external: true + - traefik.http.routers.wedding-frontend.priority=1 volumes: postgres_data: - driver: local