A fork of the Cocoon PDS but being made more distributed.
0

Configure Feed

Select the types of activity you want to include in your feed.

1version: "3.8" 2 3services: 4 init-keys: 5 build: 6 context: . 7 dockerfile: Dockerfile 8 image: ghcr.io/haileyok/cocoon:latest 9 container_name: cocoon-init-keys 10 volumes: 11 - ./keys:/keys 12 - ./data:/data/cocoon 13 - ./init-keys.sh:/init-keys.sh:ro 14 environment: 15 COCOON_DID: ${COCOON_DID} 16 COCOON_HOSTNAME: ${COCOON_HOSTNAME} 17 COCOON_ROTATION_KEY_PATH: /keys/rotation.key 18 COCOON_JWK_PATH: /keys/jwk.key 19 COCOON_CONTACT_EMAIL: ${COCOON_CONTACT_EMAIL} 20 COCOON_RELAYS: ${COCOON_RELAYS:-https://bsky.network} 21 COCOON_ADMIN_PASSWORD: ${COCOON_ADMIN_PASSWORD} 22 entrypoint: ["/bin/sh", "/init-keys.sh"] 23 restart: "no" 24 25 cocoon: 26 build: 27 context: . 28 dockerfile: Dockerfile 29 image: ghcr.io/haileyok/cocoon:latest 30 container_name: cocoon-pds 31 network_mode: host 32 depends_on: 33 init-keys: 34 condition: service_completed_successfully 35 volumes: 36 - ./data:/data/cocoon 37 - ./keys/rotation.key:/keys/rotation.key:ro 38 - ./keys/jwk.key:/keys/jwk.key:ro 39 environment: 40 # Required settings 41 COCOON_DID: ${COCOON_DID} 42 COCOON_HOSTNAME: ${COCOON_HOSTNAME} 43 COCOON_ROTATION_KEY_PATH: /keys/rotation.key 44 COCOON_JWK_PATH: /keys/jwk.key 45 COCOON_CONTACT_EMAIL: ${COCOON_CONTACT_EMAIL} 46 COCOON_RELAYS: ${COCOON_RELAYS:-https://bsky.network} 47 COCOON_ADMIN_PASSWORD: ${COCOON_ADMIN_PASSWORD} 48 COCOON_SESSION_SECRET: ${COCOON_SESSION_SECRET} 49 50 # Server configuration 51 COCOON_ADDR: ":8080" 52 COCOON_DB_TYPE: ${COCOON_DB_TYPE:-sqlite} 53 COCOON_DB_NAME: ${COCOON_DB_NAME:-/data/cocoon/cocoon.db} 54 COCOON_DATABASE_URL: ${COCOON_DATABASE_URL:-} 55 COCOON_BLOCKSTORE_VARIANT: ${COCOON_BLOCKSTORE_VARIANT:-sqlite} 56 # Set this if using Turso 57 COCOON_TURSO_TOKEN: ${COCOON_TURSO_TOKEN:-} 58 59 # Optional: SMTP settings for email 60 COCOON_SMTP_USER: ${COCOON_SMTP_USER:-} 61 COCOON_SMTP_PASS: ${COCOON_SMTP_PASS:-} 62 COCOON_SMTP_HOST: ${COCOON_SMTP_HOST:-} 63 COCOON_SMTP_PORT: ${COCOON_SMTP_PORT:-} 64 COCOON_SMTP_EMAIL: ${COCOON_SMTP_EMAIL:-} 65 COCOON_SMTP_NAME: ${COCOON_SMTP_NAME:-} 66 67 # Optional: S3 configuration 68 COCOON_S3_BACKUPS_ENABLED: ${COCOON_S3_BACKUPS_ENABLED:-false} 69 COCOON_S3_BLOBSTORE_ENABLED: ${COCOON_S3_BLOBSTORE_ENABLED:-false} 70 COCOON_S3_REGION: ${COCOON_S3_REGION:-} 71 COCOON_S3_BUCKET: ${COCOON_S3_BUCKET:-} 72 COCOON_S3_ENDPOINT: ${COCOON_S3_ENDPOINT:-} 73 COCOON_S3_ACCESS_KEY: ${COCOON_S3_ACCESS_KEY:-} 74 COCOON_S3_SECRET_KEY: ${COCOON_S3_SECRET_KEY:-} 75 COCOON_S3_CDN_URL: ${COCOON_S3_CDN_URL:-} 76 77 # Configure pointing to the subscribe repos service as a sync repos service 78 PUSH_BASED_EVENTS: ${PUSH_BASED_EVENTS:-false} 79 SUBSCRIBE_REPOS_SERVICE_URL: ${SUBSCRIBE_REPOS_SERVICE_URL:-} 80 81 # Optional: Fallback proxy 82 COCOON_FALLBACK_PROXY: ${COCOON_FALLBACK_PROXY:-} 83 restart: unless-stopped 84 healthcheck: 85 test: ["CMD", "curl", "-f", "http://localhost:8080/xrpc/_health"] 86 interval: 30s 87 timeout: 10s 88 retries: 3 89 start_period: 40s 90 91 create-invite: 92 build: 93 context: . 94 dockerfile: Dockerfile 95 image: ghcr.io/haileyok/cocoon:latest 96 container_name: cocoon-create-invite 97 network_mode: host 98 volumes: 99 - ./keys:/keys 100 - ./data:/data/cocoon 101 - ./create-initial-invite.sh:/create-initial-invite.sh:ro 102 environment: 103 COCOON_DID: ${COCOON_DID} 104 COCOON_HOSTNAME: ${COCOON_HOSTNAME} 105 COCOON_ROTATION_KEY_PATH: /keys/rotation.key 106 COCOON_JWK_PATH: /keys/jwk.key 107 COCOON_CONTACT_EMAIL: ${COCOON_CONTACT_EMAIL} 108 COCOON_RELAYS: ${COCOON_RELAYS:-https://bsky.network} 109 COCOON_ADMIN_PASSWORD: ${COCOON_ADMIN_PASSWORD} 110 COCOON_DB_TYPE: ${COCOON_DB_TYPE:-sqlite} 111 COCOON_DB_NAME: ${COCOON_DB_NAME:-/data/cocoon/cocoon.db} 112 COCOON_DATABASE_URL: ${COCOON_DATABASE_URL:-} 113 depends_on: 114 - init-keys 115 entrypoint: ["/bin/sh", "/create-initial-invite.sh"] 116 restart: "no" 117 118 caddy: 119 image: caddy:2-alpine 120 container_name: cocoon-caddy 121 network_mode: host 122 volumes: 123 - ./Caddyfile:/etc/caddy/Caddyfile:ro 124 - caddy_data:/data 125 - caddy_config:/config 126 restart: unless-stopped 127 environment: 128 COCOON_HOSTNAME: ${COCOON_HOSTNAME} 129 CADDY_ACME_EMAIL: ${COCOON_CONTACT_EMAIL:-} 130 131volumes: 132 data: 133 driver: local 134 caddy_data: 135 driver: local 136 caddy_config: 137 driver: local