Kapitel 16/Tutorial.md hinzugefügt
This commit is contained in:
197
Kapitel 16/Tutorial.md
Normal file
197
Kapitel 16/Tutorial.md
Normal 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, 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=<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)**
|
||||||
Reference in New Issue
Block a user