BlueSky Social PDS

Social media is too important to be controlled by a few corporations. We’re building an open foundation for the social internet so that we can all shape its future.

Software Included

Package Version License
BlueSky PDS 0.4 MIT license
caddy 2.7.6 Apache License 2.0

Creating an App using the Control Panel

Click the Deploy to DigitalOcean button to create a Droplet based on this 1-Click App. If you aren’t logged in, this link will prompt you to log in with your DigitalOcean account.

Deploy to DO

Creating an App using the API

In addition to creating a Droplet from the BlueSky Social PDS 1-Click App using the control panel, you can also use the DigitalOcean API. As an example, to create a 4GB BlueSky Social PDS Droplet in the SFO2 region, you can use the following curl command. You need to either save your API access token) to an environment variable or substitute it in the command below.

curl -X POST -H 'Content-Type: application/json' \
         -H 'Authorization: Bearer '$TOKEN'' -d \
        '{"name":"choose_a_name","region":"sfo2","size":"s-2vcpu-4gb","image": "blueskysocialpds"}' \
        "https://api.digitalocean.com/v2/droplets"

Getting Started After Deploying BlueSky Social PDS

The AT Protocol is a networking technology created to power the next generation of social applications. The initial reference application, bsky.app, provides a global-scale microblogging experience.

Self-hosting a Bluesky PDS means running your own Personal Data Server that is capable of federating with the wider Bluesky social network.

This application creates a PDS in a droplet.

We recommend you don’t change the order of this flow to make your BlueSky PDS work.

BlueSky PDS configuration instructions:

  • First and foremost, a domain or subdomain is required. Ensure it’s not too long; the handle (username + hostname) should be no longer than 30 characters, with the username being at least 3 characters long. Do not forget about dots in the domain/subdomain name, dots are included in the total length.
  • Select the BlueSky app in the DigitalOcean marketplace, and create a droplet from it. It’s ok to start with the smallest droplet size, but migrating to a bigger droplet will be a hard task (see the link in Useful links section).
  • Wait for the droplet creation process to complete.
  • Once the droplet is created, copy its IP address from the droplet page.

Configure your DNS for wildcard usage by using the IP from the previous step. Refer to the docs. Without a wildcard, the BlueSky handle won’t function correctly. Check links in Useful links section for additional information.

  • Join the AT Protocol PDS Admins Discord and register the hostname of your PDS. After the ticket is closed and you see “You’ve been Federated :)”, you can proceed. This step typically takes about a day.
  • SSH into the droplet to complete the installation process. Use your domain/subdomain as the public DNS address and create an account with the PDS hostname, with the username as a prefix. For instance, if your PDS hostname is bsky.mydomain.com, you prefer scott as the username, enter as handle: scott.bsky.mydomain.com. Save the output in a secure location; the password won’t be displayed again, but you can reset it using pdsadmin.
  • After installation is complete you can use your handle. For example, visit bsky.app, choose “Sign in,” select Custom as the Hosting provider, and input your handle as the Server address. Enter the email and password for the newly created account.

Useful links: