services: db: image: postgres:16-alpine environment: POSTGRES_USER: vynl POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: vynl volumes: - pgdata:/var/lib/postgresql/data restart: unless-stopped redis: image: redis:7-alpine restart: unless-stopped backend: build: context: ./backend dockerfile: Dockerfile.prod env_file: ./backend/.env depends_on: - db - redis restart: unless-stopped frontend: build: context: ./frontend dockerfile: Dockerfile.prod args: VITE_API_URL: ${VITE_API_URL:-} restart: unless-stopped caddy: image: caddy:2-alpine ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - caddy_data:/data - caddy_config:/config depends_on: - backend - frontend restart: unless-stopped volumes: pgdata: caddy_data: caddy_config: