version: "3.8" services: postgres: image: postgres:17-alpine restart: unless-stopped environment: POSTGRES_USER: paperclip POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: paperclip healthcheck: test: ["CMD-SHELL", "pg_isready -U paperclip -d paperclip"] interval: 10s timeout: 5s retries: 10 volumes: - postgres-data:/var/lib/postgresql/data paperclip: image: ghcr.io/paperclipai/paperclip:latest restart: unless-stopped depends_on: postgres: condition: service_healthy environment: HOST: 0.0.0.0 PORT: "3100" SERVE_UI: "true" DATABASE_URL: ${DATABASE_URL} BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET} PAPERCLIP_HOME: /paperclip PAPERCLIP_INSTANCE_ID: default PAPERCLIP_CONFIG: /paperclip/instances/default/config.json PAPERCLIP_DEPLOYMENT_MODE: ${PAPERCLIP_DEPLOYMENT_MODE} PAPERCLIP_DEPLOYMENT_EXPOSURE: ${PAPERCLIP_DEPLOYMENT_EXPOSURE} PAPERCLIP_PUBLIC_URL: ${PAPERCLIP_PUBLIC_URL} expose: - "3100" volumes: - paperclip-data:/paperclip volumes: postgres-data: {} paperclip-data: {}