services: db: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: nanami_web volumes: - pg_data:/var/lib/postgresql/data ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s timeout: 5s retries: 5 app: build: . restart: unless-stopped ports: - "3000:3000" environment: DATABASE_URL: postgresql://postgres:postgres@db:5432/nanami_web?schema=public NEXTAUTH_SECRET: ${NEXTAUTH_SECRET:-change-me-in-production} NEXTAUTH_URL: ${NEXTAUTH_URL:-http://localhost:3000} volumes: - uploads_data:/app/uploads depends_on: db: condition: service_healthy volumes: pg_data: uploads_data: