services: db: image: postgres:16-alpine environment: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB} volumes: - pgdata:/var/lib/postgresql/data restart: unless-stopped backend: build: ./backend environment: DATABASE_URL: postgresql+asyncpg://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB} ADMIN_PASSWORD: ${ADMIN_PASSWORD} depends_on: - db restart: unless-stopped frontend: build: ./frontend restart: unless-stopped proxy: image: nginx:alpine ports: - "80:80" - "443:443" volumes: - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro - ./ssl/cert.pem:/etc/nginx/ssl/cert.pem:ro - ./ssl/key.pem:/etc/nginx/ssl/key.pem:ro depends_on: - backend - frontend restart: unless-stopped volumes: pgdata: