-
released this
2026-09-01 14:40:31 +00:00 | 2 commits to main since this releaseDiese Fassung geht aus einer Fehlersuche im laufenden Betrieb hervor. Ein Schreiben ließ sich nicht in der Akte ablegen — und hinter derselben Meldung lagen nacheinander drei verschiedene Ursachen. Beim Nachsehen kam ein vierter Punkt dazu, der schwerer wiegt als alle anderen zusammen.
Nach dem Update
docker compose up -d docker compose exec sicherung /bin/sh /sicherung.shErwartet:
Datenbank gesichert,Dokumente gesichert,Selbstpruefung bestanden - Datenbank und Dokumente.Wer die Notlösung mit
MINIO_KMS_SECRET_KEYim Einsatz hat, kann sie danach entfernen — vorher aber einmal ein vorhandenes Dokument herunterladen und prüfen, ob es sich öffnen lässt.Behoben
- Dokumente waren in keiner Sicherung. Nach einem Plattenschaden wäre die Akte vollständig wiederhergestellt worden — mit allen Prüfsummen, aber ohne eine einzige Datei dahinter. Je Lauf entstehen jetzt zwei verschlüsselte Dateien; schlägt der Dokumententeil fehl, bricht der Lauf ab.
- Der mitgelieferte Objektspeicher konnte keine Dokumente aufnehmen. Die Anwendung verlangte serverseitige Verschlüsselung, die das mitgelieferte MinIO ohne Zusatzdienst nicht kann. Jetzt abschaltbar und standardmäßig aus.
- „Das Schreiben konnte nicht abgelegt werden" sagte nichts. Jetzt steht dort, was los ist und was zu tun ist.
- Zwei Einstellungen erreichten die Anwendung nie —
ERSTEINRICHTUNG_GEHEIMNISundVERTRAUE_PROXYwurden nicht an den Behälter durchgereicht. - Die Beispielkonfiguration zeigte auf einen fremden Anbieter.
Neu
- Die Anwendung prüft ihre Dateiablage selbst — Ergebnis unter
/api/gesundheitund im Log. - Neuer Abschnitt in der Anleitung: „Wo deine Daten liegen", samt Abgleich zwischen Akte und Speicher.
Geändert
- Ausschlussfristen warnen nur noch, wenn sie näherrücken (90 Tage; Versäumtes immer). Auf dem Dashboard standen sonst dauerhaft drei rote Kästen für Fristen der Jahre 2027 bis 2029.
Einzelheiten im Changelog.
Downloads
-
v1.11.0 — Sicherheitsprüfung Stable
released this
2026-08-24 10:35:51 +00:00 | 18 commits to main since this releaseDiese Fassung geht aus einer Sicherheitsprüfung hervor (#38). Sie ändert
nichts an der Bedienung, schließt aber mehrere Lücken — darunter drei, bei
denen im Code eine Zusage stand, die so nicht galt.Vor dem Update: zwei neue
.env-ZeilenERSTEINRICHTUNG_GEHEIMNIS=<zufällig, npm run schluessel erzeugt einen> VERTRAUE_PROXY=true- Ohne
ERSTEINRICHTUNG_GEHEIMNISläuft alles weiter, nur der erste
Zugang ließe sich nicht anlegen. Auf einer bestehenden Installation ist
das richtig so. - Ohne
VERTRAUE_PROXY=truezählt die Anmeldesperre nur noch nach
E-Mail-Adresse, nicht mehr zusätzlich nach Anschluss.
Nach dem Update, nur mit Objektspeicher
npm run speicher:verschluesseln -- --anwendenSchreibt bereits abgelegte Dateien in den Umschlag um. Lesen funktioniert
währenddessen durchgehend, der Lauf lässt sich abbrechen und wiederholen.Behoben
- Der zweite Faktor war eine Anzeige, keine Grenze. Durchgesetzt wurde
er nur im App-Layout; Server Actions und Downloads liefen daran vorbei. - Ein Dokumenten-Download fragte nur nach der Anmeldung.
- Die Anmeldesperre sperrte dauerhaft aus. Jeder Versuch während einer
Sperre verlängerte sie um die volle Dauer — damit ließ sich ein fremder
Zugang aussperren, ohne dessen Passwort zu kennen. - Ein Code aus der Authenticator-App galt bis zu 90 Sekunden mehrfach.
- Passkeys ließen sich ohne Rückfrage anlegen und entfernen.
- Die Ersteinrichtung stand offen und war nicht atomar.
- Dateien im Objektspeicher lagen mit dem Schlüssel des Anbieters da.
- Ein präpariertes PDF konnte den Server umbringen —
Dekompressionsbombe und unbegrenzte Bildgröße beim Rendern. - 32 Schwachstellen in Paketen, davon 5 kritische → keine.
Geändert
- Downloads laufen jetzt immer über die Anwendung, auch mit Objektspeicher.
Nebeneffekt: Jeder Abruf prüft die Berechtigung und wird protokolliert. docs/SICHERHEIT.mdist neu: Bedrohungsmodell, OWASP-Durchgang, und ein
Abschnitt darüber, was ausdrücklich nicht geschützt ist.
Einzelheiten im Changelog.
Downloads
- Ohne
-
released this
2026-08-23 22:37:06 +00:00 | 29 commits to main since this releaseWichtig, wenn du von einer Fassung vor 1.10.0 aktualisierst.
scripts/update.shbrach beim Sprung von 1.5.0 auf 1.10.1 mitten in der Ausgabe ab — ohne Fehlermeldung. Ursache war eine abgeschnittene Leitung (git log … | head -15): Der Erzeuger bekam SIGPIPE,pipefailreichte es weiter,set -ebeendete das Skript stumm. Die Schwelle lag exakt bei 15 Commits, und 1.10.0 war die erste Fassung darüber.Dieselbe Falle steckte in der Selbstprüfung von
sicherung.sh. Dort hätte sie mit wachsender Datenbank eine intakte Sicherung als kaputt gemeldet und das Update verweigert.Zusätzlich meldet
update.shjetzt bei jedem unerwarteten Ende Zeilennummer und Exitcode, statt kommentarlos zu verschwinden. Ein Test verbietet das Muster künftig in allen Betriebsskripten.Wenn dein Server noch auf einer Fassung vor 1.10.2 steht, hat er das alte Skript — und der Fehler steckt vor dem Umschalten. Deshalb zuerst nur das Skript holen:
git fetch --tags git checkout v1.10.2 -- scripts/update.sh ./scripts/update.shVollständiger Eintrag: CHANGELOG.md
Downloads
-
released this
2026-08-23 19:37:00 +00:00 | 38 commits to main since this releaseDer Beispielfall (
SEED_DEMO=true) bringt jetzt 107 Buchungen über zwölf Monate mit. Bisher gab es Konten und Kontostände, aber keine einzige Buchung — Kassenbuch, Belegpflicht, Dauerzahlungen und die Erkennung wiederkehrender Zahlungen liefen darin leer.Das Heimentgelt steht in drei Schreibweisen auf dem Auszug und wird trotzdem als eine monatliche Zahlung geführt. Genau eine Buchung hat weder Quittung noch Begründung. Der Kontostand zum Stichtag wird aus Anfangsstand und Buchungen gerechnet, nicht behauptet.
Behoben: „gGmbH" fehlte in der Rechtsformliste — dadurch zerfielen Zahlungsgruppen ausgerechnet dort, wo fast jeder Träger eine gGmbH ist.
An einem bestehenden Bestand ändert sich nichts.
Vollständiger Eintrag: CHANGELOG.md
Downloads
-
released this
2026-08-23 18:30:35 +00:00 | 40 commits to main since this releaseNeu: Unter Mein Konto → Meine Anschrift einmal Straße, PLZ und Ort hinterlegen. Ab da stehen sie im Absenderblock jedes erzeugten Schreibens, und die Datumszeile lautet „Bayreuth, den 23.08.2026". Bisher ging jeder Brief ohne Rücksendeadresse hinaus.
Was fehlt, bleibt weg: Jede Angabe ist einzeln freiwillig — keine leeren Zeilen, kein Komma ohne Ort.
Dazu zwei Platzhalter für eigene Vorlagen:
{{betreuer_anschrift}}und{{betreuer_ort}}.Vollständiger Eintrag: CHANGELOG.md
Downloads
-
released this
2026-08-23 14:56:08 +00:00 | 48 commits to main since this releaseNeu: Am Vorgang lässt sich ein Kontakt als Ansprechpartner benennen. Die Sachstandsanfrage redet ihn namentlich an, sein Name steht über der Behörde, und Schreiben übernehmen Anrede und Anschrift. Ein namentlich adressierter Brief landet bei der Person, die den Vorgang kennt, statt in der Poststelle.
Geraten wird nie: Ohne hinterlegte Anrede wird mit vollem Namen angeredet, ohne Ansprechpartner bleibt es bei „Sehr geehrte Damen und Herren". Der Wechsel steht mit Namen im Protokoll.
Vollständiger Eintrag: CHANGELOG.md
Downloads
-
released this
2026-08-23 13:30:10 +00:00 | 50 commits to main since this releaseNeu: Der zuletzt mitgeteilte Rückkaufswert steht mit Stichtag und Quelle oben auf der Vertragsseite, darunter die vollständige Historie. Ist der Wert älter als ein Jahr, steht das daneben — ein veralteter Betrag ohne erkennbares Alter ist schlimmer als kein Betrag.
Ohne Migration, und das ist der Punkt: Die Zahl bleibt der Wertstand am Vermögensposten, aus dem auch das Vermögensverzeichnis rechnet. Es gibt genau eine Wahrheit, nicht zwei.
Behoben: Ein Vertrag konnte zwei Wertreihen bekommen, und bei Verweisen auf Vertrag und Immobilie fehlte die Prüfung, ob sie zur selben Akte gehören.
Vollständiger Eintrag: CHANGELOG.md
Downloads
-
released this
2026-08-23 12:00:00 +00:00 | 52 commits to main since this releaseNeu unter Einstellungen → Schreibvorlagen: eigene Texte hinterlegen, beim freien Schreiben auswählen. Platzhalter füllen sich aus den Daten, die ohnehin im System stehen; fehlt ein Wert, entsteht eine sichtbare Lücke statt einer stillen Leerstelle. Vier mitgelieferte Vorlagen dienen als Ausgangspunkt.
Der Bestellungsabsatz wird beim Speichern eingefordert — ohne ihn antwortet keine Versicherung, und das fällt erst nach vier Wochen auf.
Vollständiger Eintrag: CHANGELOG.md
Downloads
-
released this
2026-08-23 10:18:25 +00:00 | 54 commits to main since this releaseNeu: Vor Vermögensverzeichnis und Jahresbericht braucht es von jeder Lebens- und Rentenversicherung den Rückkaufswert zum Stichtag. Statt fünf bis zehn Einzelbriefe: Stichtag wählen, Liste prüfen, ein Klick. Heraus kommt ein ZIP mit einer Word-Datei je Gesellschaft, dazu je Vertrag die PDF-Fassung in der Akte und die Wiedervorlage.
Kein Alles-oder-nichts: Scheitert ein Vertrag, laufen die übrigen durch. Ein zweiter Lauf am selben Tag erzeugt nichts Doppeltes.
Vollständiger Eintrag: CHANGELOG.md
Downloads
-
released this
2026-08-23 09:19:42 +00:00 | 56 commits to main since this releaseNeu: Umschalter Brief/E-Mail im Editor. Die E-Mail-Fassung lässt den Briefkopf weg, behält aber den Bestellungsabsatz. Kurze Texte gehen per
mailto:ins Mailprogramm, für lange gibt es einen.eml-Entwurf; abgelegt wird die E-Mail als solche gekennzeichnet.Vollständiger Eintrag: CHANGELOG.md
Downloads