An atproto PDS written in Go

add docker-compose.noproxy.yaml (#68)

authored by

emi and committed by
GitHub
1cc78f65 95858499

+123
+123
docker-compose.noproxy.yaml
··· 1 + # Simplified docker-compose for external reverse proxy 2 + # Exposes cocoon on 127.0.0.1:8080 by default 3 + # 4 + # Usage: 5 + # docker-compose -f docker-compose.noproxy.yaml up -d 6 + # 7 + 8 + version: '3.8' 9 + 10 + services: 11 + init-keys: 12 + build: 13 + context: . 14 + dockerfile: Dockerfile 15 + image: ghcr.io/haileyok/cocoon:latest 16 + container_name: cocoon-init-keys 17 + volumes: 18 + - ./keys:/keys 19 + - ./data:/data/cocoon 20 + - ./init-keys.sh:/init-keys.sh:ro 21 + environment: 22 + COCOON_DID: ${COCOON_DID} 23 + COCOON_HOSTNAME: ${COCOON_HOSTNAME} 24 + COCOON_ROTATION_KEY_PATH: /keys/rotation.key 25 + COCOON_JWK_PATH: /keys/jwk.key 26 + COCOON_CONTACT_EMAIL: ${COCOON_CONTACT_EMAIL} 27 + COCOON_RELAYS: ${COCOON_RELAYS:-https://bsky.network} 28 + COCOON_ADMIN_PASSWORD: ${COCOON_ADMIN_PASSWORD} 29 + entrypoint: ["/bin/sh", "/init-keys.sh"] 30 + restart: "no" 31 + 32 + cocoon: 33 + build: 34 + context: . 35 + dockerfile: Dockerfile 36 + image: ghcr.io/haileyok/cocoon:latest 37 + container_name: cocoon-pds 38 + depends_on: 39 + init-keys: 40 + condition: service_completed_successfully 41 + ports: 42 + - "127.0.0.1:8080:8080" 43 + volumes: 44 + - ./data:/data/cocoon 45 + - ./keys/rotation.key:/keys/rotation.key:ro 46 + - ./keys/jwk.key:/keys/jwk.key:ro 47 + environment: 48 + # Required settings 49 + COCOON_DID: ${COCOON_DID} 50 + COCOON_HOSTNAME: ${COCOON_HOSTNAME} 51 + COCOON_ROTATION_KEY_PATH: /keys/rotation.key 52 + COCOON_JWK_PATH: /keys/jwk.key 53 + COCOON_CONTACT_EMAIL: ${COCOON_CONTACT_EMAIL} 54 + COCOON_RELAYS: ${COCOON_RELAYS:-https://bsky.network} 55 + COCOON_ADMIN_PASSWORD: ${COCOON_ADMIN_PASSWORD} 56 + COCOON_SESSION_SECRET: ${COCOON_SESSION_SECRET} 57 + 58 + # Server configuration 59 + COCOON_ADDR: ":8080" 60 + COCOON_DB_TYPE: ${COCOON_DB_TYPE:-sqlite} 61 + COCOON_DB_NAME: ${COCOON_DB_NAME:-/data/cocoon/cocoon.db} 62 + COCOON_DATABASE_URL: ${COCOON_DATABASE_URL:-} 63 + COCOON_BLOCKSTORE_VARIANT: ${COCOON_BLOCKSTORE_VARIANT:-sqlite} 64 + 65 + # Optional: SMTP settings for email 66 + COCOON_SMTP_USER: ${COCOON_SMTP_USER:-} 67 + COCOON_SMTP_PASS: ${COCOON_SMTP_PASS:-} 68 + COCOON_SMTP_HOST: ${COCOON_SMTP_HOST:-} 69 + COCOON_SMTP_PORT: ${COCOON_SMTP_PORT:-} 70 + COCOON_SMTP_EMAIL: ${COCOON_SMTP_EMAIL:-} 71 + COCOON_SMTP_NAME: ${COCOON_SMTP_NAME:-} 72 + 73 + # Optional: S3 configuration 74 + COCOON_S3_BACKUPS_ENABLED: ${COCOON_S3_BACKUPS_ENABLED:-false} 75 + COCOON_S3_BLOBSTORE_ENABLED: ${COCOON_S3_BLOBSTORE_ENABLED:-false} 76 + COCOON_S3_REGION: ${COCOON_S3_REGION:-} 77 + COCOON_S3_BUCKET: ${COCOON_S3_BUCKET:-} 78 + COCOON_S3_ENDPOINT: ${COCOON_S3_ENDPOINT:-} 79 + COCOON_S3_ACCESS_KEY: ${COCOON_S3_ACCESS_KEY:-} 80 + COCOON_S3_SECRET_KEY: ${COCOON_S3_SECRET_KEY:-} 81 + COCOON_S3_CDN_URL: ${COCOON_S3_CDN_URL:-} 82 + 83 + # Optional: Fallback proxy 84 + COCOON_FALLBACK_PROXY: ${COCOON_FALLBACK_PROXY:-} 85 + restart: unless-stopped 86 + healthcheck: 87 + test: ["CMD", "curl", "-f", "http://localhost:8080/xrpc/_health"] 88 + interval: 30s 89 + timeout: 10s 90 + retries: 3 91 + start_period: 40s 92 + 93 + create-invite: 94 + build: 95 + context: . 96 + dockerfile: Dockerfile 97 + image: ghcr.io/haileyok/cocoon:latest 98 + container_name: cocoon-create-invite 99 + network_mode: "service:cocoon" 100 + volumes: 101 + - ./keys:/keys 102 + - ./data:/data/cocoon 103 + - ./create-initial-invite.sh:/create-initial-invite.sh:ro 104 + environment: 105 + COCOON_DID: ${COCOON_DID} 106 + COCOON_HOSTNAME: ${COCOON_HOSTNAME} 107 + COCOON_ROTATION_KEY_PATH: /keys/rotation.key 108 + COCOON_JWK_PATH: /keys/jwk.key 109 + COCOON_CONTACT_EMAIL: ${COCOON_CONTACT_EMAIL} 110 + COCOON_RELAYS: ${COCOON_RELAYS:-https://bsky.network} 111 + COCOON_ADMIN_PASSWORD: ${COCOON_ADMIN_PASSWORD} 112 + COCOON_DB_TYPE: ${COCOON_DB_TYPE:-sqlite} 113 + COCOON_DB_NAME: ${COCOON_DB_NAME:-/data/cocoon/cocoon.db} 114 + COCOON_DATABASE_URL: ${COCOON_DATABASE_URL:-} 115 + depends_on: 116 + cocoon: 117 + condition: service_healthy 118 + entrypoint: ["/bin/sh", "/create-initial-invite.sh"] 119 + restart: "no" 120 + 121 + volumes: 122 + data: 123 + driver: local