diff --git a/templates/compose/bluesky-pds.yaml b/templates/compose/bluesky-pds.yaml index 371e67878..3ddc9d608 100644 --- a/templates/compose/bluesky-pds.yaml +++ b/templates/compose/bluesky-pds.yaml @@ -7,61 +7,47 @@ services: pds: - image: 'ghcr.io/bluesky-social/pds:latest' + image: 'ghcr.io/bluesky-social/pds:0.4.182' volumes: - - ./pds-data:/pds + - pds-data:/pds environment: - SERVICE_URL_PDS_3000 - - PDS_HOSTNAME=${SERVICE_URL_PDS} - - PDS_JWT_SECRET=${SERVICE_PASSWORD_JWT_SECRET} - - PDS_ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN} - - PDS_ADMIN_EMAIL=${SERVICE_EMAIL_ADMIN} - - PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=${PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX} - - PDS_DATA_DIRECTORY=${PDS_DATA_DIRECTORY:-/pds} - - PDS_BLOBSTORE_DISK_LOCATION=${PDS_DATA_DIRECTORY:-/pds}/blocks - - PDS_BLOB_UPLOAD_LIMIT=${PDS_BLOB_UPLOAD_LIMIT:-52428800} - - PDS_DID_PLC_URL=${PDS_DID_PLC_URL:-https://plc.directory} - - PDS_BSKY_APP_VIEW_URL=${PDS_BSKY_APP_VIEW_URL:-https://api.bsky.app} - - PDS_BSKY_APP_VIEW_DID=${PDS_BSKY_APP_VIEW_DID:-did:web:api.bsky.app} - - PDS_REPORT_SERVICE_URL=${PDS_REPORT_SERVICE_URL:-https://mod.bsky.app/xrpc/com.atproto.moderation.createReport} - - PDS_REPORT_SERVICE_DID=${PDS_REPORT_SERVICE_DID:-did:plc:ar7c4by46qjdydhdevvrndac} - - PDS_CRAWLERS=${PDS_CRAWLERS:-https://bsky.network} - - LOG_ENABLED=${LOG_ENABLED:-true} - - command: > + - 'PDS_HOSTNAME=${SERVICE_FQDN_PDS_3000}' + - 'PDS_JWT_SECRET=${SERVICE_HEX_32_JWTSECRET}' + - 'PDS_ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}' + - 'PDS_ADMIN_EMAIL=${PDS_ADMIN_EMAIL}' + - 'PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=${SERVICE_HEX_32_ROTATIONKEY}' + - 'PDS_DATA_DIRECTORY=${PDS_DATA_DIRECTORY:-/pds}' + - 'PDS_BLOBSTORE_DISK_LOCATION=${PDS_DATA_DIRECTORY:-/pds}/blocks' + - 'PDS_BLOB_UPLOAD_LIMIT=${PDS_BLOB_UPLOAD_LIMIT:-104857600}' + - 'PDS_DID_PLC_URL=${PDS_DID_PLC_URL:-https://plc.directory}' + - 'PDS_EMAIL_FROM_ADDRESS=${PDS_EMAIL_FROM_ADDRESS}' + - 'PDS_EMAIL_SMTP_URL=${PDS_EMAIL_SMTP_URL}' + - 'PDS_BSKY_APP_VIEW_URL=${PDS_BSKY_APP_VIEW_URL:-https://api.bsky.app}' + - 'PDS_BSKY_APP_VIEW_DID=${PDS_BSKY_APP_VIEW_DID:-did:web:api.bsky.app}' + - 'PDS_REPORT_SERVICE_URL=${PDS_REPORT_SERVICE_URL:-https://mod.bsky.app/xrpc/com.atproto.moderation.createReport}' + - 'PDS_REPORT_SERVICE_DID=${PDS_REPORT_SERVICE_DID:-did:plc:ar7c4by46qjdydhdevvrndac}' + - 'PDS_CRAWLERS=${PDS_CRAWLERS:-https://bsky.network}' + - 'LOG_ENABLED=${LOG_ENABLED:-true}' + command: | sh -c ' - echo "Installing curl, bash, and pdsadmin..." - apk add --no-cache curl bash && \ - curl -o /usr/local/bin/pdsadmin.sh https://raw.githubusercontent.com/bluesky-social/pds/main/pdsadmin.sh && \ - chmod +x /usr/local/bin/pdsadmin.sh && \ + set -euo pipefail + echo "Installing required packages and pdsadmin..." + apk add --no-cache openssl curl bash jq coreutils gnupg util-linux-misc >/dev/null + curl -o /usr/local/bin/pdsadmin.sh https://raw.githubusercontent.com/bluesky-social/pds/main/pdsadmin.sh + chmod 700 /usr/local/bin/pdsadmin.sh ln -sf /usr/local/bin/pdsadmin.sh /usr/local/bin/pdsadmin - - echo "Generating /pds/pds.env..." - printf "%s\n" \ - "SERVICE_FQDN_PDS_3000=$${SERVICE_FQDN_PDS_3000}" \ - "PDS_HOSTNAME=$${PDS_HOSTNAME}" \ - "PDS_JWT_SECRET=$${PDS_JWT_SECRET}" \ - "PDS_ADMIN_PASSWORD=$${PDS_ADMIN_PASSWORD}" \ - "PDS_ADMIN_EMAIL=$${PDS_ADMIN_EMAIL}" \ - "PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=$${PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX}" \ - "PDS_DATA_DIRECTORY=$${PDS_DATA_DIRECTORY}" \ - "PDS_BLOBSTORE_DISK_LOCATION=$${PDS_DATA_DIRECTORY}/blocks" \ - "PDS_BLOB_UPLOAD_LIMIT=$${PDS_BLOB_UPLOAD_LIMIT}" \ - "PDS_DID_PLC_URL=$${PDS_DID_PLC_URL}" \ - "PDS_BSKY_APP_VIEW_URL=$${PDS_BSKY_APP_VIEW_URL}" \ - "PDS_BSKY_APP_VIEW_DID=$${PDS_BSKY_APP_VIEW_DID}" \ - "PDS_REPORT_SERVICE_URL=$${PDS_REPORT_SERVICE_URL}" \ - "PDS_REPORT_SERVICE_DID=$${PDS_REPORT_SERVICE_DID}" \ - "PDS_CRAWLERS=$${PDS_CRAWLERS}" \ - "LOG_ENABLED=$${LOG_ENABLED}" \ - > /pds/pds.env - - echo "Launching PDS..." + echo "Creating an empty pds.env file so pdsadmin works..." + touch ${PDS_DATA_DIRECTORY}/pds.env + echo "Launching PDS, enjoy!..." exec node --enable-source-maps index.js ' - healthcheck: - test: ["CMD", "wget", "--spider", "http://127.0.0.1:3000/xrpc/_health"] - interval: 2s + test: + - CMD + - wget + - '--spider' + - 'http://127.0.0.1:3000/xrpc/_health' + interval: 5s timeout: 10s retries: 10