Installation

Docker-Installation

FediSuite wird vollständig über Docker Compose betrieben. Du benötigst Docker, das Self-Hosting-Repository und eine .env-Datei mit deinen Einstellungen. Nichts wird lokal gebaut, das fertige Image kommt von Docker Hub.

1

Repository klonen

Klone das Self-Hosting-Repository auf deinen Server. Es enthält die docker-compose.yml, die .env.example und ein Beispiel für Traefik. Ohne Zielnamen im Befehl hieße der Ordner FediSuite-Self-Hosting, hier heißt er fedisuite.

bash
git clone https://forge.chrislo.de/FediSuite/FediSuite-Self-Hosting.git fedisuite
cd fedisuite
2

.env konfigurieren

Kopiere die Beispiel-Konfiguration und passe sie an. Alle Pflichtfelder müssen gesetzt sein, bevor du den Stack startest, insbesondere ADMIN_EMAIL und ADMIN_PASSWORD. Daraus legt FediSuite beim Start den ersten Admin-Account an.

bash
cp .env.example .env
nano .env

Pflichtfelder

FEDISUITE_IMAGE christinloehner/fedisuite:latest

Docker-Image, das genutzt wird. latest ist die jeweils aktuelle Version für amd64, auf ARM64-Servern gilt arm64-latest. Einen Tag wie 2.0.0 kannst du fest eintragen.

APP_URL https://deine-domain.de

Vollständige öffentliche URL deiner FediSuite-Instanz inkl. https://, ohne abschließenden Schrägstrich.

JWT_SECRET (langer zufälliger String)

Geheimschlüssel für Login-Tokens. Verschlüsselt außerdem gespeicherte 2FA-Geheimnisse. Niemals weitergeben oder committen und nach dem Start nicht mehr ändern.

POSTGRES_DB fedisuite

Name der PostgreSQL-Datenbank.

POSTGRES_USER fedisuite

Datenbankbenutzer.

POSTGRES_PASSWORD sicheres-passwort

Datenbankpasswort. Wähle ein langes, zufälliges Passwort.

DATABASE_URL postgresql://fedisuite:passwort@db:5432/fedisuite

Vollständige PostgreSQL-Verbindungszeichenfolge. Muss zu den POSTGRES_*-Werten passen.

ADMIN_EMAIL admin@deine-domain.de

E-Mail des ersten Admin-Accounts. Der Account wird beim Start angelegt, falls es ihn noch nicht gibt.

ADMIN_PASSWORD sicheres-admin-passwort

Passwort des ersten Admin-Accounts. Fehlt dieser Wert, wird kein Admin angelegt und ein Login ist nicht möglich.

SMTP_HOST smtp.dein-anbieter.de

SMTP-Server für ausgehende E-Mails.

SMTP_PORT 587

SMTP-Port (typischerweise 587 für STARTTLS oder 465 für SSL).

SMTP_USER dein-smtp-benutzer

Benutzername für die SMTP-Authentifizierung.

SMTP_PASS dein-smtp-passwort

Passwort für die SMTP-Authentifizierung.

SMTP_FROM no-reply@deine-domain.de

Absenderadresse für ausgehende E-Mails.

Optionale Felder

APP_NAME FediSuite

Name der Instanz, z.B. in E-Mails.

PUBLIC_SITE_URL https://deine-domain.de

Öffentliche URL der Instanz für den Standard-User-Agent und die Instanzliste, falls abweichend von APP_URL.

OUTBOUND_HTTP_USER_AGENT Mozilla/5.0 (compatible; …)

User-Agent-Header für ausgehende HTTP-Anfragen an Fediverse-Instanzen. Standard: Mozilla/5.0 (compatible; APP_NAME/1.0; +PUBLIC_SITE_URL).

ENABLE_USER_REGISTRATION true

Auf false setzen, um neue Registrierungen zu sperren. Der Admin aus ADMIN_EMAIL wird trotzdem angelegt.

Wichtig: Bei jedem Start der app prüft FediSuite, ob es einen Benutzer mit der Adresse aus ADMIN_EMAIL gibt. Falls nicht, wird er mit ADMIN_PASSWORD angelegt, andernfalls bleibt das Passwort unverändert. Ein späteres Ändern von ADMIN_PASSWORD in der .env setzt das Passwort also nicht zurück. Fehlt ADMIN_PASSWORD, wird kein Admin angelegt.
SMTP ist Pflicht: FediSuite versendet E-Mails für die Registrierung, den Passwort-Reset und Abläufe rund um den historischen Import nach dem Verbinden von Fediverse-Konten. Lass die SMTP-Einstellungen nicht leer. Ohne Konfiguration versucht FediSuite, einen SMTP-Server auf localhost:1025 zu erreichen.
3

Stack starten

Starte alle Container im Hintergrund. Beim ersten Start werden die Images heruntergeladen. Die Datenbank-Initialisierung läuft automatisch ab, separate Migrations-Befehle sind nicht nötig.

bash
docker compose up -d

Der Stack besteht aus vier Services:

db postgres:15-alpine

PostgreSQL-Datenbank

app christinloehner/fedisuite:latest

Web-Oberfläche und API. Initialisiert beim Start die Datenbank und meldet über /api/health, ob die App bereit ist

worker1 christinloehner/fedisuite:latest

Hintergrundjobs: Scheduler für geplante Beiträge, Aktualisierung der Beitragszahlen, Erinnerungen, Tipps

worker2 christinloehner/fedisuite:latest

Hintergrundjobs: Aktualisierung der Beitragszahlen, Tipps

Die App lauscht auf Port 3000, den die Compose-Datei auf dem Host veröffentlicht. Über Traefik-Labels in der docker-compose.yml kannst du sie unter deiner Domain erreichbar machen, die Labels sind bereits als Kommentar vorbereitet (siehe Reverse Proxy). Die Worker starten erst, wenn der Healthcheck der app bestanden ist. Wie lange das dauert, steht auf der Seite Konfiguration.

4

Erster Login

Sobald db und app den Status healthy haben, ist die App erreichbar. Öffne deine Domain (APP_URL) im Browser und melde dich mit den in der .env gesetzten Admin-Zugangsdaten an.

FediSuite läuft unter
https://deine-domain.de

Login

Wert aus ADMIN_EMAIL

Passwort

Wert aus ADMIN_PASSWORD
Tipp: Nach docker compose up -d startet zuerst db. Sobald der Healthcheck besteht, startet app und initialisiert die Datenbank. Die Worker folgen, wenn app healthy ist. Du kannst den Fortschritt mit docker compose logs -f app verfolgen. Nach dem ersten Login empfiehlt sich, in den Einstellungen die Zwei-Faktor-Authentifizierung für den Admin-Account einzurichten.

Status & nützliche Befehle

Status aller Container prüfen

Zeigt alle laufenden Container und ihren Health-Status.

docker compose ps

Logs in Echtzeit verfolgen

Zeigt laufende Log-Ausgaben aller oder einzelner Container.

docker compose logs -f
docker compose logs -f app      # nur App
docker compose logs -f worker1  # nur Worker 1

Update auf neuere Version

Lädt neue Images und startet betroffene Container neu. Vorher die Compose-Datei per git pull aktualisieren, siehe Seite Updates.

docker compose pull
docker compose up -d

Health-Endpunkt der App prüfen

Liefert JSON mit status und db, sobald die App läuft und die Datenbank erreichbar ist. Die Compose-Datei nutzt denselben Endpunkt für den Healthcheck.

curl -s http://127.0.0.1:3000/api/health

Konfiguration vor dem Start prüfen

Validiert die docker-compose.yml und zeigt die aufgelöste Konfiguration inkl. .env-Werten.

docker compose config

Stack neu starten

Startet alle Container neu, ohne sie neu zu erstellen. Geänderte .env-Werte werden dabei nicht neu eingelesen. Dafür ist docker compose up -d nötig.

docker compose restart