Frontend guard shows login screen for unauthenticated users. Backend verifies Firebase ID tokens on all protected endpoints. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
50 lines
1.4 KiB
YAML
50 lines
1.4 KiB
YAML
services:
|
|
favs-db:
|
|
image: postgres:16-alpine
|
|
environment:
|
|
POSTGRES_USER: favs
|
|
POSTGRES_PASSWORD: favs
|
|
POSTGRES_DB: favs
|
|
ports:
|
|
- "5433:5432"
|
|
volumes:
|
|
- favs_pgdata:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U favs"]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 5
|
|
|
|
favs-api:
|
|
build: ./backend
|
|
ports:
|
|
- "8000:8000"
|
|
environment:
|
|
DATABASE_URL: postgresql+asyncpg://favs:favs@favs-db:5432/favs
|
|
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
|
|
FIREBASE_PROJECT_ID: ${VITE_FIREBASE_PROJECT_ID}
|
|
depends_on:
|
|
favs-db:
|
|
condition: service_healthy
|
|
volumes:
|
|
- ./backend:/app
|
|
command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
|
|
|
|
favs-ui:
|
|
build:
|
|
context: ./frontend
|
|
args:
|
|
- VITE_FIREBASE_API_KEY=${VITE_FIREBASE_API_KEY}
|
|
- VITE_FIREBASE_AUTH_DOMAIN=${VITE_FIREBASE_AUTH_DOMAIN}
|
|
- VITE_FIREBASE_PROJECT_ID=${VITE_FIREBASE_PROJECT_ID}
|
|
- VITE_FIREBASE_STORAGE_BUCKET=${VITE_FIREBASE_STORAGE_BUCKET}
|
|
- VITE_FIREBASE_MESSAGING_SENDER_ID=${VITE_FIREBASE_MESSAGING_SENDER_ID}
|
|
- VITE_FIREBASE_APP_ID=${VITE_FIREBASE_APP_ID}
|
|
- VITE_FIREBASE_MEASUREMENT_ID=${VITE_FIREBASE_MEASUREMENT_ID}
|
|
ports:
|
|
- "3000:80"
|
|
depends_on:
|
|
- favs-api
|
|
|
|
volumes:
|
|
favs_pgdata:
|