feat(service): add Bluesky PDS template (#6302)

This commit is contained in:
Scan
2025-08-11 11:55:35 -08:00
committed by GitHub
parent 9d7e4286b6
commit 8eb3f94644
2 changed files with 54 additions and 21 deletions

3
public/svgs/bluesky.svg Normal file
View File

@@ -0,0 +1,3 @@
<svg width="600" height="530" xmlns="http://www.w3.org/2000/svg">
<path d="M135.72 44.03C202.216 93.951 273.74 195.17 300 249.49c26.262-54.316 97.782-155.54 164.28-205.46C512.26 8.009 590-19.862 590 68.825c0 17.712-10.155 148.79-16.111 170.07-20.703 73.984-96.144 92.854-163.25 81.433 117.3 19.964 147.14 86.092 82.697 152.22-122.39 125.59-175.91-31.511-189.63-71.766-2.514-7.38-3.69-10.832-3.708-7.896-.017-2.936-1.193.516-3.707 7.896-13.714 40.255-67.233 197.36-189.63 71.766-64.444-66.128-34.605-132.26 82.697-152.22-67.108 11.421-142.55-7.45-163.25-81.433C20.15 217.613 9.997 86.535 9.997 68.825c0-88.687 77.742-60.816 125.72-24.795z" fill="#1185fe"/>
</svg>

After

Width:  |  Height:  |  Size: 665 B

View File

@@ -1,34 +1,64 @@
# ignore: true
# documentation: https://github.com/bluesky-social/pds # documentation: https://github.com/bluesky-social/pds
# slogan: A social network for the decentralized web # slogan: Bluesky PDS (Personal Data Server)
# tags: pds, bluesky, social, network, decentralized # tags: bluesky, pds, platform
# logo: # logo: svgs/bluesky.svg
# port: 3000 # port: 3000
services: services:
pds: pds:
image: ghcr.io/bluesky-social/pds:0.4 image: 'ghcr.io/bluesky-social/pds:latest'
volumes: volumes:
- pds-data:/pds - ./pds-data:/pds
environment: environment:
- SERVICE_FQDN_PDS_3000 - SERVICE_FQDN_PDS_3000
- PDS_JWT_SECRET=${SERVICE_BASE64_PDS}
- PDS_ADMIN_PASSWORD=${SERVICE_PASSWORD_PDS}
- PDS_ADMIN_EMAIL=${PDS_ADMIN_EMAIL:-admin@example.com}
- PDS_DATADIR=${PDS_DATADIR:-/pds}
- PDS_BLOBSTORE_DISK_LOCATION=${PDS_DATADIR:-/pds}/blocks
- PDS_BLOB_UPLOAD_LIMIT=${PDS_BLOB_UPLOAD_LIMIT:-52428800}
- PDS_HOSTNAME=${SERVICE_URL_PDS} - PDS_HOSTNAME=${SERVICE_URL_PDS}
- PDS_DID_PLC_URL=https://plc.directory - PDS_JWT_SECRET=${SERVICE_PASSWORD_JWT_SECRET}
- PDS_BSKY_APP_VIEW_URL=https://api.bsky.app - PDS_ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}
- PDS_BSKY_APP_VIEW_DID=did:web:api.bsky.app - PDS_ADMIN_EMAIL=${SERVICE_EMAIL_ADMIN}
- PDS_REPORT_SERVICE_URL=https://mod.bsky.app - PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=${PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX}
- PDS_REPORT_SERVICE_DID=did:plc:ar7c4by46qjdydhdevvrndac - PDS_DATA_DIRECTORY=${PDS_DATA_DIRECTORY:-/pds}
- PDS_CRAWLERS=https://bsky.network - 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} - LOG_ENABLED=${LOG_ENABLED:-true}
- PDS_EMAIL_SMTP_URL=${PDS_EMAIL_SMTP_URL:-smtp://localhost:8025}
- PDS_EMAIL_FROM_ADDRESS=${PDS_EMAIL_FROM_ADDRESS:-admin@example.com} command: >
- PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=${SERVICE_HEX_32_ROTATIONKEY} 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 && \
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..."
exec node --enable-source-maps index.js
'
healthcheck: healthcheck:
test: ["CMD", "wget", "--spider", "http://127.0.0.1:3000/xrpc/_health"] test: ["CMD", "wget", "--spider", "http://127.0.0.1:3000/xrpc/_health"]
interval: 2s interval: 2s