unoffical wafrn mirror wafrn.net
atproto social-network activitypub
at development 208 lines 6.7 kB view raw
1services: 2 backend: &default_backend 3 build: 4 context: . 5 dockerfile: packages/backend/Dockerfile 6 depends_on: 7 db: 8 condition: service_healthy 9 redis: 10 condition: service_started 11 frontend: 12 condition: service_started 13 migration: 14 condition: service_completed_successfully 15 restart: unless-stopped 16 environment: 17 NODE_ENV: production 18 ADMIN_USER: ${ADMIN_USER} 19 ADMIN_EMAIL: ${ADMIN_EMAIL} 20 ADMIN_PASSWORD: ${ADMIN_PASSWORD} 21 JWT_SECRET: ${JWT_SECRET} 22 DOMAIN_NAME: ${DOMAIN_NAME} 23 24 CACHE_DOMAIN: ${CACHE_DOMAIN} 25 MEDIA_DOMAIN: ${MEDIA_DOMAIN} 26 27 DONATION_URL: ${DONATION_URL} 28 29 SMTP_HOST: ${SMTP_HOST} 30 SMTP_USER: ${SMTP_USER} 31 SMTP_PORT: ${SMTP_PORT} 32 SMTP_PASSWORD: ${SMTP_PASSWORD} 33 SMTP_FROM: ${SMTP_FROM} 34 35 POSTGRES_USER: ${POSTGRES_USER} 36 POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} 37 POSTGRES_DBNAME: ${POSTGRES_DBNAME} 38 39 WEBPUSH_EMAIL: ${WEBPUSH_EMAIL} 40 WEBPUSH_PRIVATE: ${WEBPUSH_PRIVATE} 41 WEBPUSH_PUBLIC: ${WEBPUSH_PUBLIC} 42 43 ENABLE_BSKY: ${ENABLE_BSKY} 44 PDS_DOMAIN_NAME: ${PDS_DOMAIN_NAME} 45 PDS_JWT_SECRET: ${PDS_JWT_SECRET} 46 PDS_ADMIN_PASSWORD: ${PDS_ADMIN_PASSWORD} 47 48 USE_WORKERS: true 49 LOG_SQL_QUERIES: ${LOG_SQL_QUERIES:-} 50 UPLOAD_LIMIT: ${UPLOAD_LIMIT:-} 51 POSTS_PER_PAGE: ${POSTS_PER_PAGE:-} 52 LOG_LEVEL: ${LOG_LEVEL:-} 53 BLOCKLIST_URI: ${BLOCKLIST_URI:-} 54 FRONTEND_PATH: ${FRONTEND_PATH:-} 55 DISABLE_REQUIRE_SEND_EMAIL: ${DISABLE_REQUIRE_SEND_EMAIL:-} 56 BLOCKED_IPS: ${BLOCKED_IPS:-} 57 REVIEW_REGISTRATIONS: ${REVIEW_REGISTRATIONS:-} 58 IGNORE_BLOCK_HOSTS: ${IGNORE_BLOCK_HOSTS:-} 59 60 CONSTELLATION_URL: ${CONSTELLATION_URL:-} 61 SLINGSHOT_URL: ${SLINGSHOT_URL:-} 62 JETSTREAM_URL: ${JETSTREAM_URL:-} 63 64 FRONTEND_LOGO: ${FRONTEND_LOGO:-} 65 FRONTEND_API_URL: ${FRONTEND_API_URL:-} 66 FRONTEND_MEDIA_URL: ${FRONTEND_MEDIA_URL:-} 67 FRONTEND_CACHE_URL: ${FRONTEND_CACHE_URL:-} 68 FRONTEND_CACHE_BACKUP_URLS: ${FRONTEND_CACHE_BACKUP_URLS:-} 69 FRONTEND_SHORTEN_POSTS: ${FRONTEND_SHORTEN_POSTS:-} 70 FRONTEND_DISABLE_PWA: ${FRONTEND_DISABLE_PWA:-} 71 FRONTEND_MAINTENANCE: ${FRONTEND_MAINTENANCE:-} 72 FRONTEND_SHORT_TITLE: ${FRONTEND_SHORT_TITLE:-} 73 FRONTEND_LONG_TITLE: ${FRONTEND_LONG_TITLE:-} 74 FRONTEND_DESCRIPTION: ${FRONTEND_DESCRIPTION:-} 75 76 REGISTRATION_LEVEL: ${REGISTRATION_LEVEL:-} 77 REGISTRATIONS_DISABLED_TEXT: ${REGISTRATIONS_DISABLED_TEXT:-} 78 BUBBLE_SERVERS_SHOW_TYPE: ${BUBBLE_SERVERS_SHOW_TYPE:-} 79 BLOCKED_SERVERS_SHOW_TYPE: ${BLOCKED_SERVERS_SHOW_TYPE:-} 80 AUTOFOLLOW_MAIN_ADMIN: ${AUTOFOLLOW_MAIN_ADMIN:-} 81 PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX: ${PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX:-} 82 REGISTRATION_MINIMUM_AGE: ${REGISTRATION_MINIMUM_AGE:-} 83 84 FRONTEND_FQDN_URL: https://${DOMAIN_NAME} 85 86 ENABLE_RAW_OUTPUT: ${ENABLE_RAW_OUTPUT:-} 87 volumes: 88 - ./packages/backend/uploads:/app/packages/backend/uploads 89 - cache:/app/packages/backend/cache 90 - frontend:/app/packages/frontend:ro 91 92 migration: 93 <<: *default_backend 94 depends_on: 95 db: 96 condition: service_healthy 97 redis: 98 condition: service_started 99 frontend: 100 condition: service_started 101 restart: no 102 command: "npm exec tsx migrate.ts init-container" 103 104 105 frontend: 106 restart: unless-stopped 107 build: 108 context: . 109 dockerfile: packages/frontend/Dockerfile 110 ports: 111 - 80:80 112 - 443:443 113 extra_hosts: 114 - "host.docker.internal:host-gateway" 115 environment: 116 DOMAIN_NAME: ${DOMAIN_NAME} 117 PDS_DOMAIN_NAME: ${PDS_DOMAIN_NAME} 118 CACHE_DOMAIN: ${CACHE_DOMAIN} 119 MEDIA_DOMAIN: ${MEDIA_DOMAIN} 120 121 DONATION_URL: ${DONATION_URL} 122 ACME_EMAIL: ${ACME_EMAIL} 123 FRONTEND_SHORT_TITLE: ${FRONTEND_SHORT_TITLE:-} 124 FRONTEND_LONG_TITLE: ${FRONTEND_LONG_TITLE:-} 125 FRONTEND_DESCRIPTION: ${FRONTEND_DESCRIPTION:-} 126 REGISTRATION_LEVEL: ${REGISTRATION_LEVEL:-} 127 REGISTRATIONS_DISABLED_TEXT: ${REGISTRATIONS_DISABLED_TEXT:-} 128 BUBBLE_SERVERS_SHOW_TYPE: ${BUBBLE_SERVERS_SHOW_TYPE:-} 129 BLOCKED_SERVERS_SHOW_TYPE: ${BLOCKED_SERVERS_SHOW_TYPE:-} 130 AUTOFOLLOW_MAIN_ADMIN: ${AUTOFOLLOW_MAIN_ADMIN:-} 131 PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX: ${PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX:-} 132 REGISTRATION_MINIMUM_AGE: ${REGISTRATION_MINIMUM_AGE:-} 133 volumes: 134 - "caddy:/data" 135 - "frontend:/var/www/html/frontend" 136 - ./packages/backend/uploads:/var/www/html/uploads 137 - ./packages/caddy:/etc/caddy/config 138 139 db: 140 build: 141 context: monitoring/database 142 dockerfile: Dockerfile 143 #command: -c 'max_connections=500' 144 restart: unless-stopped 145 shm_size: '2gb' 146 environment: 147 POSTGRES_USER: ${POSTGRES_USER} 148 POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} 149 POSTGRES_DB: ${POSTGRES_DBNAME} 150 volumes: 151 - dbpg:/var/lib/postgresql/data 152 153 adminer: 154 image: adminer 155 restart: unless-stopped 156 157 redis: 158 image: redis:8.4 159 restart: unless-stopped 160 volumes: 161 - redis:/data 162 163 pds: 164 image: ghcr.io/bluesky-social/pds:0.4 165 restart: unless-stopped 166 profiles: 167 - bluesky 168 environment: 169 PDS_HOSTNAME: ${PDS_DOMAIN_NAME} 170 PDS_JWT_SECRET: ${PDS_JWT_SECRET} 171 PDS_ADMIN_PASSWORD: ${PDS_ADMIN_PASSWORD} 172 PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX: ${PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX} 173 PDS_DATA_DIRECTORY: /pds 174 PDS_BLOBSTORE_DISK_LOCATION: /pds/blocks 175 PDS_BLOB_UPLOAD_LIMIT: 157286400 176 PDS_DID_PLC_URL: "https://plc.directory" 177 #PDS_BSKY_APP_VIEW_URL: "https://api.blacksky.community" 178 #PDS_BSKY_APP_VIEW_DID: "did:web:api.blacksky.community" 179 PDS_BSKY_APP_VIEW_URL: ${PDS_APPVIEW_URL:-https://api.bsky.app} 180 PDS_BSKY_APP_VIEW_DID: ${PDS_APPVIEW_DID:-did:web:api.bsky.app} 181 PDS_REPORT_SERVICE_URL: ${PDS_MOD_URL:-https://mod.bsky.app} 182 PDS_REPORT_SERVICE_DID: ${PDS_MOD_DID:-did:plc:ar7c4by46qjdydhdevvrndac} 183 PDS_CRAWLERS: ${PDS_CRAWLERS:-https://bsky.network, https://atproto.africa} 184 PDS_SERVICE_HANDLE_DOMAINS: ${PDS_HANDLE_DOMAINS:-.${PDS_DOMAIN_NAME}} 185 PDS_EMAIL_SMTP_URL: "smtps://${SMTP_USER}:${SMTP_PASSWORD}@${SMTP_HOST}:${SMTP_PORT}" 186 PDS_EMAIL_FROM_ADDRESS: "${SMTP_FROM}" 187 LOG_ENABLED: true 188 volumes: 189 - pds:/pds 190 191 pds_worker: 192 <<: *default_backend 193 profiles: 194 - bluesky 195 command: "npm exec tsx atproto.ts" 196 197volumes: 198 dbpg: 199 caddy: 200 pds: 201 frontend: 202 redis: 203 cache: 204 205 206networks: 207 default: 208 enable_ipv6: true