version: "3.8" services: cocoon: build: context: . dockerfile: Dockerfile image: ghcr.io/haileyok/cocoon:latest container_name: cocoon-pds network_mode: host volumes: - ./data:/data/cocoon - ./keys/rotation.key:/keys/rotation.key:ro - ./keys/jwk.key:/keys/jwk.key:ro environment: # Required settings COCOON_DID: ${COCOON_DID} COCOON_HOSTNAME: ${COCOON_HOSTNAME} COCOON_ROTATION_KEY_PATH: /keys/rotation.key COCOON_JWK_PATH: /keys/jwk.key COCOON_CONTACT_EMAIL: ${COCOON_CONTACT_EMAIL} COCOON_RELAYS: ${COCOON_RELAYS:-https://bsky.network} COCOON_ADMIN_PASSWORD: ${COCOON_ADMIN_PASSWORD} COCOON_SESSION_SECRET: ${COCOON_SESSION_SECRET} COCOON_NONCE_SECRET: ${COCOON_NONCE_SECRET} # Server configuration COCOON_ADDR: ":8080" COCOON_DB_TYPE: ${COCOON_DB_TYPE:-turso} COCOON_DATABASE_URL: ${COCOON_DATABASE_URL:-} COCOON_BLOCKSTORE_VARIANT: ${COCOON_BLOCKSTORE_VARIANT:-sqlite} COCOON_TURSO_TOKEN: ${COCOON_TURSO_TOKEN:-} # Optional: SMTP settings for email COCOON_SMTP_USER: ${COCOON_SMTP_USER:-} COCOON_SMTP_PASS: ${COCOON_SMTP_PASS:-} COCOON_SMTP_HOST: ${COCOON_SMTP_HOST:-} COCOON_SMTP_PORT: ${COCOON_SMTP_PORT:-} COCOON_SMTP_EMAIL: ${COCOON_SMTP_EMAIL:-} COCOON_SMTP_NAME: ${COCOON_SMTP_NAME:-} # Optional: S3 configuration COCOON_S3_BACKUPS_ENABLED: ${COCOON_S3_BACKUPS_ENABLED:-false} COCOON_S3_BLOBSTORE_ENABLED: ${COCOON_S3_BLOBSTORE_ENABLED:-false} COCOON_S3_REGION: ${COCOON_S3_REGION:-} COCOON_S3_BUCKET: ${COCOON_S3_BUCKET:-} COCOON_S3_ENDPOINT: ${COCOON_S3_ENDPOINT:-} COCOON_S3_ACCESS_KEY: ${COCOON_S3_ACCESS_KEY:-} COCOON_S3_SECRET_KEY: ${COCOON_S3_SECRET_KEY:-} COCOON_S3_CDN_URL: ${COCOON_S3_CDN_URL:-} # Configure pointing to the subscribe repos service as a sync repos service PUSH_BASED_EVENTS: ${PUSH_BASED_EVENTS:-true} SUBSCRIBE_REPOS_SERVICE_URL: ${SUBSCRIBE_REPOS_SERVICE_URL:-} # Optional: Fallback proxy COCOON_FALLBACK_PROXY: ${COCOON_FALLBACK_PROXY:-} restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/xrpc/_health"] interval: 30s timeout: 10s retries: 3 start_period: 40s volumes: data: driver: local