
Bluesky PDS von Grund auf selbst hosten
Yulei ChenBluesky 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:
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:
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:
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:
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:
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:
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:
- Logge dich in das Dashboard deines Domain-Registrars ein (dort, wo du deine Domain gekauft hast)
- Navigiere zu den DNS-Einstellungen oder zur DNS-Verwaltung
- 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
- Type:
- Füge einen A-Record mit folgenden Einstellungen hinzu:
- Type:
A - Name:
*(für alle Subdomains) - Value/Target: Die IPv4-Adresse deines Servers
- Type:
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:
curl https://raw.githubusercontent.com/bluesky-social/pds/main/installer.sh > installer.sh
Führe den Installer dann mit bash aus:
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.

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

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:
- Geh zu pdsls.dev
- 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.

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!