Files
Homelab--Bratonein-Kontroll…/Kapitel 16/Tutorial.md

4.9 KiB
Raw Blame History

📝 Kapitel 16 Wiki (Self-Hosted mit Wiki.js)


🎯 Ziel
Wir bauen ein eigenes Wiki mit Wiki.js.
Am Ende ist das Wiki über eine eigene Domain erreichbar, per HTTPS abgesichert und mit einem Admin-Account eingerichtet.


📖 Warum Wiki.js?

  • Lose Textdateien sind schnell unübersichtlich
  • Externe Tools bedeuten Abhängigkeit von Dritten
  • Wiki.js ist modern, unterstützt Markdown, hat Rollen- und Rechteverwaltung
  • Läuft vollständig im eigenen Homelab und ist auch offline erreichbar

Voraussetzungen

  • LXC-Container mit Debian 12 (Bookworm)
  • Empfohlen: 1 vCPU, 12 GB RAM, ≥ 10 GB Speicher
  • Domain/Subdomain (z. B. wiki.deinedomain.tld)
  • Nginx Proxy Manager + DynDNS
  • Internetzugang für den Container

1 Container vorbereiten

apt update && apt upgrade -y
apt install -y ca-certificates curl gnupg lsb-release

mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \ 
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

👉 Wir bringen das System auf den neuesten Stand, fügen das offizielle Docker-Repository hinzu und installieren Docker inklusive Compose.

mkdir -p /srv/wiki
cd /srv/wiki

👉 Wir legen das Projektverzeichnis /srv/wiki an und wechseln hinein. Dort liegen später alle Dateien für das Wiki.


2 Projektdateien erstellen

.env

nano .env

👉 Mit nano öffnen wir eine neue Datei namens .env.
Kopiere den folgenden Inhalt hinein:

TZ=Europe/Berlin
POSTGRES_DB=wikidb
POSTGRES_USER=wikijs
POSTGRES_PASSWORD=<STARKES-PASSWORT>

WIKI_DB_HOST=postgres
WIKI_DB_PORT=5432
WIKI_DB_USER=${POSTGRES_USER}
WIKI_DB_PASS=${POSTGRES_PASSWORD}
WIKI_DB_NAME=${POSTGRES_DB}
WIKI_PORT=3000

👉 Ersetze <STARKES-PASSWORT> durch ein sicheres Passwort.
Speichern: STRG+O, Enter. Beenden: STRG+X.


docker-compose.yaml

nano docker-compose.yaml

👉 Wir erstellen die Hauptdatei für die Container.
Trage den folgenden Inhalt ein:

version: "3.9"
services:
  postgres:
    image: postgres:15
    container_name: wiki-postgres
    restart: unless-stopped
    env_file: .env
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
      interval: 10s
      timeout: 5s
      retries: 10

  wikijs:
    image: requarks/wiki:2
    container_name: wikijs
    depends_on:
      postgres:
        condition: service_healthy
    restart: unless-stopped
    env_file: .env
    environment:
      DB_TYPE: postgres
      DB_HOST: ${WIKI_DB_HOST}
      DB_PORT: ${WIKI_DB_PORT}
      DB_USER: ${WIKI_DB_USER}
      DB_PASS: ${WIKI_DB_PASS}
      DB_NAME: ${WIKI_DB_NAME}
      TZ: ${TZ}
    ports:
      - "3000:${WIKI_PORT}"
    volumes:
      - ./data/wikijs:/var/wiki

👉 Zwei Container: Postgres für die Datenbank und Wiki.js für das Webinterface.
Die Daten werden im Ordner data gespeichert.

Speichern und schließen wie oben.


3 Container starten und prüfen

docker compose up -d

👉 Startet beide Container im Hintergrund.

docker compose ps

👉 Listet die Container auf. Beide müssen Up anzeigen, Postgres nach kurzer Zeit healthy.


4 Proxy Host in Nginx Proxy Manager

  1. Im Browser Nginx Proxy Manager öffnen
  2. Neuer Proxy Host
    • Domain: wiki.deinedomain.tld
    • Forward Hostname/IP: <LXC-IP>
    • Forward Port: 3000
    • Websockets aktivieren
  3. SSL → Neues Zertifikat anfordern, „Force SSL“, „HTTP/2“ und „HSTS“ aktivieren
  4. Speichern

👉 Ab jetzt ist das Wiki über https://wiki.deinedomain.tld erreichbar.


5 Erstkonfiguration im Browser

Aufrufen:

https://wiki.deinedomain.tld
  • Admin-Benutzer erstellen (Name, Passwort, E-Mail)
  • Sprache: Deutsch
  • Zeitzone: Europe/Berlin
  • Registrierung: „Nur Einladung“ oder „Admin Approval“
  • Erste Startseite anlegen

👉 Dein Wiki ist betriebsbereit.


⚠️ Fehlerbehebung

docker logs -f wikijs
docker logs -f wiki-postgres

👉 Mit diesen Befehlen siehst du die Logdateien.

  • 502-Error → Container läuft nicht oder Websockets in NPM vergessen
  • Setup hängt → Werte in .env prüfen
  • IPv6-Probleme → AAAA-Record entfernen
  • Uploads fehlen → Schreibrechte im data-Ordner prüfen

Ergebnis

  • Wiki.js läuft in Docker (Debian 12 LXC)
  • Zugriff über https://wiki.deinedomain.tld
  • Admin-Benutzer erstellt und Registrierung gesichert
  • Daten persistent gespeichert

➡️ Nächstes Kapitel: Netdata (Monitoring)