Mastodon mit kleinem Budget selbst zu hosten mag riskant erscheinen, aber mit einem 5 € VPS, einigen Optimierungen und einer strukturierten Methode ist es durchaus möglich, ein stabiles dezentrales soziales Netzwerk zu betreiben. Dieser Artikel behandelt jeden Schritt, von den Voraussetzungen bis zur sicheren Inbetriebnahme, einschließlich Docker, SSL-Konfiguration und täglicher Wartung.
Somaire
Kurzfassung
🔑 Bei einem **5 € VPS** bevorzugen wir **Ubuntu 22.04 LTS**, Docker und einen Reverse Proxy. Diese Kombination gewährleistet eine **einfache Bereitstellung** und **kontrollierte Kosten**.
⚙️ Die **Installation** erfolgt über Docker Compose: Abrufen des Mastodon-Repositories, Bearbeitung der **.env**-Datei und Start der Dienste. Innerhalb von 15 Minuten verfügt Ihr Container über **PostgreSQL**, **Redis** und den Webdienst.
🔒 Für minimale **Sicherheit** verwenden wir Let’s Encrypt (Certbot) hinter einem **Nginx Reverse Proxy**. Die Zertifikate werden automatisch erneuert und HTTP-Verkehr auf HTTPS umgeleitet.
💾 **Geplante Backups** in Form von PostgreSQL-Dumps und Docker-Volume-Archiven schützen Ihre Daten. Ein Cron-Skript kann die Backups an einen entfernten Speicher senden.
1. Auswahl und Vorbereitung Ihres VPS
1.1 5 € Angebote: Auswahlkriterien
Anbieter wie Scaleway, OVHcloud oder Hetzner bieten Einstiegs-VPS für 5 € pro Monat an, die in der Regel 1 vCPU, 2 GB RAM und 20 GB SSD-Speicher bereitstellen. Obwohl diese Ressourcen begrenzt sind, bleibt Mastodon funktionsfähig, wenn die Last (Anzahl der Nutzer, Häufigkeit der Hintergrundaufgaben) begrenzt wird. Prüfen Sie vor dem Start:
- Die Art des Speichers (SSD vs. HDD): Eine SSD verbessert deutlich die Basis-I/O der Datenbank.
- Die Bandbreite und die Burst-Politik.
- Den Standort des Servers zur Latenz gegenüber Ihren Zielnutzern.
1.2 Vorbereitung von Ubuntu 22.04 LTS
Eine stabile und aktuelle Distribution garantiert Sicherheitsupdates. Nachdem Sie Ihre Instanz erstellt haben:
- Melden Sie sich per SSH an:
ssh root@votre-ip. - Aktualisieren Sie das System:
apt update && apt upgrade -y. - Erstellen Sie einen Nicht-Root-Benutzer:
adduser mastoadmin && usermod -aG sudo mastoadmin. - Installieren Sie die Basisabhängigkeiten:
apt install curl git ufw -y. - Aktivieren Sie die Firewall:
ufw allow OpenSSH && ufw enable.
2. Installation von Mastodon mit Docker
2.1 Docker und Docker Compose installieren
Docker vereinfacht die Bereitstellung, indem Dienste in Containern isoliert werden. Führen Sie aus:
curl -fsSL https://get.docker.com | sh
usermod -aG docker mastoadmin
apt install docker-compose -y
Melden Sie sich ab und wieder an, damit der Benutzer der Docker-Gruppe hinzugefügt wird.
2.2 Repository klonen und Umgebung konfigurieren
Wechseln Sie zu mastoadmin und deployen Sie Mastodon:
git clone https://github.com/mastodon/mastodon.git ~/mastodon
cd ~/mastodon
cp .env.production.sample .env.production
Öffnen Sie .env.production und passen Sie an:
- LOCAL_DOMAIN = ihre-domain.tld
- DB_USER, DB_PASS, DB_NAME
- REDIS_URL und STREAMING_CLUSTER
2.3 Dienste starten
Bauen und starten Sie alle Container:
docker-compose build
docker-compose up -d
Nach einigen Momenten sollten Sie Folgendes sehen:
| Container | Port | Beschreibung |
|---|---|---|
| web | 3000 | Rails-Oberfläche |
| streaming | 4000 | WebSocket |
| sidekiq | — | Hintergrundaufgaben |
| postgres | 5432 | Datenbank |
| redis | 6379 | Cache & Warteschlangen |
3. Erweiterte Konfiguration und Optimierung
3.1 SSL mit Let’s Encrypt einrichten
TLS-Sicherheit ist unverhandelbar. Installieren Sie Certbot und einen Nginx-Reverse-Proxy:
apt install nginx certbot python3-certbot-nginx -y
Erstellen Sie einen Serverblock in /etc/nginx/sites-available/mastodon :
server { listen 80; server_name votre-domaine.tld; location / { proxy_pass http://127.0.0.1:3000; include proxy_params; } }
Aktivieren Sie die Seite und generieren Sie das Zertifikat:
ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/
systemctl reload nginx
certbot --nginx -d votre-domaine.tld --agree-tos --no-eff-email --redirect
3.2 Leistungsoptimierung
Auf einem kleinen VPS zählt jede Ressource:
- Begrenzen Sie den Docker-RAM: Fügen Sie in
/etc/docker/daemon.json"default-memory": "1G"hinzu. - Konfigurieren Sie sidekiq mit einer reduzierten Thread-Anzahl (z.B.
threads: 5). - Aktivieren Sie den Produktionsmodus für Rails-Assets, um die CPU-Last zu reduzieren.
3.3 Backups und Wartung
Beispiel für ein Backup-Skript (täglicher Cron):
#!/bin/bash
TIMESTAMP=$(date +%F)
docker exec mastodon_postgres pg_dumpall -U postgres > /var/backups/db_$TIMESTAMP.sql
tar czf /var/backups/masto_data_$TIMESTAMP.tar.gz ~/mastodon/public/system
Senden Sie diese Dateien an einen entfernten Speicherort (rsync, S3, Nextcloud), um Datenverlust zu vermeiden.
FAQ
- Benötige ich einen leistungsstärkeren VPS, wenn die Community wächst?
Ja, wechseln Sie zu 4 GB RAM und 2 vCPUs, sobald Sie eine signifikante Laststeigerung beobachten.
- Wie aktualisiere ich Mastodon?
Führen Sie im Verzeichnis
~/mastodonzuerstgit pullaus, danndocker-compose buildunddocker-compose up -d. Vergessen Sie nicht, die Datenbank bei Bedarf zu migrieren. - Kann ich die Oberfläche anpassen?
Ändern Sie die CSS/JS-Dateien in
app/javascriptund bauen Sie das Docker-Image neu. Achten Sie auf Konflikte bei offiziellen Updates. - Wie gehe ich mit Verkehrsspitzen um?
Aktivieren Sie horizontales Skalieren der Web- und Streaming-Container, indem Sie die Last über einen Load Balancer verteilen.