Want to take control of your social media presence? Hosting your own Bluesky Personal Data Server (PDS) lets you participate in the decentralized future of networking. Bluesky, built on the AT Protocol, empowers users to own their data while staying connected to the larger network. This tutorial covers everything from setting up your server and configuring DNS to customizing your instance and joining the federation. Whether you’re a tech enthusiast or a developer eager to explore decentralized systems, this guide simplifies the process for beginners and experts alike.
Preparation for self-hosting PDS
To begin, you’ll need to:
- Launch a server(VPS or otherwise) on a cloud provider.
- Ensure you have SSH access to your server with root privileges.
Server Requirements
- Public IPv4 address
- Public DNS name
- Public inbound internet access on ports 80/tcp and 443/tcp
Server Recommendations
- Operating System: Ubuntu 22.04
- Memory (RAM): 1 GB
- CPU Cores: 1
- Storage: 20 GB SSD
- Architectures: amd64, arm64
- Number of users: 1-20
Security Note: Restrict inbound SSH access to your own computer’s IP address for security.
Open your cloud firewall for HTTP and HTTPS
Ensure that the following ports are open to inbound access from the public internet:
- 80/tcp (for TLS certification verification)
- 443/tcp (for all application requests)
Configure DNS for your domain
Set up DNS records in your DNS provider’s control panel to point to your server:
Name Type Value TTL
mybluesky.com A 12.34.56.78 600
*.mybluesky.com A 12.34.56.78 600
Replace mybluesky.com with your domain and 12.34.56.78 with your server’s IP.
After that, use a DNS checker service to verify that your domain names resolve to your server’s public IP. One good example is DNS Checker.
Installer on Ubuntu and Debian
SSH into your server and download the installer script using wget or curl:
wget https://raw.githubusercontent.com/bluesky-social/pds/main/installer.sh
or
curl https://raw.githubusercontent.com/bluesky-social/pds/main/installer.sh >installer.sh
Run the installer:
sudo bash installer.sh
Verifying that your PDS is online and accessible
Visit https://mybluesky.com/xrpc/_health in your browser to check the server’s health. You should see a JSON response with a version number.
Test WebSockets using a tool like wsdump:
wsdump "wss://mybluesky.com/xrpc/com.atproto.sync.subscribeRepos?cursor=0"
Creating an account using pdsadmin
SSH into your server and use pdsadmin to create an account:
sudo pdsadmin account create
Creating an account using an invite code
Generate an invite code on your server using pdsadmin:
sudo pdsadmin create-invite-code
Use this code when creating an account in the app.
Updating your PDS
Keep your PDS updated with the latest version to avoid issues:
sudo pdsadmin update
Congratz! You now are hosting “your own bluesky”. To learn more, check out the At Protocol Wiki.




