forked from
willdot.net/cocoon
A fork of the Cocoon PDS but being made more distributed.
1version: "3.8"
2
3services:
4 cocoon:
5 build:
6 context: .
7 dockerfile: Dockerfile
8 image: ghcr.io/haileyok/cocoon:latest
9 container_name: cocoon-pds
10 network_mode: host
11 volumes:
12 - ./data:/data/cocoon
13 - ./keys/rotation.key:/keys/rotation.key:ro
14 - ./keys/jwk.key:/keys/jwk.key:ro
15 environment:
16 # Required settings
17 COCOON_DID: ${COCOON_DID}
18 COCOON_HOSTNAME: ${COCOON_HOSTNAME}
19 COCOON_ROTATION_KEY_PATH: /keys/rotation.key
20 COCOON_JWK_PATH: /keys/jwk.key
21 COCOON_CONTACT_EMAIL: ${COCOON_CONTACT_EMAIL}
22 COCOON_RELAYS: ${COCOON_RELAYS:-https://bsky.network}
23 COCOON_ADMIN_PASSWORD: ${COCOON_ADMIN_PASSWORD}
24 COCOON_SESSION_SECRET: ${COCOON_SESSION_SECRET}
25 COCOON_NONCE_SECRET: ${COCOON_NONCE_SECRET}
26
27 # Server configuration
28 COCOON_ADDR: ":8080"
29 COCOON_DB_TYPE: ${COCOON_DB_TYPE:-turso}
30 COCOON_DATABASE_URL: ${COCOON_DATABASE_URL:-}
31 COCOON_BLOCKSTORE_VARIANT: ${COCOON_BLOCKSTORE_VARIANT:-sqlite}
32 COCOON_TURSO_TOKEN: ${COCOON_TURSO_TOKEN:-}
33
34 # Optional: SMTP settings for email
35 COCOON_SMTP_USER: ${COCOON_SMTP_USER:-}
36 COCOON_SMTP_PASS: ${COCOON_SMTP_PASS:-}
37 COCOON_SMTP_HOST: ${COCOON_SMTP_HOST:-}
38 COCOON_SMTP_PORT: ${COCOON_SMTP_PORT:-}
39 COCOON_SMTP_EMAIL: ${COCOON_SMTP_EMAIL:-}
40 COCOON_SMTP_NAME: ${COCOON_SMTP_NAME:-}
41
42 # Optional: S3 configuration
43 COCOON_S3_BACKUPS_ENABLED: ${COCOON_S3_BACKUPS_ENABLED:-false}
44 COCOON_S3_BLOBSTORE_ENABLED: ${COCOON_S3_BLOBSTORE_ENABLED:-false}
45 COCOON_S3_REGION: ${COCOON_S3_REGION:-}
46 COCOON_S3_BUCKET: ${COCOON_S3_BUCKET:-}
47 COCOON_S3_ENDPOINT: ${COCOON_S3_ENDPOINT:-}
48 COCOON_S3_ACCESS_KEY: ${COCOON_S3_ACCESS_KEY:-}
49 COCOON_S3_SECRET_KEY: ${COCOON_S3_SECRET_KEY:-}
50 COCOON_S3_CDN_URL: ${COCOON_S3_CDN_URL:-}
51
52 # Configure pointing to the subscribe repos service as a sync repos service
53 PUSH_BASED_EVENTS: ${PUSH_BASED_EVENTS:-true}
54 SUBSCRIBE_REPOS_SERVICE_URL: ${SUBSCRIBE_REPOS_SERVICE_URL:-}
55
56 # Optional: Fallback proxy
57 COCOON_FALLBACK_PROXY: ${COCOON_FALLBACK_PROXY:-}
58 restart: unless-stopped
59 healthcheck:
60 test: ["CMD", "curl", "-f", "http://localhost:8080/xrpc/_health"]
61 interval: 30s
62 timeout: 10s
63 retries: 3
64 start_period: 40s
65
66volumes:
67 data:
68 driver: local