Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Synology / NAS 14.06.2026 · 7 min Lesezeit

Wiki.js auf Synology NAS installieren: Git-gestütztes Firmen-Wiki mit PostgreSQL

Wiki.js 2.5 mit PostgreSQL im Container Manager auf dem Synology NAS einrichten: HTTPS über den DSM-Reverse-Proxy, Administrator per Setup-Assistent, Git-Synchronisation und Datenbank-Backup.

Geprüft am 30.09.2026 · für wiki 2.5.315, postgres 15-alpine

WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Dunkler Netzwerkspeicher auf einem Holzregal zwischen Büchern und einer Keramikvase mit grünen Zweigen

Wiki.js ist eine quelloffene Wiki-Software auf Node.js mit Markdown-Editor, Rechteverwaltung und optionaler Synchronisation der Inhalte in ein Git-Repository. Diese Anleitung richtet Wiki.js 2 mit PostgreSQL im Container Manager eines Synology NAS ein, veröffentlicht es über den Reverse Proxy von DSM mit HTTPS und sichert die Seiten per Git. Sie richtet sich an Administratoren, die ein internes Wiki für technische Teams betreiben wollen.

Voraussetzungen

KomponenteWert
Synology NASDSM 7.2 oder neuer, Paket Container Manager installiert, Prozessor x86-64 oder ARM64
Arbeitsspeichermindestens 2 GB für DSM und beide Container
Domainzum Beispiel wiki.example.com, zeigt auf das NAS; Zertifikat in DSM vorhanden
Imagesghcr.io/requarks/wiki:2.5.315, postgres:15-alpine
Git-AnbieterGitHub, GitLab, Gitea oder Forgejo mit leerem Repository und SSH-Zugriff
SSH-Zugang zum NASfür Backup und Fehlersuche (Systemsteuerung → Terminal & SNMP)

Die Images von Wiki.js 2.5.315 gibt es für amd64 und arm64. Ob Ihr Modell passt, zeigt uname -m per SSH (x86_64 oder aarch64).

Schritt 1: Projektverzeichnis und Datenbank-Ordner anlegen

Legen Sie in der File Station unter dem freigegebenen Ordner docker den Ordner wikijs und darin den Unterordner db an. Der vollständige Pfad lautet:

/volume1/docker/wikijs/db

Der Ordner db nimmt die PostgreSQL-Dateien auf. Erzeugen Sie außerdem ein Datenbank-Passwort, zum Beispiel per SSH mit openssl rand -hex 24, und notieren Sie es.

Verifizieren: Die File Station zeigt /volume1/docker/wikijs/db als leeren Ordner.

Schritt 2: Compose-Datei im Container Manager erstellen

Öffnen Sie den Container Manager, wählen Sie Projekt → Erstellen, geben Sie als Projektname wikijs und als Pfad /volume1/docker/wikijs an und wählen Sie compose.yaml erstellen. Ersetzen Sie IHR_DB_PASSWORT an beiden Stellen durch das Passwort aus Schritt 1:

services:
  db:
    image: postgres:15-alpine
    container_name: wikijs-db
    environment:
      POSTGRES_DB: wiki
      POSTGRES_USER: wikijs
      POSTGRES_PASSWORD: IHR_DB_PASSWORT
    volumes:
      - /volume1/docker/wikijs/db:/var/lib/postgresql/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U wikijs -d wiki"]
      interval: 10s
      timeout: 5s
      retries: 5

  wiki:
    image: ghcr.io/requarks/wiki:2.5.315
    container_name: wikijs
    depends_on:
      db:
        condition: service_healthy
    environment:
      DB_TYPE: postgres
      DB_HOST: db
      DB_PORT: 5432
      DB_USER: wikijs
      DB_PASS: IHR_DB_PASSWORT
      DB_NAME: wiki
    ports:
      - "127.0.0.1:3540:3000"
    restart: unless-stopped
  • Offizielles Image: ghcr.io/requarks/wiki (auch als requarks/wiki auf Docker Hub). Das Image von LinuxServer nutzt andere Pfade und Variablen, die Werte dieser Anleitung passen dort nicht.
  • Version: Die feste Version verhindert unkontrollierte Updates. Wiki.js 3 ist noch Beta und nicht mit der 2er-Datenbank kompatibel, bleiben Sie deshalb bei 2.x.
  • Port: Wiki.js ist nur lokal auf dem NAS erreichbar. Der Zugriff läuft ausschließlich über den Reverse Proxy mit HTTPS (Schritt 4).
  • Kein Administrator per Variable: Variablen wie ADMIN_EMAIL oder ADMIN_PASS gibt es in Wiki.js 2 nicht, das Konto entsteht im Setup-Assistenten.

Verifizieren: Der Container Manager akzeptiert die Datei ohne YAML-Fehler, und im Text kommt IHR_DB_PASSWORT nicht mehr vor.

Schritt 3: Stack starten und Datenbank prüfen

Bestätigen Sie mit Weiter und Fertig. Der Container Manager lädt die Images, startet zuerst die Datenbank und erst nach erfolgreichem Healthcheck Wiki.js.

Verifizieren: Unter Projekt → wikijs laufen beide Container, wikijs-db ist als gesund markiert. Im Protokoll von wikijs erscheint keine wiederholte Meldung zu ECONNREFUSED oder password authentication failed. Per SSH liefert curl -sI http://127.0.0.1:3540 | head -1 eine Antwort mit Status 200 oder 302.

Schritt 4: Reverse Proxy mit HTTPS einrichten

Öffnen Sie Systemsteuerung → Anmeldeportal → Erweitert → Reverse Proxy und legen Sie einen Eintrag an:

  • Quelle: Protokoll HTTPS, Hostname wiki.example.com, Port 443
  • Ziel: Protokoll HTTP, Hostname localhost, Port 3540
  • Unter Benutzerdefinierte Kopfzeile über Erstellen → WebSocket die beiden WebSocket-Header ergänzen.

Weisen Sie unter Systemsteuerung → Sicherheit → Zertifikat → Einstellungen dem neuen Eintrag das passende Zertifikat zu. Soll das Wiki nur im Firmennetz erreichbar sein, geben Sie Port 443 im Router nicht frei und nutzen einen internen DNS-Eintrag oder VPN.

Verifizieren: https://wiki.example.com öffnet ohne Zertifikatswarnung den Setup-Assistenten von Wiki.js.

Schritt 5: Administratorkonto im Setup-Assistenten anlegen

Beim ersten Aufruf zeigt Wiki.js den Setup-Assistenten. Füllen Sie aus:

  1. Administrator Email: E-Mail-Adresse des Administrators, sie dient als Anmeldename.
  2. Password und Confirm Password: mindestens 6 Zeichen, verwenden Sie ein langes, zufälliges Passwort.
  3. Site URL: die öffentliche Adresse ohne abschließenden Schrägstrich, also https://wiki.example.com, nicht die interne Adresse.
  4. Allow Telemetry: nach Ihrer Datenschutzvorgabe ein- oder ausschalten.

Klicken Sie auf Install. Wiki.js legt die Tabellen an und leitet zur Anmeldung weiter. Die Oberflächensprache stellen Sie danach unter Administration → Locale auf Deutsch um.

Verifizieren: Die Anmeldung mit E-Mail und Passwort gelingt, und unter Administration → System Info steht die Version 2.5.315 und als Datenbank PostgreSQL.

Schritt 6: SSH-Deploy-Key für Git erzeugen

Das Git-Modul akzeptiert nur Schlüssel ohne Passphrase. Erzeugen Sie deshalb ein eigenes Schlüsselpaar nur für das Wiki, auf dem NAS per SSH oder auf einem beliebigen Rechner:

ssh-keygen -t ed25519 -C "wikijs-deploy" -f ~/.ssh/wikijs_deploy -N ""

Es entstehen ~/.ssh/wikijs_deploy (privater Schlüssel) und ~/.ssh/wikijs_deploy.pub (öffentlicher Schlüssel). Da der private Schlüssel nicht geschützt ist, verwenden Sie ihn ausschließlich für dieses eine Repository.

Verifizieren: ssh-keygen -y -f ~/.ssh/wikijs_deploy gibt den öffentlichen Schlüssel aus, ohne nach einer Passphrase zu fragen.

Schritt 7: Git-Repository vorbereiten und Deploy-Key hinterlegen

Legen Sie ein neues, leeres, privates Repository an, zum Beispiel company-wiki, und nutzen Sie es nur für Wiki.js. Hinterlegen Sie den Inhalt von wikijs_deploy.pub als Deploy-Key mit Schreibrecht:

  • GitHub: Settings → Deploy keys → Add deploy key, Allow write access aktivieren.
  • GitLab: Settings → Repository → Deploy keys, Grant write permissions to this key aktivieren.
  • Gitea und Forgejo: Einstellungen → Deploy-Schlüssel, Schreibzugriff aktivieren.

Verifizieren: ssh -i ~/.ssh/wikijs_deploy -T git@github.com meldet eine erfolgreiche Authentifizierung für das Repository (bei anderen Anbietern entsprechender Host).

Schritt 8: Git-Synchronisation aktivieren

Öffnen Sie Administration → Storage, aktivieren Sie Git und tragen Sie ein:

EinstellungWert
Authentication Typessh
Repository URIgit@github.com:IHR-KONTO/company-wiki.git
BranchStandard-Branch des Repositorys, meist main (Vorgabe in Wiki.js: master)
SSH Private Key Modecontents
B - SSH Private Key Contentsvollständiger Inhalt von wikijs_deploy
Default Author Email / NameAbsender für Commits ohne zugeordneten Benutzer
Sync DirectionBi-directional (Standard)
Sync ScheduleStandard alle 5 Minuten

Speichern Sie mit Apply. Haben Sie schon Seiten angelegt, führen Sie unten unter Actions die Aktion Add Untracked Changes aus, sonst landen ältere Seiten nicht im Repository. Force Sync startet eine sofortige Synchronisation.

Verifizieren: Nach Force Sync enthält das Repository je Seite eine Markdown-Datei. Ändern Sie eine Seite, erscheint spätestens nach dem nächsten Intervall ein neuer Commit.

Schritt 9: Datenbank sichern

Git sichert nur Seiteninhalte. Benutzer, Gruppen, Rechte, Einstellungen und hochgeladene Dateien liegen in PostgreSQL. Sichern Sie die Datenbank regelmäßig, etwa als geplante Aufgabe im Aufgabenplaner mit Benutzer root:

docker exec wikijs-db pg_dump -U wikijs -d wiki -Fc > /volume1/docker/wikijs/wiki-$(date +%F).dump

Beziehen Sie /volume1/docker/wikijs in Ihre Hyper-Backup-Aufgabe ein.

Verifizieren: docker exec -i wikijs-db pg_restore -l < /volume1/docker/wikijs/wiki-$(date +%F).dump | head -5 listet den Inhalt der Sicherung ohne Fehler.

Typische Fehler und Lösungen

ProblemUrsache und Lösung
password authentication failedPasswort in DB_PASS und POSTGRES_PASSWORD unterschiedlich. Beachten Sie: PostgreSQL übernimmt das Passwort nur beim ersten Start mit leerem db-Ordner. Bei einer Neuinstallation den Ordner leeren.
database "wiki" does not existPOSTGRES_DB und DB_NAME stimmen nicht überein oder der db-Ordner stammt aus einem früheren Versuch.
Reverse Proxy meldet Fehler 502Wiki.js läuft nicht oder der Port weicht ab. Protokoll des Containers und Ziel localhost:3540 prüfen.
Setup-Assistent erscheint nach Neustart erneutWiki.js erreicht die Datenbank nicht oder der db-Ordner ist leer. Mount-Pfad prüfen.
Git-Sync scheitert mit AuthentifizierungsfehlerSchlüssel mit Passphrase, Deploy-Key ohne Schreibrecht oder falscher Modus (path statt contents).
Git-Sync scheitert mit Branch-FehlerBranch im Modul (Vorgabe master) passt nicht zum Repository (main).
Links und E-Mails zeigen falsche AdresseSite URL unter Administration → General auf die HTTPS-Adresse setzen.

Häufige Fragen

Welche Datenbank ist für Wiki.js empfohlen?

PostgreSQL. Wiki.js 2 unterstützt auch MySQL, MariaDB, MS SQL Server und SQLite, Wiki.js 3 setzt jedoch ausschließlich auf PostgreSQL.

Warum Port 3540 statt 80 oder 443?

DSM belegt 80 und 443 für Webstation und Reverse Proxy. Wiki.js läuft deshalb auf einem freien lokalen Port, der Reverse Proxy nimmt die Anfragen auf 443 entgegen.

Funktioniert Wiki.js auf ARM-basierten Synology-NAS?

Auf Modellen mit 64-Bit-ARM (aarch64) ja. Für 32-Bit-ARM gibt es kein aktuelles Image.

Kann ich das Image von LinuxServer verwenden?

Ja, dann gelten dessen Pfade und Variablen (/config, PUID, PGID). Die Compose-Datei dieser Anleitung passt dafür nicht.

Was passiert, wenn das Git-Repository bereits Dateien enthält?

Bei bidirektionaler Synchronisation importiert Wiki.js vorhandene Markdown-Dateien als Seiten, andere Dateien können den Abgleich stören. Nutzen Sie ein eigenes, leeres Repository.

Fazit

Mit festgelegter Version, lokal gebundenem Port, HTTPS über den Reverse Proxy von DSM, Git-Synchronisation für die Inhalte und regelmäßigem Datenbank-Dump läuft Wiki.js 2 stabil auf einem Synology NAS. Prüfen Sie vor jedem Update die Release Notes und passen Sie dann die Versionsnummer in der Compose-Datei an.

Weiterführende Anleitungen und Quellen