Version 1.0.0 — Freigabe fuer den Echtbetrieb
Kein neues Modul. Zwoelf Phasen sind fertig, und die Wehr kann ab jetzt echte Daten hineingeben, ohne befuerchten zu muessen, sie beim naechsten Update zu verlieren. Neu dazu, weil beides zum Betrieb gehoert: update.sh aktualisiert auf einem Linux-Server in einem Befehl. Der Ablauf darf an jeder Stelle abbrechen, ohne eine halb aktualisierte Anlage zu hinterlassen: erst nachsehen ob es etwas Neues gibt, dann sichern, dann holen und bauen (schlaegt das fehl, laeuft die alte Fassung unveraendert weiter), dann umschalten, dann pruefen ob die Anwendung antwortet. Tut sie es nicht, stehen die Protokollzeilen da und die Befehle fuer den Rueckweg. docs/KURZANLEITUNG.md ist der Einstieg fuer die Wehr - nach Rollen sortiert, aufgabenorientiert statt nach Modulen, und bei jedem heiklen Punkt steht das Warum dabei. Die vollstaendige Anleitung hat 63 Kapitel; die liest niemand, bevor er das erste Geraet pruefen will. Die Roadmap haelt den Stand JEDER Freigabevoraussetzung fest, auch der offenen: Datenuebernahme entfaellt (die Wehr pflegt von Hand ein), Sicherungskonzept erledigt, Loeschkonzept technisch vollstaendig aber nicht abgenommen, Schulung steht aus, Atemschutzhinweis bewusst stehen gelassen. Eine Freigabe, die abhakt was nicht geprueft wurde, ist keine. Nebenbei die Ursache der Testflackerei gefunden, die sich durch mehrere Phasen zog: zwei Datenbanktests schalteten beim Aufraeumen ihre Trigger mit ALTER TABLE ... DISABLE TRIGGER ab - eine Schemaaenderung, die fuer die ganze Datenbank gilt. Vitest faehrt die Dateien parallel, also pruefte eine Datei gerade dass ein Trigger greift, waehrend eine andere ihn abgeraeumt hatte. Jetzt sitzungslokal ueber session_replication_role. Erstmals in diesem Projekt: fuenf Unit-Testlaeufe hintereinander 601 gruen und ein E2E-Lauf mit 268 gruen ohne Fehlschlag und ohne Flackern. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
9156dcc144
commit
30faa6cb02
@@ -1,8 +1,14 @@
|
||||
# FLORIAN — Feuerwehr-Verwaltungsplattform
|
||||
|
||||
**Version 1.0.0** — freigegeben für den Echtbetrieb.
|
||||
|
||||
Selbstgehostete Verwaltungssoftware für Freiwillige Feuerwehren. Läuft im
|
||||
Gerätehaus, nicht in der Cloud. Keine Telemetrie, keine externen CDNs.
|
||||
|
||||
> **Wer FLORIAN benutzen und nicht bauen will:**
|
||||
> [**Kurzanleitung**](docs/KURZANLEITUNG.md) — alles Wichtige nach Rollen
|
||||
> sortiert, auf ein paar Seiten.
|
||||
|
||||
## Schnellstart
|
||||
|
||||
```bash
|
||||
@@ -43,7 +49,8 @@ Vollständige Planung mit Aufwänden: [docs/ROADMAP.md](docs/ROADMAP.md) und
|
||||
|
||||
| Datei | Inhalt |
|
||||
|---|---|
|
||||
| [docs/ANLEITUNG.md](docs/ANLEITUNG.md) | Bedienung mit Bildschirmfotos |
|
||||
| [docs/KURZANLEITUNG.md](docs/KURZANLEITUNG.md) | **Der Einstieg.** Nach Rollen sortiert, ein paar Seiten |
|
||||
| [docs/ANLEITUNG.md](docs/ANLEITUNG.md) | Die vollständige Bedienung mit Bildschirmfotos, zum Nachschlagen |
|
||||
| [docs/ROADMAP.md](docs/ROADMAP.md) | Phasenplan und was jeweils entsteht |
|
||||
| [docs/AUFWANDSSCHAETZUNG.md](docs/AUFWANDSSCHAETZUNG.md) | Aufwand je Phase, Schätzung gegen Ist |
|
||||
| [docs/DEVLOG.md](docs/DEVLOG.md) | Entwicklungstagebuch mit Zeiterfassung |
|
||||
@@ -1655,6 +1662,30 @@ ohne Traefik. In Produktion terminiert Traefik TLS und verteilt auf
|
||||
Der App-Container wendet beim Start ausstehende Migrationen an; der Worker
|
||||
tut das bewusst nicht, damit nicht zwei Prozesse gleichzeitig migrieren.
|
||||
|
||||
### Aktualisieren
|
||||
|
||||
```bash
|
||||
./update.sh --pruefen # nachsehen, ob es etwas Neues gibt
|
||||
./update.sh # einspielen
|
||||
```
|
||||
|
||||
Der Ablauf ist so gebaut, dass er an jeder Stelle abbrechen darf, ohne eine
|
||||
halb aktualisierte Anlage zu hinterlassen:
|
||||
|
||||
1. Nachsehen, ob überhaupt etwas Neues da ist — sonst endet es hier.
|
||||
2. **Sichern.** Vor allem anderen; ein Update ist der häufigste Anlass, eine
|
||||
Sicherung zu brauchen.
|
||||
3. Neue Fassung holen und die Abbilder bauen. Schlägt das fehl, läuft die alte
|
||||
Fassung unverändert weiter — es wurde noch nichts umgeschaltet.
|
||||
4. Umschalten. Der App-Container spielt dabei die Migrationen ein.
|
||||
5. Nachsehen, ob die Anwendung wieder antwortet. Tut sie es nach zweieinhalb
|
||||
Minuten nicht, stehen die letzten Protokollzeilen da und die Befehle, mit
|
||||
denen der vorherige Stand zurückkommt.
|
||||
|
||||
Vorher prüft das Skript, dass Docker, git und die `.env` da sind und dass im
|
||||
Verzeichnis keine unverbuchten Änderungen liegen. `--ohne-sicherung` gibt es
|
||||
für Testinstallationen; im Betrieb gehört es nicht benutzt.
|
||||
|
||||
## Datenschutz
|
||||
|
||||
- Keine Telemetrie, keine externen CDNs, keine Google Fonts. Es werden nur
|
||||
|
||||
Reference in New Issue
Block a user