2025-04-27 00:01:31 +04:00
2025-04-27 00:11:47 +04:00
2025-04-27 00:01:31 +04:00
2025-04-27 18:37:40 +04:00
2025-04-26 23:50:45 +04:00
2025-04-27 01:14:25 +04:00

Bluesky PDS Easy Deployment

This repository provides a step-by-step guide for deploying the Bluesky Personal Data Server (PDS) on a Linux system.
It is similar to bluesky-social/pds, but it only uses Docker to run services, making the deployment process simpler and more straightforward compared to the installer.sh script in the original repository.

Prerequisites

  • A server (minimum 1 CPU core, 1 GB RAM) with a public IP address and firewall rules allowing traffic on ports 80 and 443
  • OS (Ubuntu 20.04/22.04 or Debian 11/12 preferred)
  • Docker
  • Docker Compose
  • A domain name

Installation

1. Set up DNS records

Create DNS records to point your domain name to your server's IP address.

Type Name IP TTL
A bsky.example.com 1.2.3.4 600
A *.bsky.example.com 1.2.3.4 600

2. Clone the repository

git clone https://github.com/aykhans/bsky-pds-easy.git && cd bsky-pds-easy

3. Generate the pds.env file

cp pds.env.example pds.env

4. Configure the pds.env file

Generate PDS_JWT_SECRET with OpenSSL:

sed -i "s/PDS_JWT_SECRET=/PDS_JWT_SECRET=$(openssl rand --hex 16)/" pds.env

Generate PDS_ADMIN_PASSWORD with OpenSSL:

sed -i "s/PDS_ADMIN_PASSWORD=/PDS_ADMIN_PASSWORD=$(openssl rand --hex 16)/" pds.env

Generate PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX with OpenSSL:

sed -i "s/PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=/PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=$(openssl ecparam --name secp256k1 --genkey --noout --outform DER | tail --bytes=+8 | head --bytes=32 | xxd --plain --cols 32)/" pds.env

Then, manually fill in the following fields in your pds.env file:

PDS_HOSTNAME=bsky.example.com
PDS_EMAIL_SMTP_URL=smtps://username:password@smtp.emailserver.com/
PDS_EMAIL_FROM_ADDRESS=from@example.com

5. Start the services with Docker Compose

docker compose up -d

Next Steps

After successfully starting the services, you can create an account using bsky-pdsadmin-dockerized.

Example:

docker run -it --rm --env-file ./pds.env aykhans/bsky-pdsadmin account create

You can now visit https://bsky.app and log in using your custom PDS server (bsky.example.com) and your newly created credentials.

Description
Deploy Bluesky PDS quickly and easily using Docker Compose.
Readme MIT 30 KiB
Languages
Caddyfile 100%