Installing BSKY on your own Domain - Selfhosting: eigene Bluesky Instanz betreiben
In diesem Schnipsel möchte ich kurz umreißen, wie ihr die seid gestern verfügbare Option, eine eigene Bluskey-Instanz zu betreiben, angehen könnt. Dazu erstellen wir uns einen PDS mit eigener Domain. PDS bedeutet Personal Data Server.
Was brauchen wir?
Die BSKY Developer haben sehr viel Vorarbeit geleistet, allerdings bezieht sich deren offizielle Dokumentation nur auf Ubuntu 22.04., was ich aus ressourcensicht sehr gut verstehen kann. Sicher funktioniert das auf anderen Linux-Distributionen ähnlich, aber muss angepasst werden.
Was wir für unsere BSKY Instanz benötigen
Anforderung | Inhalt |
---|---|
Operating System | Ubuntu 22.04 |
Memory (RAM) | 2+ GB RAM |
CPU Cores | 2+ Kerne |
Speicher | 40+ GB schnelle SSD |
Architektur | amd64, arm64 |
Ich habe auf meinem Server nur 1 GB Ram (1GB Swap) und es funktioniert dennoch problemlos.
Die Jungs stellen ein Installer-Script zur Verfügung, was im besten Falle einfach ausgeführt werden muss - fertig 😄
Voraussetzungen
- Linux Server mit Ubuntu 22.04 und Root Access (Liste oben)
- Domain mit gültigem DNS die zu diesem Server führt, Port 443 und Port 80 offen
- Das wars auch schon
How To Anleitung BSKY als eigene Instanz (PDS)
- Meldet euch also beim Discord-Server an und eröffnet bei BSKY ein Ticket, dort tragt ihr eure Domain ein. Dadurch meldet ihr, dass ihr eine eigene Instanz betreiben wollt und dürft föderieren.
Wenn ihr das erledigt habt, können wir uns auf unseren Linux-Server verbinden und BSKY installieren. Das ganze Ding kommt in einem Docker-Image. Alles was nötig ist, wird durch das Installer-Script installiert.
- Loggt euch auf eurem Linux-Server via SHH ein
- Im nächsten Schritt öffnen wir in unserer Firewall die Ports nach draußen (IPTables), der letzte Befehl speichert die temporären Einstellen Einstellungen dauerhaft. (Achtet darauf, dass ihr auch die Ports in eurer Cloud-Instanz zulassen müsst, bei mir Oracle in seiner Management-Console. Das ist aber von Anbieter zu Anbieter unterschiedlich):
# HTTP :80
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT
# HTTPS : 443
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 443 -j ACCEPT
# Speichert die Settings mit folgendem Befehl
sudo netfilter-persistent save
- Nutzt ihr die andere große Firewall, UFW, dann lauten die Befehle folgendermaßen:
# HTTP: 80
sudo ufw allow 80
# HTTPS: 443
sudo ufw allow 443
# Nachdem man einen Port in UFW geöffnet hat, sollte man sicher gehen, dass UFW auch an ist:
sudo ufw enable
- Wechselt in euer Home-Verzeichnis (oder /tmp) und ladet euch den BSKY Installer herunter:
wget https://raw.githubusercontent.com/bluesky-social/pds/main/installer.sh
- Startet den Installer, dafür benötigt ihr Root-Rechte:
sudo bash installer.sh
- Der Installer fragt euch nach eurer Domain und nach eurer Mail und beginnt dann mit der Installation. Er aktualisiert zunächst via APT das System und installiert ggf. benötigte Komponenten, dann lädt er das Docker-Image und startet es:
~/bsky$ sudo bash installer.sh
* Detected supported distribution Ubuntu 22.04 LTS
---------------------------------------
Add DNS Record for Public IP
---------------------------------------
From your DNS provider's control panel, create the required
DNS record with the value of your server's public IP address.
+ Any DNS name that can be resolved on the public internet will work.
+ Replace example.com below with any valid domain name you control.
+ A TTL of 600 seconds (10 minutes) is recommended.
Example DNS record:
NAME TYPE VALUE
---- ---- -----
example.com A Server's IP
*.example.com A Server's IP
**IMPORTANT**
It's recommended to wait 3-5 minutes after creating a new DNS record
before attempting to use it. This will allow time for the DNS record
to be fully updated.
Enter your public DNS address (e.g. example.com): WurstGesicht.de
- Danach solltet ihr folgendes sehen:
========================================================================
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 : pdsadmin
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
------- --------- ---------------
WurstGesicht.de A Server's IP
*.Wurstgesicht.de A Server's IP
Detected public IP of this server: Server's IP
To see pdsadmin commands, run "pdsadmin help"
========================================================================
Create a PDS user account? (y/N): y
Enter an email address (e.g. alice@WurstGesicht.de): th@WurstGesicht.de
Enter a handle (e.g. alice.Wurstgesicht.de): thahipster.Wurstgesicht.de
- Das wars schon, der Server ist installiert und sofern ihr eure Domain verbunden habt, bereits erreichbar.
- Ihr habt einen Account angelegt, könnt aber einen weiteren Account mit folgendem Befehl erstellen:
sudo pdsadmin account create
- Nun müsst ihr noch euren DNS-Record veryfien, wie das geht sagt euch die folgende Seite. Kurzum, ihr müsst eurem DNS Record noch einen Eintrag hinzufügen, damit die Domain von BSKY federated werden kann.
https://bsky-debug.app/handle - Ende
Benutzt Bluesky
Ihr könnt die bekannten Wege nutzen, um euch mit eurer Bluesky Instanz (PDS) zu verbinden.
- Verbindet euch über die folgenden Wege:
- Auf der Bluesky Webseite einloggen
- App iPhone laden: Bluesky für iPhone
- App Android laden: Bluesky für Android
- Gebt in der Konfiguration die URL eurer Instanz ein (z.B.
https://WurstGesicht.de/
) - Ende
Easy, oder?
Update eures PDS
Falls ihr aktualisieren wollt, gebt ihr im Terminal eurer Linux-Instanz folgenden Befehl ein:
sudo pdsadmin update