Commit Graph
18 Commits
Author SHA1 Message Date
spektr 09c755330a GNAI-010: Host-Reboot-Hinweis korrigiert - ghostnet-ki ist Bare-Metal, kein Proxmox-LXC
Der KI-Server ist eine eigenständige Debian-Installation auf dedizierter
Hardware (GNAI-002); der Neustart-Test läuft direkt auf dem Host (Betreiber
mit sudo), nicht über pct. Erwartung nach Reboot: Linger aktiv, keine
Engine-Unit startet automatisch, Start des Profils bewusst über die Rolle.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-11-01 17:32:17 +01:00
spektr 2f03a7e624 GNAI-010 v0.10: Wiederanlauf-/Profilwechselabnahme; Ausschluss-Befund korrigiert (10.7)
10.4-Tests bestanden: Idempotenz (changed=0), kontrollierter Neustart
erhaelt Profil/Modell, bewusster Stopp bleibt Stopp, Profilwechsel in beide
Richtungen ueber die Rolle fehlerfrei ohne erneuten Download.

Befundkorrektur 5.3: direkter systemctl start der zweiten Unit fuehrt KEINEN
geordneten Wechsel aus - beide Modelle laden in der UEbergangsphase parallel
(beobachtet 01.11.2026). Conflicts= sichert nur den Endzustand; Before= aus
den Quadlets entfernt. Der geordnete Stop-vor-Start-Wechsel ist
ausschliesslich die Rollen-Umschaltoperation. Host-Reboot-Test an den
Betreiber uebertragen.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-11-01 17:32:17 +01:00
spektr 1e1a6788a0 GNAI-010 v0.9: 128k-Abnahme Swift bestanden (Abschnitt 10.6)
Technische Abnahme nach 10.3 am 01.11.2026 in Testing gefahren und bestanden:
n_ctx_slot=131072, kein OOM (14,4/14,8 GiB von je 16 GiB), Prefill-Leiter
7,6k/29k/59,5k/121,9k Tokens mit 624/591/503/396 t/s, langer Request mit
finish=stop, sauberer Kontext-Negativtest (138k Tokens -> HTTP 400) und
62 Minuten gemischte Stabilitätslast ohne Neustart (NRestarts=0).

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-11-01 17:32:17 +01:00
spektrandMistral Vibe 3306b3de4b GNAI-010: Änderungsverlaufseintrag zu v0.8 ergänzt
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-11-01 17:32:17 +01:00
spektr 3548615b2a GNAI-010 v0.8: 64k-Grundabnahme Swift bestanden (Abschnitt 10.5)
Technische Abnahme nach 10.1/10.2 am 31.10.2026 in Testing gefahren und
bestanden: SHA-256 und System-Fingerprint des gepinnten Builds, kein
PublishPort, Unit stabil, n_ctx_slot=65536, GPU-Offload über beide Karten
(12,7/13,1 GiB von je 16 GiB, kein CPU-Offload), Health 200 OK, korrekter
Alias, Thinking-Request mit getrenntem Reasoning und finaler Antwort,
syntaktisch gültiger Tool-Call (get_weather/Berlin). Offen: 128k-Abnahme
(10.3), Wiederanlauf-/Profilwechseltests (10.4), Unsloth-Wiederholung.
Hinweis dokumentiert: load_tensors-Verteilzeilen bei Verbose 3 nicht
gedruckt.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-11-01 17:32:17 +01:00
spektr 060901d104 LLM-Server: Container-Protokollierung geklärt und in GNAI-010 dokumentiert (v0.7)
conmon schreibt mit dem Journald-Treiber ins System-Journal (Syslog-Identifier
= Container-Name, _COMM=conmon); lesbar als root, podman logs bleibt für das
Workload-Konto leer (Journal-Dateirechte, bewusst keine systemd-journal-
Gruppe). Lesewege in GNAI-010 Abschnitt 8.1; 64k-Bring-up-Startlogs sind
protokollfähig (n_slots=1, n_ctx_slot=65536, Listening, MTP-Tensoren nicht
geladen). Zusätzlich dokumentiert: LLAMA_ARG_HOST-Default des Images und die
bewusst akzeptierte API-Key-Lücke des internen Testing-Netzes.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-11-01 17:32:17 +01:00
spektr 026c840029 LLM-Server: M2-Vertical-Slice in Betrieb - Swift-Stack läuft, Inferenz nachgewiesen
Erster produktiver Start des llama.cpp-Testing-Stacks auf ghostnet-ki
(31.10.2026). Fix-Liste aus den Live-Läufen:
- Quadlet-Exec ohne Binärnamen (AMD-Image hat ENTRYPOINT /app/llama-server;
  GNAI-010 v0.6 dokumentiert den Befund)
- Deterministischer daemon-reload vor Unit-Zugriff (Handler allein griff nicht,
  wenn ein vorheriger Lauf die Quadlets gerendert hatte)
- Netz-Abhängigkeit Wants/After im Container-Quadlet (Netzwerk-Unit wurde
  nie mitgestartet -> network not found)
- Stopp-Bedingung für Profilwechsel korrigiert (nur aktive Units stoppen)
- Health-Tool-Kette curl/wget/bash-/dev/tcp mit Pfad-Normalisierung; curl -f
  als Gesundheitssignal (Statuszeile stand nie im stdout)
- chdir für alle runuser-Aufrufe der Health-Checks

Nachweise: Health 200 OK, /v1/models Alias korrekt, Idempotenz changed=0,
VRAM 12,6/13,0 GiB von je 16 GiB auf beiden Karten (Layer-Split 1:1),
echte Chat-Completion mit System-Fingerprint des gepinnten Builds,
Reasoning getrennt von der Antwort.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-11-01 17:32:17 +01:00
spektr 89787b0e23 LLM-Server: IPv6 deaktiviert (host_baseline) + Swift-Repin und wget-4-Download nach Live-Befunden
Betreiberentscheidung 31.10.2026 (GNAI-002 Abschnitt 6): Der KI-Host wird
kohärent IPv4-only betrieben. host_baseline verwaltet
/etc/sysctl.d/99-ghostnet-disable-ipv6.conf (all+default), wendet es bei
Änderung an und verifiziert den Laufzeitwert. Anlass: hängender get_url-
Download durch AAAA-Antworten ohne nutzbare IPv6-Route (Messungen im
Dokument; Pi-hole filtert AAAA nicht, der Host nutzt Pi-hole nicht).

model_store nach Live-Befunden: Swift-Repin auf Repository-Revision
98a6100 (alte Revision entfernt, Datei laut Herausgeber-SHA256SUMS
unverändert; GNAI-010 v0.5) und Download über wget -4 mit expliziter
SHA-256-Verifikation vor dem atomaren Move.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-11-01 17:32:17 +01:00
spektr f4aef4413b GNAI-008 v0.18: Deployment-Plan überarbeitet (drei Umgebungen, Model-Store, CI/CD-Scope)
Betreiberentscheidungen 31.10.2026: Umgebungen Production, Testing und
Experimental mit exklusivem GPU-Scheduling; Umschaltoperation
ai_environment_switch für kurze Downtimes mit kommunizierten Zeitfenstern;
Wartungsseite oder transparenter Endpunktwechsel für nutzerseitige Dienste;
model_store als Kernrolle für gepinnte Weights in /var/lib/ghostnet-ai/shared;
verallgemeinerte inference_engine-Rolle; Gitea-Actions-Kette mit Runner-Scope
Experimental/Testing und Production ausschließlich über Promotion-Tag;
Strata als erster Experimental-Kandidat (Abschnitt 7.6) mit gfx1030-Vorbehalten.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-11-01 17:31:45 +01:00
spektr 69930f815a Encoding: Pipeline-Konten, NFS-Mount, Layout und Handover-Simulation umgesetzt und verifiziert.
- workload_accounts: gn-media (GID 970), gn-download (983), gn-dashboard (984);
  gn-media als primäre Gruppe der Pipeline-Konten — AUTH_SYS ueber NFSv4 wirkte
  serverseitig nicht mit Supplementary-Gruppen (Betriebsbefund 30.10.2026);
  Sudoers des Deploy-Kontos auf (ALL:ALL) verbreitert (become_user)
- video_encoding: NFS-Client, Mount-Unit und Pipeline-Layout auf dem Export
  (10.0.0.2:/media/datenhdd3/Encoding -> /var/lib/ghostnet-pipeline, ausserhalb
  der Homes); Layout-Anlage als Dienstkonten wegen root_squash; Verifikation
  der Verzeichnisrechte als gn-encoding (2777/2770/0750/2750, Gruppe 970)
- pve_media_cron: Legacy-Crontab (chown root:root + chmod -R 0777 auf allen
  Medienplatten, alle 10 min) entfernt — haette jedes echte Berechtigungsmodell
  plattgewalzt; Backup unter /var/backups/ghostnet/pve/; verify-production
  prueft das Fehlen ab
- verify-pipeline-handover.yml: Handover-Simulation über alle Identitaeten
  (CT-101-.dlc-Drop -> gn-download -> queue -> gn-encoding -> output/state ->
  gn-dashboard); einmal vollstaendig bestanden (30.10.2026)
- Doku: GNENC-000/001/002, GNAI-017 (6.10/6.11), GNMON-001 auf Stand gebracht

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-10-30 20:47:42 +01:00
spektr 88b063a234 Encoding/CT-101: PVE-Host-NFS konvergiert, Berechtigungsmodell entschieden, Verifikation dokumentiert.
- pve_nfs_export: NFSv4-only via /etc/nfs.conf ([nfsd] vers2/vers3=n; Debian-13-Unit
  startet nfsd ohne EnvironmentFile, RPCNFSDARGS wirkungslos), Restart-Handler,
  selbstheilende nfsd-Versionspruefung; verify-production um Export-Root- und
  Versions-Assertions erweitert
- Autorisierte Konvergenz auf dem PVE-Host: Export-Root 100000:970 2775,
  /proc/fs/nfsd/versions -3 +4 +4.1 +4.2, verify ok=17 changed=0, Idempotenz changed=0
- Berechtigungsmodell (Betreiberentscheidung 30.10.2026): Mode 2777 auf input/- und
  output/-Baum der Pipeline (LXC-idmap-Diskrepanz guest-root vs. UID 982/983:970)
- GNENC-000/001/002, GNAI-017/018/019 auf NFS-auf-PVE-Host-Stand gebracht;
  CT-101-Verifikation ok=47 changed=0 dokumentiert; AGENTS.md-Seccomp-Hinweis korrigiert

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-10-30 19:54:42 +01:00
spektrandMistral Vibe 61f2158508 LLM-Server: Encoding-Pipeline (GNENC-002) und Monitoring-Dokumentation (GNMON) aufgenommen; Bereichsindizes aktualisiert
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-10-26 19:20:36 +01:00
spektr 26fb86781f Encoding: Profile, Queue-, Aufbewahrungs- und Dashboard-Entscheidungen dokumentiert.
Drei HandBrake-Presets (SVT-AV1 10-bit, MKV, Audio-Passthrough) versioniert
unter llm-server/encoding/profiles/; Profilwahl ueber gleichnamige Ordner
unter input/. Gemeinsamer NFS-Mount mit input/- und output/-Unterverzeichnissen.
Input-Loeschung nach Encoding und Validierung, Output bis Abholung, work/ pro
Lauf. Dashboard-Endpunkte fuer Fortschritt und Ressourcen als Statusanzeige.
Eigene Programme liegen kuenftig unter llm-server/encoding/scripts/.
GNENC-000/001 aktualisiert.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-10-19 15:22:31 +02:00
spektr aa5b37a191 Encoding: Betreiberentscheidungen zu Encoder, Zeitfenster, Abbruch und Ein-/Ausgabe dokumentiert; HandBrake-Image gepinnt.
HandBrake linuxserver/handbrake:1.11.2-ls48 mit amd64-Manifest-Digest
sha256:fda92bd1...48a3c7 gepinnt und per Pull im rootless Store von
gn-encoding verifiziert. Zeitfenster 00:00-06:00 Uhr Europe/Berlin mit
geordnetem Stopp und naechtlichem Retry; NFS-Mounts fuer Ein- und Ausgabe.
GNENC-000/001 aktualisiert.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-10-19 15:06:57 +02:00
spektr ba7d829410 Encoding: Ansible-Projekt und Grundzustand für gn-encoding eingerichtet und verifiziert.
llm-server/encoding/ansible/ verwaltet mit video-encoding.yml und der Rolle
video_encoding den CPU-Only-Grundzustand des gesperrten Kontos gn-encoding
(UID/GID 982): Konto-Identität und Passwortsperre, subordinate ID-Bereiche,
Verzeichnisstruktur, Quadlet-Verzeichnis, Linger, getrennter rootless
Podman-Store sowie verwehrter GPU-Zugriff (keine render/video-Gruppe, kein
Lesezugriff auf /dev/kfd oder DRM-Render-Nodes). Ohne beschlossene
Encoder-Entscheidungen stellt die Rolle sicher, dass kein Workload definiert
ist. Check-Mode und zwei Läufe auf ghostnet-ki: jeweils ok=30 changed=0
failed=0. Preflight, host.yml (2x ok=55 changed=0) und ROCm-Probe
(ok=33 changed=0) nach der Projekt-Aufteilung erneut bestanden.
GNENC-000/001, GNAI-000 und GNAI-013 aktualisiert.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-10-19 14:42:14 +02:00
spektr 92c846f527 LLM-Server: ausführbares Projekt in die Hauptverzeichnisse host/, llm/ und encoding/ aufgeteilt.
Grundkonfiguration des Servers liegt nun unter llm-server/host/ansible/
(vorher llm-server/ansible/), der LLM-Stack-Platzhalter unter llm-server/llm/
und der Encoding-Workload unter llm-server/encoding/. Dokumentation und
Pfadverweise (ansible.cfg roles_path, .venv-Tiefe, Markdown-Links) angepasst;
Linkvalidator meldet broken_local_links=0.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-10-19 14:42:14 +02:00
spektr 00ed091890 CT-102 Keycloak: Migration nach Podman und Ansible abgeschlossen und gehärtet. 2026-10-14 15:01:14 +02:00
spektr b40f726d22 Add: DNS über Pi-Hole LXC. Härtung von CT-105 Wireguard. 2026-10-05 17:45:38 +02:00