🌐 Setup Bluesky PDS — Host Your Own atproto Personal Data Server
Deploy a Bluesky Personal Data Server (PDS) on Ubuntu with Docker — own your Bluesky identity and data on your own domain, federated into the atproto network. Requires a public domain and HTTPS.
📦 Resources & Setup Scripts
Grab the automated bash script from GitHub to follow along with the video.
Quick Install:
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/social/bluesky-pds/bluesky-pds-ubuntu.sh
chmod +x bluesky-pds-ubuntu.sh
sudo bash bluesky-pds-ubuntu.sh
Tutorial Steps
1 Download the Script
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/social/bluesky-pds/bluesky-pds-ubuntu.sh
2 Make it Executable
chmod +x bluesky-pds-ubuntu.sh
3 Run the Installer
The script installs Docker if needed and starts the Bluesky PDS on port 3045, generating a JWT secret, an admin password, and a PLC rotation key. You must set PDS_HOSTNAME to a public domain you control — federation needs that domain reachable over HTTPS.
sudo bash bluesky-pds-ubuntu.sh
4 Point Your Domain and Create an Account
Set up a reverse proxy with a valid TLS certificate for your PDS_HOSTNAME, then create your first account with the pdsadmin tool (or the API):
pdsadmin account create # after setting up your domain + HTTPS
Ports Used
| Port | Purpose |
|---|---|
| 3045 | PDS (host → container 3000) |
| ⚠️ public domain + HTTPS | Required to federate — reverse proxy with a valid TLS cert |
| PDS_HOSTNAME | Your public domain; accounts created with pdsadmin |
| PLC rotation key | Generated — critical to control of your identity; back it up |