Dec 22, 2025
Ariffud M.
5min Read
Bluesky is a decentralized social media platform built on AT Protocol. It aims to provide a federated social environment. A key component of this ecosystem is the Bluesky Personal Data Server (PDS), allowing users to manage their data independently and securely.
Hosting your own Bluesky PDS offers several advantages, including enhanced control over personal data, rich customization options, and valuable learning opportunities in server management and decentralized technologies.
In this article, you’ll learn how to host a Bluesky PDS on a virtual private server (VPS). By following our guide, you can set up a powerful and secure federated service, ensuring your data remains private and under your control.
Before you start hosting a Bluesky PDS, make sure your setup meets the following server requirements:
Additionally, you’ll need a valid domain name to make your server accessible to users. If you don’t own any, we recommend getting one from Hostinger. This way, you can configure both your server and domain from one intuitive dashboard.
Instantly check domain name availability.
Here are the steps to set up your own self-hosted Bluesky PDS. For this tutorial, we use an Ubuntu 22.04 distribution.
Choosing the right VPS provider is important for your Bluesky PDS’s smooth operation. Hostinger’s VPS is an ideal solution due to its reliable performance, security measures, and scalability options.
Our KVM-based VPS plans are powered by up to eight cores of AMD CPU, 32 GB of RAM, and 400 GB of NVMe storage for your resource-demanding applications. Meanwhile, our firewall and DDoS protection prevent harmful traffic from reaching your server.
Based on hardware requirements from the previous section, we recommend choosing the KVM 1 plan with a single-core CPU, 1 GB of RAM, and 50 GB of disk space. You can upgrade to higher plans anytime to accommodate growing needs.

After purchasing your desired plan, here’s how to get your VPS started:





Hostinger users can use Kodee, our AI assistant, to help manage their VPS. Aside from writing commands and guiding you thorugh system administration taks, it can directly manage various aspects of your server.
For example, you can ask Kodee to update your VPS hostname, change its nameservers, set a new firewall rule, and more. Simply send Kodee a message through its chat interface and it will handle the rest.
To set up your Bluesky PDS, you need to install several dependencies on your server. Here’s how to do so:

sudo apt update
sudo apt upgrade -y
sudo apt install -y apt-transport-https ca-certificates curl python3-websocket software-properties-common wget
Next, clone the Bluesky PDS source code from the official repository. Follow the instructions to download the latest version of the necessary files and related resources:
git clone https://github.com/bluesky-social/pds.git

cd pds
Bluesky provides an installer script to set up your personal data server. It eliminates the need for manual configuration and reduces the risk of unwanted errors. Follow these steps:
sudo bash installer.sh
wget https://raw.githubusercontent.com/bluesky-social/pds/main/installer.sh
sudo bash installer.sh

sudo pdsadmin account create
After installing Bluesky PDS, it’s time to launch your own server and ensure everything is working correctly:
curl https://domain.tld/xrpc/_healthv
{"version": "0.4.32"}wsdump "wss://domain.tld/xrpc/com.atproto.sync.subscribeRepos?cursor=0"


Once you’re done with the Bluesky PDS setup, you can allow users to join your server. Follow the instructions below:



sudo pdsadmin create-invite-code

Proper management and security of your Bluesky PDS is a crucial step to providing a safe environment for your community. Here’s how to keep your server updated and secure:
Updating the PDS
Regular updates keep your Bluesky PDS running smoothly and securely. Sometimes, updates also include new features, enhancing users’ experiences.
To update your Bluesky PDS, execute the following command:
sudo pdsadmin update
Configuring SSL/TLS
SSL/TLS protects communication between your server and its users. Installing an SSL certificate encrypts data transferred to and from your server, protecting it from potential eavesdroppers.
You can use Let’s Encrypt to obtain a free SSL certificate. Use the following commands and replace domain.tld with your domain name:
sudo apt install certbot
sudo certbot certonly --standalone -d domain.tld
In this article, you’ve learned how to host a Bluesky server on a VPS. From selecting an ideal VPS service to generating invite codes for users and installing SSL certificates, you can now create a secure and efficient personal data server.
By self-hosting your PDS, you gain greater control over data sharing and can customize your setup to suit your needs. Encourage your friends and communities to join your server and enjoy the benefits of decentralized social media networking.
This section answers the most common questions about Bluesky Personal Data Server setup.
Bluesky PDS is a decentralized server that allows users to manage their social media data independently, ensuring better control and privacy. It supports federated networking and data distribution.
Yes, you can customize your Bluesky PDS setup using the pdsadmin command. This tool allows you to configure various aspects of your server, such as creating user accounts, generating invite codes, and requesting crawls from a relay host.
Hostinger’s VPS is highly recommended for hosting a Bluesky PDS due to its powerful hardware specifications, comprehensive security features, and multiple data center locations, ensuring a smooth social networking experience with Bluesky.
Comments
November 17 2024
Thanks so much for this tutorial - it totally got me off the ground. I do have a question, though - if I wanted to serve a different page as the root / home page instead of the weird text page that is there, how would I do that?
November 29 2024
I'm glad the tutorial was helpful! To serve a custom page as your root/home page instead of the default one, you can start by navigating to the Bluesky PDS directory where your server files are located. Look for the file handling the routes, such as server.js, app.js, or a similar file. You can use the command
grep -r "app.get('/" .to locate it. Once you've found the file, open it with a text editor like nano and look for the handler for the / route. Update the code to serve your custom HTML, for example:app.get('/', (req, res) => { res.send(` Welcome to My Bluesky PDS Welcome to My Bluesky PDS! This server powers my Bluesky activities. Learn more here. `); });