services: db: image: postgres:17-alpine environment: POSTGRES_USER: paperclip POSTGRES_PASSWORD: paperclip POSTGRES_DB: paperclip healthcheck: test: ["CMD-SHELL", "pg_isready -U paperclip -d paperclip"] interval: 2s timeout: 5s retries: 30 ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data server: build: . ports: - "3100:3100" environment: DATABASE_URL: postgres://paperclip:paperclip@db:5432/paperclip PORT: "3100" SERVE_UI: "true" PAPERCLIP_DEPLOYMENT_MODE: "authenticated" PAPERCLIP_DEPLOYMENT_EXPOSURE: "private" PAPERCLIP_PUBLIC_URL: "${PAPERCLIP_PUBLIC_URL:-http://localhost:3100}" BETTER_AUTH_SECRET: "${BETTER_AUTH_SECRET:?BETTER_AUTH_SECRET must be set}" volumes: - paperclip-data:/paperclip depends_on: db: condition: service_healthy volumes: pgdata: paperclip-data: