Zum Inhalt

Wiki

Das Wiki ist die zentrale Ablage für „wie wir Dinge tun", Runbooks, Service-Dokumentation, Notiz-Sammlungen.

Konzept

  • Kategorien (Wurzel-Ebene) gruppieren Artikel
  • Artikel in Markdown mit FTS-Index + Vector-Embeddings
  • Service-Linking — ein Artikel kann an konkrete Profile-Checks oder einzelne Hosts hängen
  • AI-RAG-Quelle — der AI-Chat zieht erste Hand aus dem Wiki

Artikel anlegen

/wikiNeuer Artikel oder über Quick-Lookup auf der Service-Detail-Seite (siehe unten).

Feld Bedeutung
Titel Pflicht
Kategorie aus Liste oder neu anlegen
Tags optional
Inhalt Markdown, mit Toolbar und Live-Preview
Service-Verknüpfungen n:m mit Profile-Checks
Host-spezifisch? optional an einen oder mehrere Hosts binden

Editor-Toolbar: H1/H2/H3, Bold, Italic, Code, Link, Listen, Tabelle, Code-Block. Markdown-Modus oder WYSIWYG (Toggle).

Service-Linking

Ein Artikel kann an Profile-Checks gebunden werden. Wirkung:

  • Auf der Host-Detail-Seite erscheint im Service-Detail ein „Wiki"-Tab mit den verknüpften Artikeln
  • AI-Service-Analyse priorisiert verknüpfte Artikel im RAG-Kontext

Beispiel: Ein Artikel „Disk-Voll-Lauf-Run-Book" kann an alle agent_disk-Profile-Checks gebunden werden — sobald ein Disk-Voll-Alert kommt, ist das Run-Book direkt erreichbar.

Host-spezifische Bindung über das wiki_article_services-Junction mit host_id Feld:

Artikel "Spezial-Behandlung db01" → an db01-spezifische Services gebunden

Sinnvoll für „Diese Maschine hat eine Eigenheit, die nicht für alle Hosts gilt".

Suche

/wiki hat eine Such-Leiste mit drei kombinierten Methoden:

  1. Volltext-Suche (deutscher FTS-Index)
  2. ILIKE-Fallback für partielle Strings (z. B. „backup" findet auch „backup-script")
  3. Vector-Suche (pgvector + Embeddings) für semantisch ähnliche Inhalte

Treffer-Liste mit Highlight, Kategorie-Badge, Tags.

Embeddings

Beim Speichern eines Artikels wird im Hintergrund ein Embedding berechnet:

  • Modell: nomic-embed-text (Default, via Ollama) oder konfigurierbar
  • Dimension: 4096 (pgvector mit vector(4096))
  • Speicherung: wiki_articles.embedding

Embedding-Updates laufen asynchron (asyncio.create_task), damit das Speichern nicht blockt. Bei sehr großen Wikis kann der Sync nach Bulk-Imports etwas dauern — Status sichtbar in /admin/embeddings.

asyncpg-Cast für Vector

Bei eigenen SQL-Queries mit pgvector: CAST(:emb AS vector) statt ::vector benutzen — asyncpg interpretiert :: als Bind-Parameter und macht Cast unmöglich.

Quick-Lookup auf Service-Detail

Auf der Service-Zeile eines Hosts → Wiki-Lookup:

  1. AI fragt: „welche Artikel könnten relevant sein"
  2. Beste 3–5 Treffer als Slide-In-Panel
  3. Klick öffnet den Artikel im Modal

Schnellster Weg zu einem Run-Book mitten im Incident.

Soft-Delete

Artikel werden soft-deleted (siehe Papierkorb) — gelöscht heißt erstmal versteckt, nach 30 Tagen physisch weg.

Wiki-Artikel mit Service-Verknüpfungen verlieren beim Soft-Delete die Verknüpfung nicht — beim Restore ist alles wieder da.

URL Wirkung
/wiki Übersicht
/wiki?article=<id> Artikel direkt öffnen
/wiki?new=1 Neuer Artikel mit leerem Modal
/wiki?category=<id> nur Kategorie filtern

Sinnvoll für Bookmarks und Cross-Links aus Mails / Slack.

Permissions

Permission Wirkung
wiki.view Artikel sehen
wiki.edit Bearbeiten
wiki.create Neue anlegen
wiki.delete Soft-Delete
wiki.purge endgültig aus Papierkorb löschen

Anschluss