Files
Homelab--Bratonein-Kontroll…/Kapitel 16/Tutorial.md

197 lines
4.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📝 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)**