From ef12b899a36f52154f1b17104e64e1a28e37c273 Mon Sep 17 00:00:00 2001 From: Thomas Dannenberg Date: Mon, 18 Aug 2025 21:50:50 +0000 Subject: [PATCH] =?UTF-8?q?Kapitel=2016/Tutorial.md=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Kapitel 16/Tutorial.md | 197 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 Kapitel 16/Tutorial.md diff --git a/Kapitel 16/Tutorial.md b/Kapitel 16/Tutorial.md new file mode 100644 index 0000000..28b0b72 --- /dev/null +++ b/Kapitel 16/Tutorial.md @@ -0,0 +1,197 @@ +# 📝 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, 1–2 GB RAM, ≥ 10 GB Speicher +- Domain/Subdomain (z. B. `wiki.deinedomain.tld`) +- Nginx Proxy Manager + DynDNS +- Internetzugang für den Container + +--- + +## 1️⃣ Container vorbereiten + +```bash +apt update && apt upgrade -y +``` +👉 Wir bringen das System auf den neuesten Stand. + +```bash +apt install -y curl ca-certificates gnupg lsb-release docker.io docker-compose-plugin +``` +👉 Installation aller Werkzeuge, die für Docker-Container benötigt werden. + +```bash +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` + +```bash +nano .env +``` +👉 Mit `nano` öffnen wir eine neue Datei namens `.env`. +Kopiere den folgenden Inhalt hinein: + +```env +TZ=Europe/Berlin +POSTGRES_DB=wikidb +POSTGRES_USER=wikijs +POSTGRES_PASSWORD= + +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 `` durch ein sicheres Passwort. +Speichern: **STRG+O**, Enter. Beenden: **STRG+X**. + +--- + +### `docker-compose.yaml` + +```bash +nano docker-compose.yaml +``` +👉 Wir erstellen die Hauptdatei für die Container. +Trage den folgenden Inhalt ein: + +```yaml +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 + +```bash +docker compose up -d +``` +👉 Startet beide Container im Hintergrund. + +```bash +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: `` + - 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 + +```bash +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)** \ No newline at end of file