Kapitel 14/Tutorial.md aktualisiert

This commit is contained in:
2025-10-16 10:59:27 +00:00
parent e08a84ddbf
commit 13b8277830

View File

@@ -1,207 +0,0 @@
# 📝 Kapitel 16 Wiki (Self-Hosted mit Wiki.js)
---
🎯 Ziel
Wir setzen **Wiki.js** im Debian12LXC mit Docker stabil und wiederholbar auf.
Am Ende: HTTPSZugriff über Subdomain, Admin angelegt, Registrierung abgesichert.
---
📖 Warum Wiki.js?
- ✅ Moderne Weboberfläche, Markdown, Suche
- ✅ Rechte/Rollen, volle Datenhoheit im Homelab
- ✅ Leichtgewichtig per Docker betreibbar
---
✅ Voraussetzungen
- Debian 12 LXC, 1 vCPU, 12 GB RAM, ≥ 10 GB Speicher
- Domain/Subdomain (z.B. `wiki.deinedomain.tld`)
- Nginx Proxy Manager + DynDNS
- Internetzugang im LXC
---
## 1⃣ System & Docker (stabile Variante über das offizielle DockerRepo)
**Warum:** Die DebianPakete liefern kein zuverlässiges ComposePlugin. Wir binden das **offizielle DockerRepository** ein und installieren Docker + Compose einmal richtig.
```bash
apt update && apt upgrade -y
apt install -y ca-certificates curl gnupg lsb-release
```
👉 System aktualisieren, Grundpakete für HTTPSRepos und Schlüsselverwaltung.
```bash
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
```
👉 DockerGPGSchlüssel ablegen (benötigt für verifizierte Pakete).
```bash
ARCH=$(dpkg --print-architecture)
CODENAME=$(lsb_release -cs)
echo "deb [arch=${ARCH} signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian ${CODENAME} 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
```
👉 Repo einbinden, Paketquellen aktualisieren, **Docker + ComposePlugin** installieren.
```bash
systemctl enable --now docker
```
👉 Docker beim Start aktivieren und sofort starten.
```bash
mkdir -p /srv/wiki
cd /srv/wiki
```
👉 Projektordner anlegen und hineingehen hier liegt alles zum Wiki.
---
## 2⃣ Umgebungsdatei `.env` erstellen
**Warum:** Zugangsdaten und wiederverwendbare Einstellungen zentral halten.
```bash
nano .env
```
👉 Datei öffnen, folgenden Inhalt einfügen, **<STARKES-PASSWORT>** ersetzen, dann **STRG+O**, Enter, **STRG+X**:
```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
```
---
## 3⃣ `docker-compose.yaml` schreiben
**Warum:** Definiert die beiden Dienste (Datenbank + Wiki) samt Persistenz und Startreihenfolge.
```bash
nano docker-compose.yaml
```
👉 Inhalt einfügen → speichern (**STRG+O**) → schließen (**STRG+X**):
```yaml
version: "3.9"
services:
postgres:
image: postgres:15
container_name: wiki-postgres
restart: unless-stopped
env_file: .env
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
TZ: ${TZ}
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
```
👉 Persistenz: `./data/postgres` (DBDaten) und `./data/wikijs` (Uploads/Cache). Healthcheck sorgt für korrekte Startreihenfolge.
---
## 4⃣ Start & Status prüfen
```bash
docker compose up -d
```
👉 Beide Container im Hintergrund starten.
```bash
docker compose ps
```
👉 Status prüfen: beide `Up`; `wiki-postgres` wird nach kurzer Zeit `healthy`.
Logs bei Problemen:
```bash
docker logs -f wikijs
# in neuem Terminal/Fenster ggf. zusätzlich:
docker logs -f wiki-postgres
```
👉 LiveLogs helfen bei DBVerbindungsfehlern oder Startproblemen.
---
## 5⃣ ReverseProxy im Nginx Proxy Manager
**Warum:** Öffentlich per Domain & HTTPS erreichbar machen.
1. NPM öffnen → **Proxy Host hinzufügen**
2. **Domain**: `wiki.deinedomain.tld`
3. **Forward Host/IP**: `<LXC-IP>` · **Port**: `3000`
4. **Websockets aktivieren**
5. **SSL**: Neues Zertifikat (Lets Encrypt) → **Force SSL**, **HTTP/2**, **HSTS** aktivieren
6. Speichern
👉 Test: `https://wiki.deinedomain.tld` im Browser aufrufen.
---
## 6⃣ Erstkonfiguration in Wiki.js
1. AdminBenutzer anlegen (Benutzername, Passwort, EMail)
2. Sprache **Deutsch**, Zeitzone **Europe/Berlin** setzen
3. Registrierung: **Nur Einladung** oder **Admin Approval**
4. Erste **Startseite** anlegen (Projektübersicht)
👉 Danach ist das Wiki einsatzbereit.
---
## ⚠️ Fehlerbehebung (kurz & präzise)
- **502 via NPM** → Container laufen? Port 3000 korrekt? **Websockets** an?
- **Setup hängt/DBFehler** → Werte in `.env` prüfen; Logs oben ansehen
- **IPv6Probleme** → AAAARecord testweise entfernen
- **Uploads fehlen** → Schreibrechte in `./data/wikijs` prüfen
---
## ✅ Ergebnis
- Wiki.js läuft stabil in Docker (Debian 12 LXC)
- Zugriff: `https://wiki.deinedomain.tld` (HTTPS)
- Admin angelegt, Registrierung eingeschränkt
- Daten persistent gespeichert
➡️ Nächstes Kapitel: **Netdata (Monitoring)**