version: "3.9" services: postgres: image: postgres:15-alpine environment: POSTGRES_DB: shorefront POSTGRES_USER: shorefront POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme} volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U shorefront"] interval: 5s timeout: 5s retries: 5 networks: - shorefront-net backend: build: ./backend environment: DATABASE_URL: postgresql://shorefront:${POSTGRES_PASSWORD:-changeme}@postgres:5432/shorefront JWT_SECRET_KEY: ${JWT_SECRET_KEY:-dev-secret-change-me} JWT_ALGORITHM: HS256 JWT_EXPIRE_MINUTES: 60 depends_on: postgres: condition: service_healthy ports: - "8000:8000" networks: - shorefront-net frontend: build: ./frontend ports: - "80:80" depends_on: - backend networks: - shorefront-net volumes: postgres_data: networks: shorefront-net: driver: bridge