mirror of
https://github.com/Dokploy/templates.git
synced 2026-07-05 05:55:22 +02:00
feat: add Bluesky PDS template (#542)
* feat: Bluesky PDS template * chore: add bluesky pds svg * chore: metadata for bluesky pds * yaml > yml * pnpm lock * fix: correct rotation key config * fix volumes * fix: volumes in the pds compose * define volumes in compose * fix: 32 bit rotation key * create pds.env correctly * some extra fixes * more extra fixes * a blank line * update pnpm lock
This commit is contained in:
3
blueprints/bluesky-pds/bluesky-pds.svg
Normal file
3
blueprints/bluesky-pds/bluesky-pds.svg
Normal 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 |
48
blueprints/bluesky-pds/docker-compose.yml
Normal file
48
blueprints/bluesky-pds/docker-compose.yml
Normal file
@@ -0,0 +1,48 @@
|
||||
services:
|
||||
pds:
|
||||
image: 'ghcr.io/bluesky-social/pds:0.4.182'
|
||||
volumes:
|
||||
- pds-data:/pds
|
||||
environment:
|
||||
- SERVICE_URL_PDS_3000
|
||||
- PDS_HOSTNAME
|
||||
- PDS_JWT_SECRET
|
||||
- PDS_ADMIN_PASSWORD
|
||||
- 'PDS_ADMIN_EMAIL=${PDS_ADMIN_EMAIL}'
|
||||
- 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:-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 '
|
||||
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 "Creating an empty pds.env file so pdsadmin works..."
|
||||
touch /pds/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: 5s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
volumes:
|
||||
pds-data:
|
||||
36
blueprints/bluesky-pds/template.toml
Normal file
36
blueprints/bluesky-pds/template.toml
Normal file
@@ -0,0 +1,36 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
admin_password = "${password:32}"
|
||||
jwt_secret = "${jwt:32}"
|
||||
rotation_key = "${jwt:32}"
|
||||
data_directory = "/pds"
|
||||
blob_upload_limit = "104857600"
|
||||
log_enabled = "true"
|
||||
|
||||
[config]
|
||||
mounts = []
|
||||
env = [
|
||||
"PDS_ADMIN_PASSWORD=${admin_password}",
|
||||
"PDS_HOSTNAME=${main_domain}",
|
||||
"PDS_JWT_SECRET=${jwt_secret}",
|
||||
"PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=${rotation_key}",
|
||||
"PDS_ADMIN_EMAIL=",
|
||||
"PDS_EMAIL_FROM_ADDRESS=",
|
||||
"PDS_EMAIL_SMTP_URL=",
|
||||
"PDS_DATA_DIRECTORY=${data_directory}",
|
||||
"PDS_BLOBSTORE_DISK_LOCATION=${data_directory}/blocks",
|
||||
"PDS_BLOB_UPLOAD_LIMIT=${blob_upload_limit}",
|
||||
"PDS_DID_PLC_URL=https://plc.directory",
|
||||
"PDS_BSKY_APP_VIEW_URL=https://api.bsky.app",
|
||||
"PDS_BSKY_APP_VIEW_DID=did:web:api.bsky.app",
|
||||
"PDS_REPORT_SERVICE_URL=https://mod.bsky.app/xrpc/com.atproto.moderation.createReport",
|
||||
"PDS_REPORT_SERVICE_DID=did:plc:ar7c4by46qjdydhdevvrndac",
|
||||
"PDS_CRAWLERS=https://bsky.network",
|
||||
"LOG_ENABLED=${log_enabled}"
|
||||
]
|
||||
|
||||
[[config.domains]]
|
||||
serviceName = "pds"
|
||||
port = 3000
|
||||
host = "${main_domain}"
|
||||
path = "/"
|
||||
18
meta.json
18
meta.json
@@ -750,6 +750,24 @@
|
||||
"nextjs"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bluesky-pds",
|
||||
"name": "Bluesky PDS",
|
||||
"version": "0.4.182",
|
||||
"description": "Bluesky PDS is a personal data server for Bluesky.",
|
||||
"logo": "bluesky-pds.svg",
|
||||
"links": {
|
||||
"github": "https://github.com/bluesky-social/pds",
|
||||
"website": "https://bsky.social/about",
|
||||
"docs": "https://github.com/bluesky-social/pds"
|
||||
},
|
||||
"tags": [
|
||||
"bluesky",
|
||||
"pds",
|
||||
"data",
|
||||
"server"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bolt.diy",
|
||||
"name": "bolt.diy",
|
||||
|
||||
Reference in New Issue
Block a user