services: postgresql: image: postgres:16 restart: unless-stopped env_file: - .env environment: POSTGRES_USER: ${POSTGRESQL_USER:-zipline} POSTGRES_PASSWORD: ${POSTGRESQL_PASSWORD:?POSTGRESSQL_PASSWORD is required} POSTGRES_DB: ${POSTGRESQL_DB:-zipline} volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ['CMD', 'pg_isready', '-U', 'zipline'] interval: 10s timeout: 5s retries: 5 zipline: image: ghcr.io/diced/zipline ports: - '3005:3000' env_file: - .env environment: - DATABASE_URL=postgres://${POSTGRESQL_USER:-zipline}:${POSTGRESQL_PASSWORD}@postgresql:5432/${POSTGRESQL_DB:-zipline} depends_on: postgresql: condition: service_healthy volumes: - './uploads:/zipline/uploads' - './public:/zipline/public' - './themes:/zipline/themes' networks: - caddy_proxy - default healthcheck: test: ['CMD', 'wget', '-q', '--spider', 'http://localhost:3000/api/healthcheck'] interval: 15s timeout: 2s retries: 2 volumes: pgdata: networks: caddy_proxy: external: true