unoffical wafrn mirror wafrn.net
atproto social-network activitypub
at virtualscroll 183 lines 5.6 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_started 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 FRONTEND_LOGO: ${FRONTEND_LOGO:-} 61 FRONTEND_API_URL: ${FRONTEND_API_URL:-} 62 FRONTEND_MEDIA_URL: ${FRONTEND_MEDIA_URL:-} 63 FRONTEND_CACHE_URL: ${FRONTEND_CACHE_URL:-} 64 FRONTEND_CACHE_BACKUP_URLS: ${FRONTEND_CACHE_BACKUP_URLS:-} 65 FRONTEND_SHORTEN_POSTS: ${FRONTEND_SHORTEN_POSTS:-} 66 FRONTEND_DISABLE_PWA: ${FRONTEND_DISABLE_PWA:-} 67 FRONTEND_MAINTENANCE: ${FRONTEND_MAINTENANCE:-} 68 FRONTEND_SHORT_TITLE: ${FRONTEND_SHORT_TITLE:-} 69 FRONTEND_LONG_TITLE: ${FRONTEND_LONG_TITLE:-} 70 FRONTEND_DESCRIPTION: ${FRONTEND_DESCRIPTION:-} 71 72 REGISTRATION_LEVEL: ${REGISTRATION_LEVEL:-} 73 REGISTRATIONS_DISABLED_TEXT: ${REGISTRATIONS_DISABLED_TEXT:-} 74 HIDE_BLOCKED_SERVERS: ${HIDE_BLOCKED_SERVERS:-} 75 REGISTRATION_MINIMUM_AGE: ${REGISTRATION_MINIMUM_AGE:-} 76 77 FRONTEND_FQDN_URL: https://${DOMAIN_NAME} 78 79 ENABLE_RAW_OUTPUT: ${ENABLE_RAW_OUTPUT:-} 80 volumes: 81 - ./packages/backend/uploads:/app/packages/backend/uploads 82 - ./packages/backend/cache:/app/packages/backend/cache 83 - frontend:/app/packages/frontend:ro 84 85 migration: 86 <<: *default_backend 87 depends_on: 88 db: 89 condition: service_started 90 redis: 91 condition: service_started 92 frontend: 93 condition: service_started 94 restart: no 95 command: "npm exec tsx migrate.ts init-container" 96 97 frontend: 98 restart: unless-stopped 99 build: 100 context: . 101 dockerfile: packages/frontend/Dockerfile 102 ports: 103 - 80:80 104 - 443:443 105 environment: 106 DOMAIN_NAME: ${DOMAIN_NAME} 107 PDS_DOMAIN_NAME: ${PDS_DOMAIN_NAME} 108 CACHE_DOMAIN: ${CACHE_DOMAIN} 109 MEDIA_DOMAIN: ${MEDIA_DOMAIN} 110 111 DONATION_URL: ${DONATION_URL} 112 ACME_EMAIL: ${ACME_EMAIL} 113 FRONTEND_SHORT_TITLE: ${FRONTEND_SHORT_TITLE:-} 114 FRONTEND_LONG_TITLE: ${FRONTEND_LONG_TITLE:-} 115 FRONTEND_DESCRIPTION: ${FRONTEND_DESCRIPTION:-} 116 REGISTRATION_LEVEL: ${REGISTRATION_LEVEL:-} 117 REGISTRATIONS_DISABLED_TEXT: ${REGISTRATIONS_DISABLED_TEXT:-} 118 HIDE_BLOCKED_SERVERS: ${HIDE_BLOCKED_SERVERS:-} 119 REGISTRATION_MINIMUM_AGE: ${REGISTRATION_MINIMUM_AGE:-} 120 volumes: 121 - "caddy:/data" 122 - "frontend:/var/www/html/frontend" 123 - ./packages/backend/uploads:/var/www/html/uploads 124 - ./packages/caddy:/etc/caddy/config 125 126 db: 127 image: postgres:17 128 restart: unless-stopped 129 shm_size: '2gb' 130 environment: 131 POSTGRES_USER: ${POSTGRES_USER} 132 POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} 133 POSTGRES_DB: ${POSTGRES_DBNAME} 134 volumes: 135 - dbpg:/var/lib/postgresql/data 136 137 adminer: 138 image: adminer 139 restart: unless-stopped 140 141 redis: 142 image: redis:7.2.4 143 restart: unless-stopped 144 volumes: 145 - redis:/data 146 147 pds: 148 image: ghcr.io/bluesky-social/pds:0.4 149 restart: unless-stopped 150 profiles: 151 - bluesky 152 environment: 153 PDS_HOSTNAME: ${PDS_DOMAIN_NAME} 154 PDS_JWT_SECRET: ${PDS_JWT_SECRET} 155 PDS_ADMIN_PASSWORD: ${PDS_ADMIN_PASSWORD} 156 PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX: ${PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX} 157 PDS_DATA_DIRECTORY: /pds 158 PDS_BLOBSTORE_DISK_LOCATION: /pds/blocks 159 PDS_BLOB_UPLOAD_LIMIT: 157286400 160 PDS_DID_PLC_URL: "https://plc.directory" 161 PDS_BSKY_APP_VIEW_URL: "https://api.bsky.app" 162 PDS_BSKY_APP_VIEW_DID: "did:web:api.bsky.app" 163 PDS_REPORT_SERVICE_URL: "https://mod.bsky.app" 164 PDS_REPORT_SERVICE_DID: "did:plc:ar7c4by46qjdydhdevvrndac" 165 PDS_CRAWLERS: "https://bsky.network, https://atproto.africa" 166 PDS_EMAIL_SMTP_URL: "smtps://${SMTP_USER}:${SMTP_PASSWORD}@${SMTP_HOST}:${SMTP_PORT}" 167 PDS_EMAIL_FROM_ADDRESS: "${SMTP_FROM}" 168 LOG_ENABLED: true 169 volumes: 170 - pds:/pds 171 172 pds_worker: 173 <<: *default_backend 174 profiles: 175 - bluesky 176 command: "npm exec tsx atproto.ts" 177 178volumes: 179 dbpg: 180 caddy: 181 pds: 182 frontend: 183 redis: