# ── PostgreSQL ────────────────────────────────────────────────────────────── POSTGRES_USER=budget POSTGRES_PASSWORD=budget POSTGRES_DB=budget_tracker # ── Backend (FastAPI) ─────────────────────────────────────────────────────── # Full connection URL — built from the vars above by docker-compose DATABASE_URL=postgresql+asyncpg://budget:budget@db:5432/budget_tracker # IMPORTANT: generate a strong random key for production # python -c "import secrets; print(secrets.token_hex(32))" SECRET_KEY=change-me-in-production ACCESS_TOKEN_EXPIRE_MINUTES=15 REFRESH_TOKEN_EXPIRE_DAYS=7 # Comma-separated list of allowed origins (JSON array syntax) # Production: set to your actual frontend domain, e.g. ["https://budget.example.com"] CORS_ORIGINS=["http://localhost"] # ── Ports (override for local conflicts) ──────────────────────────────────── # Production: frontend is exposed on port 80 (FRONTEND_PORT) FRONTEND_PORT=80 # Dev only: DB_PORT=5432 BACKEND_PORT=8000