feat: make an empty pds.env file to trick pdsadmin into working correctly

This way we don't need the very long command

Credits: @madmalkav
This commit is contained in:
Scan 2025-09-20 00:44:11 -04:00
parent 1d85177ce6
commit 82df0b29fe

View file

@ -29,38 +29,20 @@ services:
- 'PDS_REPORT_SERVICE_DID=${PDS_REPORT_SERVICE_DID:-did:plc:ar7c4by46qjdydhdevvrndac}'
- 'PDS_CRAWLERS=${PDS_CRAWLERS:-https://bsky.network}'
- 'LOG_ENABLED=${LOG_ENABLED:-true}'
command: |
command: >
sh -c '
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 +x /usr/local/bin/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" \
"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_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}" \
"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