Kapitel 14/Tutorial.md aktualisiert
This commit is contained in:
@@ -1,207 +0,0 @@
|
||||
# 📝 Kapitel 16 – Wiki (Self-Hosted mit Wiki.js)
|
||||
|
||||
---
|
||||
|
||||
🎯 Ziel
|
||||
Wir setzen **Wiki.js** im Debian‑12‑LXC mit Docker stabil und wiederholbar auf.
|
||||
Am Ende: HTTPS‑Zugriff ü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, 1–2 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 Docker‑Repo)
|
||||
|
||||
**Warum:** Die Debian‑Pakete liefern kein zuverlässiges Compose‑Plugin. Wir binden das **offizielle Docker‑Repository** 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 HTTPS‑Repos 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
|
||||
```
|
||||
👉 Docker‑GPG‑Schlü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 + Compose‑Plugin** 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` (DB‑Daten) 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
|
||||
```
|
||||
👉 Live‑Logs helfen bei DB‑Verbindungsfehlern oder Startproblemen.
|
||||
|
||||
---
|
||||
|
||||
## 5️⃣ Reverse‑Proxy 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 (Let’s Encrypt) → **Force SSL**, **HTTP/2**, **HSTS** aktivieren
|
||||
6. Speichern
|
||||
|
||||
👉 Test: `https://wiki.deinedomain.tld` im Browser aufrufen.
|
||||
|
||||
---
|
||||
|
||||
## 6️⃣ Erstkonfiguration in Wiki.js
|
||||
|
||||
1. Admin‑Benutzer anlegen (Benutzername, Passwort, E‑Mail)
|
||||
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/DB‑Fehler** → Werte in `.env` prüfen; Logs oben ansehen
|
||||
- **IPv6‑Probleme** → AAAA‑Record 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)**
|
||||
Reference in New Issue
Block a user