diff --git a/.beans/nuzlocke-tracker-vpn5--create-production-docker-compose-file.md b/.beans/nuzlocke-tracker-vpn5--create-production-docker-compose-file.md index 28086e7..8fa1ac2 100644 --- a/.beans/nuzlocke-tracker-vpn5--create-production-docker-compose-file.md +++ b/.beans/nuzlocke-tracker-vpn5--create-production-docker-compose-file.md @@ -1,10 +1,11 @@ --- # nuzlocke-tracker-vpn5 title: Create production docker-compose file -status: todo +status: in-progress type: task +priority: normal created_at: 2026-02-09T15:30:41Z -updated_at: 2026-02-09T15:30:41Z +updated_at: 2026-02-09T16:57:11Z parent: nuzlocke-tracker-ahza --- diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..c3bb6a1 --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,38 @@ +services: + api: + image: gitea.nerdboden.de/julian/nuzlocke-tracker-api:latest + command: > + sh -c "alembic upgrade head && uvicorn app.main:app --host 0.0.0.0 --port 8000 --app-dir src" + environment: + - DEBUG=false + - DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/nuzlocke + depends_on: + db: + condition: service_healthy + restart: unless-stopped + + frontend: + image: gitea.nerdboden.de/julian/nuzlocke-tracker-frontend:latest + ports: + - "8080:80" + depends_on: + - api + restart: unless-stopped + + db: + image: postgres:16-alpine + environment: + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + - POSTGRES_DB=nuzlocke + volumes: + - postgres_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres"] + interval: 5s + timeout: 5s + retries: 5 + restart: unless-stopped + +volumes: + postgres_data: