firstboot.sh v0.0.10
cci v0.0.10
MIT
GitHub
PyPI
100% Read-Only: cci verändert NIEMALS den Box-Zustand.
Strukturelle Garantie via subprocess-Whitelist (ReadOnlyViolationError
bei nicht-whitelisted Aufruf).
In jeder frischen Debian/Ubuntu-LXC-Box als root:
# Pre-Step (minimal-LXC-Templates haben kein curl vorinstalliert):
apt update && apt install -y curl ca-certificates
# firstboot.sh ausführen (installiert pipx + xed-cci):
bash <(curl -s https://cci.xed.dev/firstboot.sh)
# Box-Klassen-Inventur ausführen (aktuell: typo3):
cci typo3 # Rich-Tabellen für Mensch
cci typo3 --format json # JSON für AI-Agent
Manuell (wenn pipx schon vorhanden):
pipx install xed-cci
| Verb | Box-Klasse |
|---|---|
cci typo3 | WordOps-LEMP-Ubuntu-LTS + TYPO3-Composer + ADD-ONs (z.B. Apache Solr) |
Perspektivisch weitere Box-Klassen (cci wordpress, ...) als eigene Top-Level-Verben.
cci typo3 liefert| Sektion | Quelle | Inhalt |
|---|---|---|
os | /etc/os-release + os.uname() | id, version_id, pretty_name, kernel |
cc-suite | pipx list --json | xed-ccc / xed-cca / xed-cci-Versionen |
stack | sys.version_info + shutil.which | python3 (immer) + php / node (Optional) |
databases | dpkg-query + systemctl is-active | mysql / mariadb / postgresql + Service-Status |
sites | Path.iterdir + is_file unter /var/www/ | TYPO3-Sites pro Domain mit Versionen + Modus (Composer/Classic) |
cci typo3 # Komplette Inventur (Rich-Tabelle)
cci typo3 --format json # JSON für AI-Agent-Konsumtion
cci typo3 --format oneliner # 1-Zeile pipe-separated (Chat-Sharing)
cci typo3 --format text -o inv.txt # Plain multi-line in Datei
cci typo3 --section os # Nur OS-Sektion
cci typo3 --section cc-suite # Nur CC-Suite-Versionen
cci typo3 --section stack # Nur Programmier-Stacks
cci typo3 --section databases # Nur Datenbank-Engines
cci typo3 --section sites # Nur TYPO3-Sites
cci --help # Box-Klassen-Übersicht
cci --version # Tool-Version
cci typo3 --format json > /tmp/box.json
# Dann an AI-Agent (Claude Code, ChatGPT, etc.):
# "Hier ist meine Box-Inventur. Passt diese Konfiguration für Typo3 v13?
# Welche Anpassungen sind nötig?"
Der AI-Agent sieht in einem strukturierten JSON-Block alle relevanten Box-Daten und kann fundierte Migrations-/Update-Empfehlungen geben — ohne dass DevOps die Daten manuell zusammensuchen muss.
cci inventory → cci typo3 (hartgesetzt, kein Deprecation-Alias)--section apps → --section sites"apps" → "sites". AI-Agent-Konsumenten und Skripte mit report["apps"] müssen auf report["sites"] umgestellt werden.| Phase | Inhalt | Status |
|---|---|---|
| 1 | Python-CLI Read-Only mit Box-Klassen-Subkommandos (cci typo3, künftig cci wordpress) | v0.0.10 live |
| 2 | DeltaChat-Bot-Daemon (dezentrale Box-Steuerung ohne Ports/TLS) | Vision (geplant) |
| 3 | cBOX@ /Monitor (Master-Programm für 1000+ Boxen) | Vision (geplant) |
Volle Architektur-Entscheidungsfindung + Vision/Mission siehe README und das Whitepaper im fb-data-Workspace-Repo.
platform.freedesktop_os_release, os.uname, sys.version_info, pathlib.Path wo möglich