Bluesky PDS von Grund auf selbst hosten

Bluesky PDS von Grund auf selbst hosten

Yulei Chen - Content-Engineerin bei sliplane.ioYulei Chen
7 min

Bluesky ist eine offene soziale App, gebaut auf der Philosophie von "file over app". Du kannst deine eigenen sozialen Daten auf deinem eigenen Server speichern. Egal, was mit der Social-App selbst passiert, ob sie schlecht wird oder einfach dichtmacht: Deine Daten gehören weiterhin dir. Das ist ziemlich cool.

In diesem Beitrag zeige ich dir, wie du einen Bluesky PDS (Personal Data Server) selbst hostest: wie du ihn auf deinem eigenen Server einrichtest, einen Account erstellst, dich über Bluesky anmeldest und ihn mit PDSls durchsuchst.

Voraussetzungen

Bevor wir starten, solltest du bereits einen Server und eine Domain haben. Dieses Tutorial verwendet einen Ubuntu-Server von Hetzner und die Domain sliplane.dev.

Schritt 1: Server aktualisieren

Aktualisiere auf deinem Server das System, damit die neuesten Sicherheitspatches und Updates installiert sind:

Terminal
sudo apt update
sudo apt upgrade -y

Sobald das fertig ist, ist dein Server bereit für die Software-Installation.

Schritt 2: UFW-Firewall installieren und konfigurieren

Lass nur die notwendigen Ports offen: SSH (22), HTTP (80), HTTPS (443). Installiere UFW und konfiguriere die Firewall so:

Terminal
sudo apt install ufw -y
sudo ufw allow 22    # SSH
sudo ufw allow 80    # HTTP
sudo ufw allow 443   # HTTPS
sudo ufw enable

Prüfe die Firewall-Konfiguration mit sudo ufw status verbose. Die Ausgabe sollte ungefähr so aussehen:

Terminal
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22                         ALLOW IN    Anywhere
80                         ALLOW IN    Anywhere
443                        ALLOW IN    Anywhere
22 (v6)                    ALLOW IN    Anywhere (v6)
80 (v6)                    ALLOW IN    Anywhere (v6)
443 (v6)                   ALLOW IN    Anywhere (v6)

Schritt 3: Docker installieren

Um Docker zu installieren, richtest du zuerst die Abhängigkeiten und Dockers GPG-Key ein:

Terminal
sudo apt install ca-certificates curl gnupg

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Füge als Nächstes das Docker-Repository hinzu:

Terminal
echo \
  "deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo $VERSION_CODENAME) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update

Installiere zuletzt Docker Engine und das Compose-Plugin:

Terminal
sudo apt install docker-ce docker-ce-cli \
containerd.io docker-buildx-plugin docker-compose-plugin -y

Prüfe die Installation mit sudo docker run hello-world. Du solltest Hello from Docker! sehen.

Schritt 4: DNS für deine Domain konfigurieren

Folge diesen Schritten, um DNS zu konfigurieren:

  1. Logge dich in das Dashboard deines Domain-Registrars ein (dort, wo du deine Domain gekauft hast)
  2. Navigiere zu den DNS-Einstellungen oder zur DNS-Verwaltung
  3. Füge einen A-Record mit folgenden Einstellungen hinzu:
    • Type: A
    • Name: @ (für die Root-Domain, z. B. "sliplane.dev")
    • Value/Target: Die IPv4-Adresse deines Servers
  4. Füge einen A-Record mit folgenden Einstellungen hinzu:
    • Type: A
    • Name: * (für alle Subdomains)
    • Value/Target: Die IPv4-Adresse deines Servers

DNS-Änderungen können ein paar Minuten bis mehrere Stunden brauchen, bis sie propagiert sind. Du kannst mit Tools wie dig oder Online-DNS-Checkern prüfen, ob dein DNS korrekt konfiguriert ist. Sobald der DNS-Record aktiv ist, kannst du mit der PDS-Installation weitermachen.

Schritt 5: PDS installieren

In diesem Schritt installierst du den PDS selbst. Lade zuerst das offizielle Installationsskript herunter:

Terminal
curl https://raw.githubusercontent.com/bluesky-social/pds/main/installer.sh > installer.sh

Führe den Installer dann mit bash aus:

Terminal
sudo bash installer.sh

Der Installer startet das offizielle bluesky-pds Docker-Image mit allen notwendigen Umgebungsvariablen. Außerdem richtet er TLS über Caddy ein. Die Caddyfile liegt unter /pds/caddy/etc/caddy/Caddyfile. Watchtower wird ebenfalls konfiguriert und hält dein PDS-Image automatisch aktuell.

Der Installer fragt dich nach deinem Domainnamen. Wenn du danach eine Ausgabe wie die folgende siehst, läuft dein PDS 🎉🎉:

========================================================================
PDS installation successful!

---

Check service status : sudo systemctl status pds
Watch service logs : sudo docker logs -f pds
Backup service data : /pds
PDS Admin command : docker exec pds goat pds admin

## Required Firewall Ports

Service Direction Port Protocol Source

---

HTTP TLS verification Inbound 80 TCP Any
HTTP Control Panel Inbound 443 TCP Any

## Required DNS entries

Name Type Value

---

sliplane.dev A 138.199.200.187
\*.sliplane.dev A 138.199.200.187

Detected public IP of this server: 138.199.200.187

To see pds admin commands, run "docker exec pds goat pds admin"

========================================================================

Als Nächstes fragt dich der Installer, ob du einen PDS-User-Account erstellen möchtest. Machen wir das:

Create a PDS user account? (y/N): y
Enter an email address (e.g. alice@sliplane.dev): yulei@sliplane.io
Enter a handle (e.g. alice.sliplane.dev): hello.sliplane.dev

## Account created successfully!

Handle : hello.sliplane.dev
DID : did:plc:kp7v7canit5l5izhspn5i25h
Password :

---

Save this password, it will not be displayed again.

Wie du siehst, haben wir einen PDS-Account mit dem Handle hello.sliplane.dev erstellt. Speichere unbedingt das automatisch generierte Passwort, denn es wird nicht noch einmal angezeigt. Jetzt kannst du dich bei Bluesky anmelden.

Schritt 6: Mit deinem PDS bei Bluesky anmelden

Öffne Bluesky. Statt dich über den Standardserver bsky.social anzumelden, wähle die Option für einen eigenen PDS und gib deine Domain ein.

Bei Bluesky mit eigenem Provider anmelden

Melde dich mit dem Handle und Passwort aus dem vorherigen Schritt an:

Bei Bluesky anmelden

Wenn alles korrekt konfiguriert ist, öffne deine Profile- oder Settings-Seite. Dort solltest du deinen Handle mit einem @ davor sehen, z. B. @hello.sliplane.dev.

Schritt 7 (optional): Deinen PDS mit PDSls durchsuchen

PDSls ist ein browserbasiertes Tool zum Inspizieren von AT-Protocol-Daten. So erkundest du deinen PDS-Account:

  1. Geh zu pdsls.dev
  2. Gib deinen Handle (z. B. hello.sliplane.dev) in das Suchfeld ein

Wenn Endpoint und DID korrekt aufgelöst werden, ist dein selbst gehosteter PDS live und sauber mit dem größeren Bluesky-Netzwerk föderiert.

PDSls-Suchergebnis

Die Suchergebnisse zeigen deine PDS-Domain, deinen Handle, deine DID und die AT-Protocol-Collections, in denen auch deine Bluesky-Collection liegt.

Fazit

Du hast jetzt deinen eigenen Bluesky PDS auf deinem eigenen Server laufen. Deine Posts, Likes und Follows leben auf Infrastruktur, die du kontrollierst.

Neben Daten-Infrastruktur wie einem PDS kannst du auch Application-Level-Infrastruktur selbst hosten, zum Beispiel eine AppView oder einen Relay. Vielleicht behandeln wir diese Themen in Zukunft, also bleib dran!

Willkommen auf deiner Cloud-Plattform

Sliplane macht es einfach, deine Apps in der Cloud zu deployen und zu skalieren. Starte mit einem Container oder deinem Lieblings-Framework und wachse von da aus. Probier es jetzt aus!