4 Commits

Author SHA1 Message Date
9663fcb753 Standzeile in allen drei Skripten: zeigt im Protokoll, welche Fassung lief
Zwei apt-Fehler ohne eine einzige Zeile aus dem Skript liessen offen, ob
ueberhaupt die Repo-Fassung gelaufen ist. Die Standzeile beantwortet das
kuenftig in der ersten Ausgabezeile.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-24 09:44:00 +02:00
4b5440968b Zustandspruefung wandert in den Task: Skripte ohne ZUSTAND-Argument
Der Task entscheidet per If/Then auf espo_zustand, ob er laufen darf; die
Skripte brauchen den Wert dann nicht mehr. ESPO-01 nimmt nur noch den
Kundennamen, ESPO-02 kein Argument, ESPO-03 fqdn und ring.

In ESPO-03 bleibt die Pruefung auf eine vorhandene Instanz - sie beruht auf
Tatsachen auf der VM, nicht auf einem Feldwert, und verhindert eine Migration
ohne geprueftes Backup.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-23 17:43:48 +02:00
dcd99c3ba9 Zustandsriegel: die drei Einrichtungsskripte laufen nur bei espo_zustand = NEU
Statt lokaler Merkmale steuert das Custom Field espo_zustand zentral, was laufen
darf. Jedes der drei Skripte nimmt den Wert als Argument und bricht ohne
Aenderung ab, wenn er nicht NEU ist.

In ESPO-03 bleibt die Pruefung auf eine vorhandene Instanz als Rueckfall
erhalten: Der Zustand im RMM ist von Hand aenderbar, eine laufende Instanz ist
es nicht.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-23 15:10:15 +02:00
25b2603856 ESPO-03-First-Deploy: Erstinbetriebnahme von EspoCRM
Richtet EspoCRM auf einer vorbereiteten VM zum ersten Mal ein: Verzeichnisse,
Geheimnisse auf der VM erzeugt, config-override.php bereitgelegt, Compose aus
dem Stand des Rings gerendert, up -d, Warten auf app-check, Abschlusspruefung.

Bricht ab, sobald eine Instanz vorhanden ist (Container, Compose-Datei oder
data/config.php). Damit kann dieses Skript keine Migration ohne geprueftes
Backup ausloesen - Aktualisierungen bekommen einen eigenen Weg.

Die Abschlusspruefung misst zugleich die in ADR 0008 offenen Punkte:
Zeichensatz des Servers und Laenge der Record-IDs (36 = UUIDv4 aktiv, sonst
Abbruch). Die Datenbankabfragen laufen im Container und lesen das Passwort dort
aus der Secret-Datei.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-23 14:47:27 +02:00