Kapitel 16/Tutorial.md hinzugefügt

This commit is contained in:
2025-08-18 21:50:50 +00:00
parent 37d41c615f
commit ef12b899a3

197
Kapitel 16/Tutorial.md Normal file
View File

@@ -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, 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
```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=<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`
```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: `<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
```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)**