Server und Gitea bei ITM, Backups als offener Punkt

- ITM stellt Staging- und Produktionsserver sowie den Gitea für den
  Push-Mirror (Adresse folgt)
- Backups: Speicherort, Aufbewahrungsdauer und Zuständigkeit noch offen

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Christoph
2026-10-01 12:23:39 +02:00
co-authored by Claude Opus 5.5
parent 30d80174ac
commit 558e698e3b
3 changed files with 18 additions and 15 deletions
+1 -1
View File
@@ -48,4 +48,4 @@ Die Ports 80 und 3306 sind auf dem Entwicklungsrechner belegt, daher `APP_PORT`
- Keine Selbstregistrierung: Benutzer legt ein Administrator an. - Keine Selbstregistrierung: Benutzer legt ein Administrator an.
- 2FA (Authenticator-App) und Passkeys sind verfügbar, 2FA ist noch nicht verpflichtend. - 2FA (Authenticator-App) und Passkeys sind verfügbar, 2FA ist noch nicht verpflichtend.
- Meilisearch: Version fest eingestellt, Telemetrie aus (`MEILISEARCH_NO_ANALYTICS=true`). - Meilisearch: Version fest eingestellt, Telemetrie aus (`MEILISEARCH_NO_ANALYTICS=true`).
- Git: führend ist der lokale Gitea; der Gitea des Kunden folgt als Push-Mirror. - Git: führend ist der lokale Gitea; der Gitea von ITM folgt als Push-Mirror.
+7 -5
View File
@@ -5,7 +5,8 @@ Stand: 1. Oktober 2026 (KW 40). Wird nach dem Kundentermin (KW 42) zum Detailpla
## Beteiligte ## Beteiligte
- **ITM:** Anbieter der KI-API (OCR, Embeddings, Reranker, ggf. Sprachmodell), Projektleitung und - **ITM:** Anbieter der KI-API (OCR, Embeddings, Reranker, ggf. Sprachmodell), Projektleitung und
abrechnende Firma. abrechnende Firma. Stellt auch die Server (Staging, Produktion) und den Gitea, auf den das
Repository gespiegelt wird.
- **BauIn:** Endkunde. Liefert Fachdaten (LVs, MKAs, Bewertungsmatrizen), stellt den Fachexperten - **BauIn:** Endkunde. Liefert Fachdaten (LVs, MKAs, Bewertungsmatrizen), stellt den Fachexperten
und nutzt das System. und nutzt das System.
- „Kunde“ meint in diesem Dokument BauIn; wo ITM gemeint ist, steht ITM. - „Kunde“ meint in diesem Dokument BauIn; wo ITM gemeint ist, steht ITM.
@@ -30,7 +31,7 @@ Stand: 1. Oktober 2026 (KW 40). Wird nach dem Kundentermin (KW 42) zum Detailpla
| | Termin | Ergebnis | Termin mit dem Kunden | | | Termin | Ergebnis | Termin mit dem Kunden |
|---|---|---|---| |---|---|---|---|
| **M1** | Ende KW 43 (23.10.) | Grundgerüst: Login/2FA, Benutzer und Rollen, Projekte und Lose, Upload, Protokoll; Detailplan steht | Demo (30 min) | | **M1** | Ende KW 43 (23.10.) | Grundgerüst: Login/2FA, Benutzer und Rollen, Projekte und Lose, Upload, Protokoll; Detailplan steht | Demo (30 min) |
| **M2** | Ende KW 47 (20.11.) | Pilot-LVs importiert und durchsuchbar, erste ~5 Dokumente gemeinsam mit „passt / passt nicht“ bewertet; Staging beim Kunden läuft | Prüftermin (60 min) | | **M2** | Ende KW 47 (20.11.) | Pilot-LVs importiert und durchsuchbar, erste ~5 Dokumente gemeinsam mit „passt / passt nicht“ bewertet; Staging bei ITM läuft | Prüftermin (60 min) |
| **M3** | Ende KW 51 (18.12.) | Erste MKA durchgängig: Vorschläge, Feedback, Regeln, Excel-Export | Präsentation (60–90 min) | | **M3** | Ende KW 51 (18.12.) | Erste MKA durchgängig: Vorschläge, Feedback, Regeln, Excel-Export | Präsentation (60–90 min) |
| **M4** | Ende KW 4/2027 (29.01.) | Alle Pilot-MKAs durchlaufen, Trefferquote und Zeitersparnis gemessen; Produktion abgesichert | Abschlusspräsentation, Entscheidung über Ausbau | | **M4** | Ende KW 4/2027 (29.01.) | Alle Pilot-MKAs durchlaufen, Trefferquote und Zeitersparnis gemessen; Produktion abgesichert | Abschlusspräsentation, Entscheidung über Ausbau |
| Puffer | KW 5–6/2027 | für Verzögerungen bei Zulieferungen oder GAEB-Import | – | | Puffer | KW 5–6/2027 | für Verzögerungen bei Zulieferungen oder GAEB-Import | – |
@@ -93,10 +94,11 @@ M4 Ende KW 13/2027 (Anfang April).
| KW 42 | BauIn | Beispieldateien (GAEB, MKA als PDF + GAEB, Matrix-Vorlage), Kopie der relevanten Lauffenburg-Dateien | AP5, AP9 | | KW 42 | BauIn | Beispieldateien (GAEB, MKA als PDF + GAEB, Matrix-Vorlage), Kopie der relevanten Lauffenburg-Dateien | AP5, AP9 |
| KW 43 | ITM | Testzugang zur KI-API (OCR, Embedding, Reranker; Sprachmodell falls vorhanden) | AP3 | | KW 43 | ITM | Testzugang zur KI-API (OCR, Embedding, Reranker; Sprachmodell falls vorhanden) | AP3 |
| KW 43 | BauIn | Entscheidung Rollenmodell, Freigabe-Variante, 2FA-Pflicht | AP1, AP8 | | KW 43 | BauIn | Entscheidung Rollenmodell, Freigabe-Variante, 2FA-Pflicht | AP1, AP8 |
| KW 46 | klären | Staging-VM mit Zugang, Domain und Zertifikat | AP11, M2 | | KW 46 | ITM | Staging-Server mit Zugang, Domain und Zertifikat | AP11, M2 |
| KW 47 | BauIn | 10–20 abgeschlossene MKAs mit Bewertung (Referenzfälle) | AP2 Teil 2, AP12 | | KW 47 | BauIn | 10–20 abgeschlossene MKAs mit Bewertung (Referenzfälle) | AP2 Teil 2, AP12 |
| KW 48 | BauIn | Kuratierte Wissensbasis (VOB, DB-Richtlinien, Standardleistungstexte, Vorlagen) | AP4, AP7 | | KW 48 | BauIn | Kuratierte Wissensbasis (VOB, DB-Richtlinien, Standardleistungstexte, Vorlagen) | AP4, AP7 |
| KW 51 | klären | Produktions-VM, Backup-Ziel und Aufbewahrungsdauer | AP11 | | KW 51 | ITM | Produktions-Server mit Zugang, Domain und Zertifikat | AP11 |
| KW 51 | offen | Backups: Speicherort, Aufbewahrungsdauer, Zuständigkeit | AP11 |
## Risiken ## Risiken
@@ -136,7 +138,7 @@ M4 Ende KW 13/2027 (Anfang April).
**Später im Plan (bereits vorgemerkt)** **Später im Plan (bereits vorgemerkt)**
- [ ] **Meilisearch-Test Teil 2** (KW 46–47): Trefferquote mit echten API-Vektoren und Referenzfällen, - [ ] **Meilisearch-Test Teil 2** (KW 46–47): Trefferquote mit echten API-Vektoren und Referenzfällen,
ohne/mit binärer Quantisierung, vor und nach dem Reranker ohne/mit binärer Quantisierung, vor und nach dem Reranker
- [ ] Push-Mirror zum Gitea des Kunden einrichten, sobald die Adresse vorliegt - [ ] Push-Mirror zum Gitea von ITM einrichten, sobald die Adresse vorliegt
- [ ] 2FA-Pflicht umsetzen, falls der Kunde das entscheidet - [ ] 2FA-Pflicht umsetzen, falls der Kunde das entscheidet
## Später (nicht im MVP) ## Später (nicht im MVP)
+10 -9
View File
@@ -7,7 +7,8 @@ und benennt, wo KI-BauIN bewusst abweicht und warum.
## Beteiligte ## Beteiligte
- **ITM:** Anbieter der KI-API (OCR, Embeddings, Reranker, ggf. Sprachmodell), Projektleitung und - **ITM:** Anbieter der KI-API (OCR, Embeddings, Reranker, ggf. Sprachmodell), Projektleitung und
abrechnende Firma. abrechnende Firma. Stellt auch die Server (Staging, Produktion) und den Gitea, auf den das
Repository gespiegelt wird.
- **BauIn:** Endkunde. Liefert Fachdaten (LVs, MKAs, Bewertungsmatrizen), stellt den Fachexperten - **BauIn:** Endkunde. Liefert Fachdaten (LVs, MKAs, Bewertungsmatrizen), stellt den Fachexperten
und nutzt das System. und nutzt das System.
- „Kunde“ meint in diesem Dokument BauIn; wo ITM gemeint ist, steht ITM. - „Kunde“ meint in diesem Dokument BauIn; wo ITM gemeint ist, steht ITM.
@@ -76,7 +77,7 @@ Suchtreffern und bevor Inhalte an ein Sprachmodell gehen.
| Tests | Pest 4 auf PHPUnit 12; Tests im PHPUnit-Klassenstil | gleich (Runner ergänzt) | | Tests | Pest 4 auf PHPUnit 12; Tests im PHPUnit-Klassenstil | gleich (Runner ergänzt) |
| Code-Stil | Laravel Pint | gleich | | Code-Stil | Laravel Pint | gleich |
| Statische Analyse | PHPStan/Larastan Stufe 7 | ergänzt | | Statische Analyse | PHPStan/Larastan Stufe 7 | ergänzt |
| Versionsverwaltung | Git, Gitea (lokal führend, Kunde als Push-Mirror) | gleich | | Versionsverwaltung | Git, Gitea (lokal führend, Gitea von ITM als Push-Mirror) | gleich |
## 5. Betrieb (Produktion, geplant) ## 5. Betrieb (Produktion, geplant)
@@ -90,11 +91,11 @@ Ergänzt bzw. anders als in der Referenz:
- **Externe Alarmierung von Anfang an** (z. B. Mail), wenn Worker oder Scheduler ausfallen, - **Externe Alarmierung von Anfang an** (z. B. Mail), wenn Worker oder Scheduler ausfallen,
Jobs fehlschlagen oder die KI-API ITM nicht erreichbar ist. Jobs fehlschlagen oder die KI-API ITM nicht erreichbar ist.
- **Backups verschlüsselt**, bevor sie den Server verlassen (z. B. restic). Speicherort und - **Backups verschlüsselt**, bevor sie den Server verlassen (z. B. restic). Speicherort,
Aufbewahrungsdauer legt der Kunde fest. Gesichert werden Datenbank, private Uploads und Aufbewahrungsdauer und Zuständigkeit sind noch offen. Gesichert werden Datenbank, private Uploads und
Konfiguration; der Meilisearch-Index nicht, er wird aus MySQL neu aufgebaut. Konfiguration; der Meilisearch-Index nicht, er wird aus MySQL neu aufgebaut.
- **Wiederanlauf auf einem Ersatzserver** einmal vollständig testen; Datenverlust und - **Wiederanlauf auf einem Ersatzserver** einmal vollständig testen; Datenverlust und
Wiederanlaufzeit mit dem Kunden festlegen. Wiederanlaufzeit mit BauIn und ITM festlegen.
## 6. Bewusste Abweichungen von der Referenz ## 6. Bewusste Abweichungen von der Referenz
@@ -103,14 +104,14 @@ Ergänzt bzw. anders als in der Referenz:
| Livewire | 3 | 4 | Neues Projekt; das Starter-Kit von Laravel 13 baut auf Livewire 4 auf, ein späterer Umstieg entfällt. | | Livewire | 3 | 4 | Neues Projekt; das Starter-Kit von Laravel 13 baut auf Livewire 4 auf, ein späterer Umstieg entfällt. |
| TallStackUI | 3 | 4 | TallStackUI 3 läuft nur mit Livewire 3; Version 4 setzt Livewire ≥ 4.3 voraus. | | TallStackUI | 3 | 4 | TallStackUI 3 läuft nur mit Livewire 3; Version 4 setzt Livewire ≥ 4.3 voraus. |
| PHP | 8.4 | 8.5 | Sicherheitsupdates bis Ende 2029 statt Ende 2028. | | PHP | 8.4 | 8.5 | Sicherheitsupdates bis Ende 2029 statt Ende 2028. |
| Backups | unverschlüsselt, Hetzner Object Storage | verschlüsselt, Ort nach Vorgabe des Kunden | Vertrauliche Vertragsunterlagen; Vorgabe „alles lokal“. | | Backups | unverschlüsselt, Hetzner Object Storage | verschlüsselt, Ort noch offen | Vertrauliche Vertragsunterlagen; Vorgabe „alles lokal“. |
| Suche | – | Meilisearch | Hybride Suche und Vektorsuche für die Nachtragsprüfung. | | Suche | – | Meilisearch | Hybride Suche und Vektorsuche für die Nachtragsprüfung. |
## 7. Offene Punkte ## 7. Offene Punkte
- Ist 2FA für alle Benutzer Pflicht? - Ist 2FA für alle Benutzer Pflicht?
- Verlangt die IT des Kunden eine Festplattenverschlüsselung auf der VM? - Verlangen BauIn oder ITM eine Festplattenverschlüsselung auf den Servern bei ITM?
- Speicherort und Aufbewahrungsdauer der Backups. - Backups: Speicherort, Aufbewahrungsdauer und wer dafür zuständig ist.
- Weitere Sprachen über Deutsch und Englisch hinaus (technisch vorbereitet, fachlich nicht angefragt). - Weitere Sprachen über Deutsch und Englisch hinaus (technisch vorbereitet, fachlich nicht angefragt).
## Architekturübersicht ## Architekturübersicht
@@ -132,5 +133,5 @@ flowchart LR
Scheduler --> Queue Scheduler --> Queue
Health[Statusprüfung und Alarmierung] --> Worker Health[Statusprüfung und Alarmierung] --> Worker
Health --> Scheduler Health --> Scheduler
Backup[Verschlüsselte Sicherung] --> Storage[Speicherort nach Vorgabe des Kunden] Backup[Verschlüsselte Sicherung] --> Storage[Speicherort noch offen]
``` ```