Handbuch, FAQ & Support
Die integrierte Hilfe gehört zur installierten Version 2.1.27-test. Suche nach einer Funktion oder springe direkt zum passenden Kapitel.

Erste Schritte
Nach der Installation sollten zuerst Verein, Benutzer, Datensicherung und Sicherheitsstatus eingerichtet werden. Arbeite diese Punkte einmal vollständig ab, bevor ClubShot produktiv genutzt wird.
Mitgliederverwaltung
Die Mitgliederakte bündelt Stammdaten, Mitgliedschaft, Vorstand/Funktionen, Ehrungen, Lizenzen, Dokumente, Einwilligungen und sportliche Historie.
Mitglied anlegen
Mitglieder → Mitglied anlegen. Stammdaten eintragen, eindeutige Mitgliedsnummer verwenden und speichern. Danach stehen die weiteren Bereiche der Mitgliederakte zur Verfügung.
Daten ändern
Mitglied öffnen, Daten bearbeiten und speichern. Relevante Änderungen werden im Audit-/Änderungsprotokoll nachvollziehbar gehalten.
Austritt
Den vorgesehenen Austritts-Workflow verwenden. Dadurch bleiben Historie und notwendige Nachweise erhalten, ohne das Mitglied versehentlich sofort vollständig zu löschen.
Import
Aktuelle ClubShot-Vorlage verwenden. Mitgliedsnummern sind für die eindeutige Zuordnung besonders wichtig. Vorschau und Fehlermeldungen vor dem endgültigen Import prüfen.
Dokumente & Einwilligungen
Mitgliederbezogene Unterlagen direkt der Akte zuordnen. Nur erforderliche personenbezogene Unterlagen speichern und organisatorische Löschfristen beachten.
Historie
Vorstandsposten, Ehrungen, Lizenzen und weitere zeitbezogene Daten mit korrekten Start-/Enddaten pflegen. Das verbessert Auswertungen und Chronik.
Sport & Schießbetrieb
Schießbuch
Training oder Wettkampf auswählen, Mitglied und Disziplin zuordnen und Ergebnis erfassen. Für wiederkehrende Erfassungen Stammdaten konsistent halten.
Massenimport
Bei vielen Ergebnissen die aktuelle XLSX-Vorlage nutzen. Erst Vorschau prüfen, dann übernehmen. Mitgliedsnummer ist die bevorzugte Zuordnung.
Disziplinen & Kaliber
Unter den Sporteinstellungen zentral pflegen. Doppelte oder unterschiedlich geschriebene Disziplinen vermeiden, damit Auswertungen sauber bleiben.
Auswertungen
Jahr, Wettkampf und Disziplin filtern. Mindestteilnahmen und Wertungsregeln kontrollieren, bevor Platzierungen oder Urkunden verwendet werden.
Waffen & Munition
Bestände, relevante Unterlagen und Zuordnungen vollständig pflegen. Bei rechtlich relevanten Angaben immer die Originalunterlagen als maßgeblich behandeln.
Dokumente, Vorlagen & Designer
Der Dokumentdesigner erzeugt wiederverwendbare Schreiben aus ClubShot-Daten. Die Vorschau arbeitet mit festen A4-Seiten und einer festen Fußzeile; bei längerem Inhalt werden Folgeseiten angelegt.
Neue Vorlage
Name, Kategorie und Betreff vergeben. Inhalt im A4-Bereich schreiben und mit Fett/Kursiv, Überschriften, Listen und Ausrichtung gestalten.
Variablen
Platzhalter wie {{ vorname }}, {{ nachname }} oder {{ verein_name }} verwenden. Beim Erzeugen werden sie durch die konkreten Daten ersetzt.
Bilder
PNG/JPG/WebP hochladen und als Briefkopf oder in Text/Fußzeile einfügen. ClubShot begrenzt Dateitypen und Größe; für Druckqualität trotzdem keine extrem großen Originale verwenden.
Fußzeile
Die Fußzeile sitzt am unteren Rand jeder A4-Seite. Dort eignen sich Vereinsanschrift, Kontakt, Bankdaten oder kurze rechtliche Hinweise. Für sauber ausgerichtete Namen, E-Mail-Adressen und Anschriften kann eine rahmenlose Tabelle verwendet werden.
Tabellen & Listen
Tabellen können im Brieftext und in der Fußzeile eingefügt werden. Wähle zwischen ohne Linien, vollständigem Raster oder Außenrahmen. Rahmenlose Tabellen zeigen nur während der Bearbeitung Hilfslinien. Aufzählungen stehen als Punkte oder nummeriert zur Verfügung; Einzüge können verändert werden.
PDF prüfen
Vor dem Versand immer Empfänger, Variablenersetzung, Seitenumbrüche und Bilder kontrollieren. Die Bildschirmvorschau ist eine Annäherung an das erzeugte PDF.
So ist die A4-Struktur aufgebaut
Briefkopf und Empfänger stehen oben, der Textbereich endet oberhalb der festen Fußzeile. Reicht der Platz nicht, führt ClubShot den Inhalt auf einer weiteren A4-Seite fort.
Benutzer, Rechte, MFA & Sitzungen
Benutzerkonten
Jede Person erhält ein eigenes Konto. Konten ausscheidender Personen deaktivieren statt Zugangsdaten weiterzugeben.
Berechtigungen
Nur benötigte Bereiche auf Lesen oder Schreiben setzen. Administratorrechte nur Personen geben, die tatsächlich Systemadministration benötigen.
MFA
Für reguläre Administratoren verpflichtend. Secret/QR-Code nicht per ungeschützter Nachricht versenden oder im Vereinslaufwerk offen ablegen.
Login-Sperre
Zu viele Fehlversuche lösen eine temporäre Sperre aus. Ein Administrator kann das Benutzerkonto in der Benutzerverwaltung sofort wieder freigeben.
Auto-Logout
Die Sitzungsdauer wird in den Systemeinstellungen festgelegt. Aktivität verlängert die Sitzung; nach längerer Inaktivität erfolgt eine automatische Abmeldung.
Break-Glass
Nur für Notfälle. Zugang getrennt und sicher verwahren. Der Account wird nicht in der normalen Benutzerverwaltung angezeigt und seine Nutzung besonders protokolliert.
Backup & Wiederherstellung
Vollbackup
Eine .sdbackup-Datei enthält PostgreSQL-Dump und updatefeste Benutzerinhalte. Datenbankzugangsdaten werden bewusst nicht als Klartext-Backupbestandteil übernommen.
Automatik
Halbstündlich, stündlich oder mit größeren Intervallen sichern. Kurze Intervalle erzeugen viele Dateien; Speicher und Aufbewahrung regelmäßig kontrollieren.
NAS / UNC
Bei Windows-Dienstbetrieb UNC-Pfade verwenden. Gemappte Laufwerksbuchstaben des angemeldeten Administrators stehen dem Dienst normalerweise nicht zur Verfügung.
Restore
Vor Wiederherstellung nach Möglichkeit ein zusätzliches Backup erstellen. Nach Restore Anmeldung, Mitglieder, Dokumente und Systemstatus prüfen.
Restore-Test
Regelmäßig auf einer getrennten Testinstallation prüfen, ob eine aktuelle Sicherung tatsächlich wiederhergestellt werden kann. Ein erfolgreich erzeugtes Backup allein ist noch kein Restore-Nachweis.
System, Updates & Sicherheit
Systemstatus
Die Ampel bewertet technische Voraussetzungen wie Datenbank, Dienst, HTTPS/Proxy, Session-Sicherheit, MFA, Break-Glass, Backup, Speicher und Audit-Protokoll.
HTTPS / Reverse Proxy
Externen Zugriff nur über gültiges HTTPS bereitstellen. ClubShot selbst bleibt intern erreichbar; Reverse Proxy übergibt Host/Proto/Port kontrolliert.
Update
Installer verwenden und vorab Backup sicherstellen. Nach Update Version, Windows-Dienst, Login und Systemstatus kontrollieren.
Audit-Log
Sicherheits- und Änderungsereignisse filtern und bei Auffälligkeiten zeitnah prüfen. Keine Secrets in Freitextfelder schreiben.
Fehlerseiten
403/404/500 werden als verständliche ClubShot-Seiten angezeigt. Interne Tracebacks sollen nicht im Browser offengelegt werden.
Support & Diagnose
Bei einem Fehler zuerst Zeitpunkt, betroffene Funktion und genaue Schritte notieren. Administratoren können ein Diagnosepaket erzeugen, das Systeminformationen und begrenzte Logauszüge enthält, aber keine Datenbank, Passwörter, MFA-Secrets oder Break-Glass-Zugangsdaten.
Supportkontakt: info@clubshot.de
Häufige Fragen
Ein Benutzer kann sich nicht mehr anmelden.
Aktiv-Status und Login-Sperre in der Benutzerverwaltung prüfen. Eine durch Fehlversuche ausgelöste Sperre kann ein Administrator sofort freigeben.
Warum werde ich automatisch abgemeldet?
Nach der eingestellten Inaktivitätszeit beendet ClubShot die Sitzung. Das schützt insbesondere gemeinsam genutzte oder unbeaufsichtigte Arbeitsplätze.
Warum ist MFA für Administratoren verpflichtend?
Administratoren besitzen weitreichende Rechte. MFA reduziert das Risiko, dass ein bekannt gewordenes Passwort allein zur Kontoübernahme genügt.
Was mache ich, wenn kein Administrator mehr Zugriff hat?
Dafür existiert der Break-Glass-Notfallzugang. Nur im tatsächlichen Notfall verwenden und anschließend das Audit-/Security-Log prüfen.
Warum funktioniert ein NAS-Backup nicht?
Bei Dienstbetrieb insbesondere UNC-Pfad, Freigabe- und NTFS-Berechtigungen des Dienstkontexts prüfen. Gemappte Laufwerke sind häufig nur in der interaktiven Benutzersitzung vorhanden.
Wie oft sollte gesichert werden?
Das hängt von der Änderungsrate ab. Bei täglicher Verwaltungsarbeit kann stündlich sinnvoll sein; bei intensiver Erfassung auch halbstündlich. Entscheidend sind zusätzlich externe Kopie, genügend Speicher und getestete Wiederherstellung.
Was bedeutet Gelb oder Rot im Systemstatus?
Gelb zeigt einen Punkt mit Aufmerksamkeit/Verbesserungspotenzial. Rot kennzeichnet einen technischen Zustand, der zeitnah geprüft werden sollte. Die Ampel ersetzt keine vollständige Sicherheitsprüfung.
Was soll ich dem Support mitteilen?
Version, Zeitpunkt, Benutzerrolle, betroffenen Menüpunkt, genaue Fehlermeldung und Schritte zur Reproduktion. Keine Passwörter, MFA-Codes oder Break-Glass-Daten senden.
Vollständiger Changelog
Der Changelog wird direkt aus der mit dieser Installation ausgelieferten CHANGELOG.md geladen.
# V2.1.20-test – Tabellen und Listen im Dokumentdesigner
- Dokumentdesigner unterstützt jetzt Tabellen im Brieftext und in der Fußzeile.
- Tabellen können mit 1–8 Zeilen und 1–6 Spalten eingefügt werden.
- Rahmenvarianten: ohne Linien, vollständiges Raster oder nur Außenrahmen.
- Rahmenlose Tabellen zeigen im Editor dezente Hilfslinien, die nicht ins PDF übernommen werden.
- Tabellen lassen sich nachträglich um Zeilen/Spalten erweitern oder verkleinern und vollständig löschen.
- Aufzählungen wurden um nummerierte Listen sowie Einzug/Einzug zurück erweitert.
- PDF-Ausgabe rendert Tabellen und Listen als echte ReportLab-Flowables; Tabellen funktionieren auch in der festen Fußzeile.
- Fußzeilenbereich wurde für typische Kontakt-/Adress-Tabellen erweitert.
- HTML-Sanitizer erlaubt die dafür notwendigen, begrenzten Tabellenstrukturen und sicheren Attribute.
# ClubShot Changelog
## V2.1.27-test
- Mitglieder: Direkter Button `Mitglieder exportieren` in der Mitgliederübersicht.
- Mitglieder: CSV-Export verwendet für Mobilnummer jetzt exakt die Import-Spalte `Mobil` und kann dadurch direkt wieder importiert werden.
- Mitgliederimport: `Verstorben`, `Sterbedatum` und `Aufbewahrung prüfen` aus einem ClubShot-Export werden wieder eingelesen.
- Ehrungen: Neuer CSV-Export mit Mitgliedsnummer, Name, Geburtsdatum, Art, Titel, Datum und Bemerkung.
- Ehrungen: Neuer CSV-/XLSX-Import mit Vorschau vor dem Schreiben.
- Ehrungen: Sichere Mitgliederzuordnung über Mitgliedsnummer, vollständigen Namen und – sofern vorhanden – Geburtsdatum.
- Ehrungen: Mehrdeutige Zuordnungen müssen manuell entschieden werden; nicht gefundene Mitglieder werden nicht automatisch angelegt.
- Ehrungen: Bereits vorhandene identische Ehrungen werden erkannt und standardmäßig übersprungen; beim finalen Import erfolgt erneut eine Dublettenprüfung.
- Ehrungen: Importierte Ehrungen werden im Änderungsprotokoll dokumentiert.
- Datenmigration: Ein von ClubShot erzeugtes `ehrungen.csv` kann unverändert wieder importiert werden.
## V2.1.26-test
- PostgreSQL: SQLite-kompatible Named-Parameter wie `:member_no` werden bei Mapping-Parametern zentral in psycopg-kompatible Platzhalter `%(member_no)s` umgesetzt.
- PostgreSQL: `::text`-Casts bleiben von der Parameterkonvertierung unberührt.
- PostgreSQL: Constraint-/Integritätsfehler werden wieder als `sqlite3.IntegrityError` an die bestehende ClubShot-Validierungslogik weitergereicht.
- Mitglieder: Anlegen, Bearbeiten und CSV-Import verwenden damit auch unter PostgreSQL die bestehende Named-Parameter-Logik.
- Benutzerverwaltung: Bei Validierungsfehlern bleiben Benutzername, E-Mail, MFA/Admin-Auswahl und Bereichsrechte im Formular erhalten; Passwortfelder werden weiterhin bewusst geleert.
- Benutzer bearbeiten: Validierung erfolgt vor dem Datenbank-Update; bei Fehlern bleiben die eingegebenen Konto- und Berechtigungswerte sichtbar.
- Sicherheitscenter: Break-Glass wird nicht mehr als regulärer Benutzer mit `MFA aus` in die Sicherheitsbewertung aufgenommen.
- Sicherheitscenter: Der geheime Break-Glass-Benutzername wird in Login-/Security-Ansichten nur noch neutral als `Notfallzugang` dargestellt.
- Systemstatus: Die bereits vorhandene neutrale Break-Glass-Anzeige mit eingerichtet/letzte Verwendung bleibt unverändert.
## V2.1.25-test
- Installer: eigentliche Ursache der Python-Erkennung unter Windows PowerShell 5.1 behoben.
- Installer: Der Python-64-Bit-Test verwendet innerhalb von `python -c` nun einfache Python-Anfuehrungszeichen. Dadurch entfernt Windows PowerShell 5.1 die Zeichen um `P` nicht mehr beim Native-Argument-Passing.
- Installer: Derselbe Quoting-Fix wurde auf die Python-Versionsanzeige angewendet.
- Installer: Die bereits nachgewiesene Python-3.14-Installation unter `%LocalAppData%\Programs\Python\Python314\python.exe` kann dadurch korrekt validiert werden.
- Installer: Nicht vorhandene ClubShot-Pfade werden vor `Resolve-Path` mit `Test-Path` abgefangen; dadurch erscheinen auf frischen Systemen keine irrefuehrenden Resolve-Path-Fehler mehr im Setup-Protokoll.
## V2.1.24-test
- Installer: Python-Erkennung fuer frische Windows-Installationen grundlegend vereinfacht und korrigiert.
- Installer: Direkte CPython-Installationen unter `%LocalAppData%\Programs\Python\Python*\python.exe` werden zuerst geprueft.
- Installer: Jeder gefundene Interpreter wird direkt ausgefuehrt und muss Python 3.11+ in 64-Bit bestaetigen.
- Installer: Kandidaten werden nicht mehr ueber verschachtelte Hashtable-/ArrayList-Strukturen an den Prozessaufruf weitergereicht.
- Installer: PEP-514-Registry, Program-Files-Installationen, `py.exe` und direkte `python.exe`-Aliase bleiben als Fallback erhalten.
- Installer: Microsoft-Store-Aliase werden nur akzeptiert, wenn sie tatsaechlich einen gueltigen Interpreter starten.
## V2.1.23-test
- Installer: Python-Erkennung fuer aktuelle Windows-/Python-Installationen erweitert.
- Installer: PEP-514-Registry-Eintraege von klassischen Python-Installern werden ausgewertet.
- Installer: Python unter Program Files, Benutzerprofil und `%LocalAppData%\Python\bin` wird erkannt.
- Installer: Moderne Python-Install-Manager-Aliase unter WindowsApps werden nicht mehr pauschal ausgeschlossen.
- Installer: `pymanager exec` wird als zusaetzlicher Interpreter-Kandidat unterstuetzt.
- Installer: Legacy-`py.exe` und direkte `python`-/`python3`-Aliase werden weiterhin unterstuetzt.
- Installer: Es wird weiterhin nur ein tatsaechlich startbarer Python-Interpreter ab Version 3.11 in 64-Bit akzeptiert.
## V2.1.22-test
- Installer: Fehlende Python-/PostgreSQL-Voraussetzungen koennen nun installiert und anschliessend im selben Installerfenster erneut geprueft werden; das Setup bricht nach dem Oeffnen der Downloadseiten nicht mehr automatisch ab.
- Installer: Nach dem Oeffnen der Downloadseiten wartet das Setup auf ENTER und prueft danach erneut.
- Installer: Prozess-PATH wird vor der Erkennung neu aus Windows eingelesen, damit waehrend des laufenden Setups installierte Programme gefunden werden koennen.
- Installer: Python-Erkennung durchsucht zusaetzlich typische Installationspfade und ignoriert den Microsoft-Store-App-Alias.
- Installer: Python-Pruefausgaben werden unterdrueckt, damit keine fehlerhaft dargestellten Store-/Codepage-Meldungen im Setup erscheinen.
- Installer: Nur Python 3.11+ in 64-Bit wird als gueltige Voraussetzung akzeptiert.
## V2.1.21-test
- Installer: Fehler bei einer frischen Windows-Installation behoben, bei dem eine leere Trefferliste faelschlich als bestehende ClubShot-Installation erkannt wurde.
- Installer: Setup-Protokolldatei wird unmittelbar unter `C:\ProgramData\ClubShot\Logs\ClubShot-Setup.log` angelegt.
- Installer: Frische Installation prueft Python und PostgreSQL/psql vor dem Kopieren der Anwendung.
- Installer: Fehlende Voraussetzungen werden verstaendlich angezeigt; auf Wunsch werden die offiziellen Downloadseiten fuer Python und PostgreSQL geoeffnet.
- Installer: Gefundene Python- und PostgreSQL-Versionen werden vor der Neuinstallation angezeigt.
## V2.1.19-test
- Dauerhafte Produktionsabnahme in Systemstatus ergänzt: automatische technische Prüfungen plus dokumentierte praktische Abnahmetests.
- Restore-Test und Serverneustart/Autostart können durch Administratoren mit Benutzer und Zeitpunkt bestätigt und für eine erneute Prüfung zurückgesetzt werden.
- Produktionsbereitschaft erhält eine eigene Grün/Gelb/Rot-Ampel und bleibt auch nach der Erstfreigabe dauerhaft verfügbar.
- Session-Lebensdauer auf 24 Stunden angehoben; die tatsächliche Inaktivitätsabmeldung wird weiterhin durch die konfigurierbare Idle-Timeout-Funktion (15–240 Minuten) erzwungen. Damit funktionieren auch 120/240 Minuten korrekt.
## V2.1.18-test
- Dokumentdesigner: Schriftgröße für markierte Textbereiche frei aus festen pt-Stufen wählbar.
- Dokumentdesigner: Schriftart (Arial/Helvetica, Times New Roman, Courier New) auswählbar.
- Dokumentdesigner: Textfarbe individuell wählbar.
- Dokumentdesigner: Formatierung markierter Inhalte kann zurückgesetzt werden.
- PDF-Ausgabe übernimmt Schriftgröße, Schriftfamilie und Textfarbe aus dem Designer.
# ClubShot – Changelog
## 2.1.17-test - 11.09.2026
- Dokumentdesigner auf feste A4-Seiten umgestellt: Seiten wachsen nicht mehr endlos; längerer Inhalt wird auf Folgeseiten verteilt.
- Fußzeile in Vorschau und PDF fest am unteren Seitenrand; PDF wiederholt die Fußzeile auf jeder Seite und zeigt Seitenzahlen.
- Integriertes Hilfezentrum deutlich erweitert: Suchfunktion, ausführliche Kapitel, mehr FAQ, visuelle A4-Erklärung und funktionierende Schnellnavigation.
- Vollständiger mitgelieferter `CHANGELOG.md` wird direkt unter Hilfe & Support angezeigt.
- Neuer administrativer Download eines datensparsamen Support-/Diagnosepakets mit Systeminformationen und begrenzten Logauszügen; Datenbank und Zugangsdaten werden nicht aufgenommen.
- Eigene ClubShot-Fehlerseiten für 403, 404 und 500 ergänzt; interne Tracebacks werden nicht als normale Benutzeroberfläche ausgegeben.
- Security-Review durchgeführt: öffentliche/geschützte Endpunkte, CSRF, dynamische SQL-Stellen, Upload-/Download-Pfade, Session-/MFA-/Break-Glass-Flows und Secret-Logging statisch geprüft.
- MFA-Verifikation gehärtet: nach 8 falschen Codes wird die ausstehende Anmeldung verworfen und muss vollständig neu gestartet werden.
- Setup-Regression behoben: nicht definierter Wert `session_timeout_minutes` bei einer frischen Ersteinrichtung wurde auf sicheren Standard 30 Minuten korrigiert.
## 2.1.16-test - 11.09.2026
- Hilfe & Support grundlegend erweitert: Erste Schritte, Mitglieder, Sport/Schießbuch, Dokumente, Benutzer/MFA, Backup, System/Sicherheit und umfangreichere FAQ.
- Defekten/unklaren Hilfe-Schnellzugriff durch echte Sprungmarken ersetzt.
- Für angemeldete Benutzer zusätzliche Direktlinks in die wichtigsten ClubShot-Bereiche.
- Impressum und Systemstatus aus V2.1.15 unverändert beibehalten.
## 2.1.15-test - 11.09.2026
- Dark-Mode-Kontraste für Backup, Hinweise, Designer und ähnliche Oberflächen korrigiert.
- Dokumentdesigner um Rich-Text-Fußzeile mit Platzhaltern/Bildern erweitert.
- Briefkopf- und Fußzeilen-Ausrichtung links/mittig/rechts ergänzt.
- Doppelte Break-Glass-Anmeldewarnung entfernt; persistente Warnung rot hervorgehoben.
- Systemstatus-Template bereinigt.
- Datenschutzinformation und VVT auf Break-Glass/MFA sowie reale Backup-Eigenschaften aktualisiert.
## 2.1.13-test - 11.09.2026
- Windows-Dienst grundlegend robuster umgesetzt: Der Service Control Manager startet jetzt direkt die Python-venv mit `clubshot_service.py`; `pythonservice.exe` ist nicht mehr der registrierte Diensthost.
- Dienststart wird als Teil von Installation, Update und Reparatur verbindlich geprüft. Der Dienst muss im Status `Running` bleiben und der konfigurierte Webport muss erreichbar sein.
- Bei Dienstfehlern schreibt der Installer automatisch Dienststatus und aktuelle Service-Control-Manager-Ereignisse in das Setup-Protokoll.
- Update-Rollback erweitert: Der vor dem Update vorhandene Windows-Dienstzustand wird gesichert und bei Fehlern wiederhergestellt. Wurde erstmals ein Dienst angelegt, wird er bei einem Rollback wieder entfernt.
- Neuer installationsspezifischer Break-Glass-Administrator für Notfälle. Benutzername `breakglass-xxxxxxxx` und ein kryptografisch erzeugtes 40-stelliges Kennwort werden einmalig erzeugt.
- Der Break-Glass-Administrator hat vollständige Adminrechte, ist in der normalen Benutzerverwaltung verborgen und benötigt absichtlich keine MFA.
- Zugangsdaten werden nur einmalig in `ClubShot-Notfallzugang.txt` auf dem Desktop des installierenden Administrators ausgegeben und nicht im Klartext in der Datenbank gespeichert.
- Erfolgreiche und fehlgeschlagene Break-Glass-Anmeldungen werden gesondert im Sicherheitsprotokoll erfasst. Der Systemstatus zeigt nur Einrichtung und letzte Verwendung, niemals die Zugangsdaten.
- Ersteinrichtung bleibt trotz bereits vorhandenem Break-Glass-Konto möglich; für die Setup-Prüfung zählen nur normale Benutzerkonten.
- PowerShell-Installer bleibt strikt ASCII und CMD/BAT bleiben BOM-frei für Windows PowerShell 5.1.
## 2.1.11-test – Production Readiness
- Windows-Dienst `ClubShot`: automatischer Start ohne angemeldeten Benutzer; Installer richtet den Dienst ein und konfiguriert Wiederanlauf bei Fehlern.
- Manueller BAT-Start bleibt als Diagnoseweg erhalten.
- Persistentes, rotierendes Anwendungs-/Waitress-Log unter `logs\clubshot.log` (10 MB, 10 Rotationen).
- `logs` wird bei Updates und Programm-Rollbacks geschützt.
- Neue Admin-Seite **System → Systemstatus** mit Version, Dienst, PostgreSQL, Backupstatus, Speicher, `user_content`, Serverzeit und Laufzeit.
- DPAPI-Schutz der DB-Zugangsdaten auf Computer-Scope migriert, damit der LocalSystem-Dienst auf demselben Server sicher starten kann; Datei-ACL bleibt auf SYSTEM/Administratoren beschränkt.
- Neue `NOTFALL-ANLEITUNG.md` für vollständige Wiederherstellung nach Serverausfall.
## 2.1.10-test - 10.09.2026
- Installationssuche bereinigt: historische Pfade und frühere Produktnamen werden nicht mehr fest abgefragt; Standardpfad ist `C:\ClubShot`.
- Individuelle Installationen bleiben über Registry bzw. valide ClubShot-Struktur erkennbar.
- Briefmodul unter PostgreSQL korrigiert: LIKE-Muster in `letter_values()` werden als SQL-Parameter übergeben und kollidieren nicht mehr mit Psycopg-Platzhaltern.
- `ClubShot-V2-starten.bat` und `ClubShot-Installer.cmd` werden ohne UTF-8-BOM ausgeliefert; dadurch kein `´╗┐@echo off` mehr unter Windows CMD.
- README, Installations- und Update-Anleitung vollständig auf den aktuellen PostgreSQL-/Installer-Stand gebracht.
## 2.1.9-test - 10.09.2026
- Installer-Pfaderkennung korrigiert: Ein einzelner gefundener Windows-Pfad wird nicht mehr versehentlich auf den Laufwerksbuchstaben `C` reduziert.
- Installationssuche akzeptiert nur noch vollständige absolute Windows-Pfade mit gültiger ClubShot-Struktur.
- Gefundene Installationskandidaten werden vollständig im Setup-Protokoll ausgegeben.
- Versionserkennung, `.venv`, Pre-Update-Backup und Updatepfade verwenden zuverlässig den vollständigen Installationspfad.
# ClubShot Changelog
## 2.1.8-test - 10.09.2026
- Neuer komfortabler Setup-Start über **`ClubShot-Installer.cmd`**. Die CMD startet den PowerShell-Installer mit `-ExecutionPolicy Bypass` nur für diesen Prozess; ein manuelles `Set-ExecutionPolicy` ist nicht mehr erforderlich.
- Der Installer kann weiterhin aus einem beliebigen entpackten Ordner gestartet werden und fordert bei Bedarf Administratorrechte an.
- Setup-/Update-Protokoll unter `%ProgramData%\ClubShot\Logs\ClubShot-Setup.log`; bei Fehlern bleibt der Installer zur Diagnose geöffnet.
- Fehler in **Mitglied → Brief erstellen** behoben: `letter_values()` verwendet wieder die vorhandene zentrale Metadatenfunktion `get_meta()`.
- Schießbuch-Massenimport erkennt Mitgliedsnummern tolerant: vollständige Nummer wie `012364-0000145`, Kurznummer `0000145` sowie `145`, wenn die Zuordnung eindeutig ist. Bei Mehrdeutigkeit wird die Zeile mit verständlicher Fehlermeldung abgewiesen.
- Excel-Importvorlage und Hinweisblatt dokumentieren die Kurznummernlogik.
## 2.1.7-test - 10.09.2026
- Neuer intelligenter PowerShell-Installer mit Update-/Reparaturmodus.
- Bestehende ClubShot-Installationen werden unabhängig vom Startordner des Installers erkannt.
- Standardpfad für Neuinstallationen ist `C:\ClubShot`; vorhandene Installationspfade bleiben bei Updates erhalten.
- Vor jedem Update wird zwingend ein vollständiges PostgreSQL-`.sdbackup` inklusive `user_content` erstellt und validiert.
- Zusätzlich wird der bestehende Programmstand unter `backups\updates` für ein Datei-Rollback gesichert.
- Persistente Inhalte (`db_config.json`, `runtime_config.json`, `.venv`, `user_content`, `backups`) werden beim Programmupdate nicht überschrieben.
- ClubShot wird für den Dateiaustausch beendet und anschließend wieder gestartet; der lokale Webport wird geprüft.
- Python-Abhängigkeiten werden beim Update/Reparieren anhand `requirements.txt` nachgezogen.
- Downgrades werden standardmäßig blockiert.
- Installationspfad und Version werden künftig zusätzlich unter `HKLM\SOFTWARE\ClubShot` registriert.
# ClubShot – Changelog
## 2.1.6-test - 10.09.2026
- Schießbuch-Massenimport auf ein vereinfachtes Standardformat umgestellt: Datum, Mitgliedsnummer, Vorname, Nachname, Wettkampf, Disziplin, Ergebnis, Stand, Aufsicht und Bemerkung.
- Deutsches Datumsformat `TT.MM.JJJJ` ist jetzt das bevorzugte Format; `JJJJ-MM-TT` und weitere bisherige Werte bleiben lesbar.
- Disziplinen werden bevorzugt über die DSB-Kennzahl (z. B. `2.53`) oder alternativ über den exakten Stammdatennamen erkannt.
- Bei erkannter Disziplin wird das in den Sport-Einstellungen hinterlegte Standardkaliber automatisch übernommen.
- Die Excel-Vorlage enthält einen erweiterten Hinweis-Tab mit einer dynamisch erzeugten Liste aller aktiven Disziplinen, DSB-Kennzahlen und Standardkaliber.
- Alte Importspalten (`Wertungsart`, `Ringe`, `Anzahl 9er`, `Kaliber`) werden aus Gründen der Abwärtskompatibilität weiterhin verarbeitet.
- Einzelne fehlerhafte Importzeilen brechen den Gesamtimport nicht ab; Zeilennummer und Ursache werden nach dem Import angezeigt.
- Unbekannte ältere Freitext-Disziplinen werden weiterhin importiert, aber nicht automatisch als neue Stammdaten angelegt.
# Changelog
## 2.1.5-test - 10.09.2026
- Zentrale, pflegbare Kaliber-Stammdaten für Schießbuch, Munitionsbestand und Sportgeräte. Standardwerte: 4,5 mm (.177), .22 l.r., .32, 9 mm Luger, .357 Magnum, .44 Magnum, .45 ACP und 7,62–9,65 mm Zentralfeuer.
- DSB-nahe Standarddisziplinen mit Kennzahl, Waffenart und verknüpftem Standardkaliber ergänzt: 2.10, 2.40, 2.45, 2.53, 2.55, 2.58, 2.59, 2.60, 1.11, 1.36 und 1.41.
- Disziplinen und Kaliber sind unter **Sport & Schießbetrieb → Sport-Einstellungen** bearbeitbar, erweiterbar und ausblendbar. Bestehende Einträge bleiben erhalten.
- Bei Auswahl einer Disziplin im Schießbuch wird das hinterlegte Standardkaliber automatisch vorbelegt; das Kaliber kann weiterhin geändert werden.
- Bestehende Freitextwerte aus älteren Versionen werden bei der Migration in die Disziplinstammdaten übernommen und nicht gelöscht.
- Persönliche Rekorde in der Sportauswertung berücksichtigen nur noch das aktuelle Sportjahr.
## 2.1.5-test - 10.09.2026
- Automatische Backups vollständig in **System → Backup & Wiederherstellung** verschoben; allgemeine Systemeinstellungen sind davon bereinigt.
- Neuer Standardpfad für automatische Sicherungen: `backups\automatic` innerhalb der ClubShot-Installation. Frühere unveränderte Standardpfade werden beim Start automatisch migriert.
- Dashboard- und Backup-Hinweis, solange automatische Sicherungen nur im lokalen Standardordner liegen; externes Laufwerk/NAS wird empfohlen.
- MFA-Selbstverwaltung erweitert: bestehendes MFA kann für ein weiteres Gerät erneut angezeigt oder sicher ersetzt werden. Beim Wechsel bleibt das bisherige MFA aktiv, bis der neue TOTP-Code bestätigt wurde.
- Mitgliederübersicht: Mitgliedsname ist jetzt direkt anklickbar und öffnet die Mitgliederansicht; besonders für Mobilgeräte angenehmer.
- Berechtigungs-/Menü-Audit: Dokumentenmenü respektiert jetzt die Dokumentenberechtigung; Admin-only-Systembereiche werden normalen Benutzern nicht mehr angeboten; schreibende Schnellaktionen werden bei Read-only-Rechten ausgeblendet.
- Benutzerverwaltung erläutert klarer, dass Administratoren immer Vollzugriff besitzen und Bereichsrechte bei Admin-Konten keine Wirkung haben.
- Kleine Konsistenzkorrektur: Passwort-Hinweis auf 12 Zeichen angepasst.
## 2.1.3-test - 10.09.2026
- PostgreSQL-Automatikbackup repariert: geplante Sicherungen erzeugen jetzt vollständige `.sdbackup`-Pakete statt bei PostgreSQL ohne Sicherung abzubrechen.
- Mehrere frei wählbare Backup-Uhrzeiten pro Tag; jeder Slot wird höchstens einmal pro Kalendertag ausgeführt, verpasste Slots werden nicht nachgeholt.
- Backup-Zielordner unterstützt lokale Pfade und UNC-Freigaben; automatische Aufbewahrung/Löschung nach konfigurierbaren Tagen.
- Backup-Status erweitert um letzten Erfolg, Dateiname, Größe, nächsten geplanten Lauf und letzten Fehler.
- Backup-Fehler erscheinen zusätzlich im ClubShot-Hinweiscenter.
- Test-Backup kann unabhängig vom Aktivstatus des Zeitplans sofort ausgelöst werden.
- Mitglieder-Timeline nach Ereignistyp sowie Von-/Bis-Datum filterbar.
- Gefilterte Mitglieder-Timeline als gestaltetes PDF exportierbar.
- Reverse-Proxy-Einstellungsblock aus dem fehlerhaften Seitentitel in den regulären Einstellungsinhalt verschoben.
## 2.1.2-test - 10.09.2026
- Update-Start robuster gemacht: Der Windows-Starter prüft jetzt vor dem Start, ob die für den Dokumentdesigner benötigte Bibliothek `tinycss2` in der bestehenden `.venv` vorhanden ist.
- Fehlt `tinycss2`, installiert ClubShot automatisch die Abhängigkeiten aus `requirements.txt` in die vorhandene virtuelle Python-Umgebung.
- Verständliche Fehlermeldung, falls die Nachinstallation nicht möglich ist.
- Batchdatei weiterhin ohne UTF-8-BOM.
## 2.1.2-test - 10.09.2026
- Startfehler des Dokumentdesigners behoben: `tinycss2` ist jetzt als feste Abhängigkeit enthalten, da Bleach `CSSSanitizer` diese Bibliothek benötigt.
- Windows-Batchstarter wird jetzt ohne UTF-8-BOM ausgeliefert. Dadurch startet `@echo off` unter cmd.exe wieder korrekt und es erscheint kein `´╗┐@echo` mehr.
- Funktionsumfang von 2.1.0-test unverändert.
## 2.1.2-test - 10.09.2026
- Neues modernes Dashboard/Cockpit mit Schnellaktionen, Kennzahlen, Aufgaben, Terminen, letzten Schießergebnissen und ClubShot-Hinweisen.
- Neues internes Hinweis- und Erinnerungscenter ohne E-Mail-Versand; Hinweise u. a. für überfällige Aufgaben, auslaufende Lizenzen, offene Beiträge, offene Schlüssel, Geburtstage und anstehende Veranstaltungen.
- Mitglieder-Timeline deutlich erweitert: Mitgliedschaft, Vorstandsämter, Lizenzen, Hofstaat, Ehrungen, Schlüssel, Schießergebnisse, Dokumente, Briefe und Veranstaltungen.
- Dokumentdesigner für Briefvorlagen: A4-Vorschau, Formatierungen, Platzhalter, Akzentfarbe, Dokumentstil, Fußzeile sowie Bild-Upload und eigener Briefkopf.
- Reverse-Proxy-Unterstützung für Synology/Nginx ergänzt; ProxyFix wird nur bei expliziter Aktivierung verwendet. Externe HTTPS-URL kann in den Einstellungen hinterlegt werden.
- ClubShot-Branding und updatefeste Ablage neuer Designer-Bilder unter user_content beibehalten.
- Kein E-Mail-Versand in dieser Version.
# ClubShot – Changelog
## 2.0.23-test - 10.09.2026
### Modernes ClubShot-Login
- Loginseite vollständig im ClubShot-Design neu aufgebaut.
- ClubShot-Produktlogo wird jetzt prominent auf der Anmeldung verwendet; das Vereinswappen steht nicht mehr im Vordergrund.
- Moderne responsive Zwei-Bereich-Ansicht für Desktop und kompakte mobile Darstellung ergänzt.
- Login-Felder, Statusmeldungen, Dark Mode und Sicherheits-Hinweis optisch überarbeitet.
- Sichtbaren Hinweis `admin / admin123` vollständig von der Anmeldung entfernt.
- Frische Installationen verwenden weiterhin ausschließlich den Ersteinrichtungsassistenten zur Anlage des ersten Administrators; es gibt kein Standard-Administratorkonto.
- Alte Standard-Seitentitel `SchützenDesk`, `SchuetzenDesk` und `Vereinsverwaltung` werden auch bei abweichender Groß-/Kleinschreibung automatisch auf `ClubShot` migriert.
- `admin123` bleibt lediglich intern auf der Liste zu schwacher Kennwörter und kann daher nicht als neues Administratorpasswort gewählt werden.
## 2.0.22-test - 10.09.2026
### Umbenennung zu ClubShot
- Produktname vollständig von SchützenDesk auf **ClubShot** umgestellt.
- Neues ClubShot-Logo als App-Logo und Windows-Icon integriert.
- Standard-Seitentitel, Login, Navigation, Einstellungen, Hinweise und Systemtexte auf ClubShot angepasst.
- Installer in `ClubShot-Installieren.ps1` und Launcher in `ClubShot-V2-starten.bat` umbenannt.
- Desktop-Verknüpfung heißt künftig `ClubShot.lnk` und verwendet das neue ClubShot-Icon.
- Windows-Firewallregel wird künftig als `ClubShot TCP <Port> - LAN` angelegt; alte SchuetzenDesk-Regeln werden beim Installer-Lauf mit bereinigt.
- Neue PostgreSQL-Installationen verwenden standardmäßig Datenbank und Benutzer `clubshot`.
- Neue Vollbackups heißen `ClubShot-Backup-...sdbackup` und verwenden das ClubShot-V2-Manifest.
- Bereits vorhandene `.sdbackup`-Dateien mit altem `SchuetzenDesk-V2-Backup`-Manifest bleiben wiederherstellbar.
- Neue Umgebungsvariablen `CLUBSHOT_HOST` und `CLUBSHOT_PORT`; alte `SCHUETZENDESK_*`-Variablen bleiben als Fallback kompatibel.
- Bestehende `db_config.json`, `runtime_config.json`, `user_content` und PostgreSQL-Daten werden bei Updates weiterhin nicht überschrieben.
## 2.0.21-test - 10.09.2026
### PostgreSQL-Vollbackup Laufzeitfehler behoben
- `current_user_is_admin()` aus den neuen Backup-Routen entfernt; diese Funktion existiert in ClubShot nicht.
- Administratorprüfung läuft weiterhin über den bereits vorhandenen zentralen `ADMIN_ONLY_ENDPOINTS`-Schutz.
- Security-Logging der neuen Backup-/Restore-Routen an die bestehende Signatur `log_security_event(conn, ...)` angepasst.
- Falschen Aufruf von `app_meta(...)` im Backup-Manifest entfernt.
- Backup-Manifest schreibt die aktuelle ClubShot-Version jetzt direkt.
- Neue Backup-Funktionen gegen die tatsächlich vorhandenen Helper-Funktionen in `app.py` geprüft.
## 2.0.20-test - 10.09.2026
### Backup-Template repariert
- Jinja2-Fehler `unknown tag 'else'` auf der Backupseite behoben.
- Doppelt eingefügten PostgreSQL-Backupblock aus V2.0.18/2.0.19 entfernt.
- PostgreSQL- und SQLite-Backupansicht sauber in einen einzigen `if/else/endif`-Block getrennt.
- Template zusätzlich mit dem Jinja2-Parser validiert.
## 2.0.19-test - 10.09.2026
### Backup-Seite repariert
- Internal Server Error beim Öffnen von `System -> Backup & Wiederherstellung` behoben.
- Ursache: Die neuen V2-Backupfunktionen referenzierten fälschlich `db_backend.is_postgres()` bzw. `db_backend.load_config()`, obwohl diese Funktionen direkt importiert werden.
- Backupseite und V2-Vollbackup verwenden jetzt korrekt `is_postgres()` und `load_config()`.
- Zusätzlich alle verbliebenen `db_backend.`-Referenzen in `app.py` geprüft und entfernt.
## 2.0.18-test - 10.09.2026
### Ein-Datei-V2-Vollbackup (.sdbackup)
- Neues V2-Backupformat `.sdbackup`: PostgreSQL-Dump und kompletter Ordner `user_content` in einer einzigen Datei.
- PostgreSQL wird weiterhin nativ mit `pg_dump -Fc` gesichert; der Dump wird vor Abschluss mit `pg_restore --list` validiert.
- Backup-Bundle enthält `manifest.json`, `database.pgdump` und `user_content/`.
- PostgreSQL-Zugangsdaten und `db_config.json` werden bewusst nicht in das portable Backup aufgenommen.
- Restore akzeptiert eine einzelne `.sdbackup`-Datei und prüft ZIP-Struktur, Pfade, Manifest und PostgreSQL-Dump vor Änderungen.
- Vor jedem Restore wird automatisch ein neues `.sdbackup` des aktuellen Zustands als Rückfallsicherung erstellt.
- Nach erfolgreichem Datenbank-Restore wird `user_content` vollständig durch den Stand des Backups ersetzt.
- PostgreSQL-Backupoberfläche auf das neue Ein-Datei-Verfahren umgestellt.
- Alte SQLite-Backupoberfläche wird im PostgreSQL-Betrieb nicht mehr parallel angezeigt.
## 2.0.17-test - 10.09.2026
### LAN-Firewallregel korrigiert
- Programmbindung der automatischen Windows-Firewallregel an `.venv\Scripts\python.exe` entfernt.
- Fehler im Praxistest bestätigt: Waitress lauschte korrekt, das Netzwerkprofil war `Private`, aber die programmspezifische Regel blockierte den LAN-Zugriff.
- Die Firewallregel erlaubt jetzt nur den gewählten TCP-Port für `Domain` und `Private`.
- `Public` bleibt geschlossen.
- Keine zusätzlichen UDP-Ports oder ausgehenden Regeln erforderlich.
## 2.0.16-test - 10.09.2026
### Firewallprofil weiter gehärtet
- Public-Firewallfreigabe aus V2.0.15 wieder entfernt.
- ClubShot öffnet den gewählten TCP-Port automatisch nur für `Domain` und `Private`.
- Der Installer prüft aktive Windows-Netzwerkprofile über `Get-NetConnectionProfile`.
- Wird ein aktives Profil als `Public` erkannt, erscheint ein deutlicher Hinweis, das vertrauenswürdige Server-LAN auf `Privat` bzw. `Domain` zu setzen.
- Die Windows-Firewall muss für den LAN-Zugriff nicht deaktiviert werden.
- ClubShot-Icon und automatische Anzeige der lokalen IPv4-Adressen aus V2.0.15 bleiben enthalten.
## 2.0.15-test - 10.09.2026
### Desktop-Icon und LAN-Erreichbarkeit
- Echte Windows-Icondatei `logo.ico` aus dem ClubShot-Logo erzeugt und in das Paket aufgenommen.
- Desktop-Verknüpfung verwendet dadurch das ClubShot-Icon statt des Python-Symbols.
- Waitress-Start zeigt automatisch erkannte lokale IPv4-Adressen als direkt nutzbare Netzwerk-URLs an.
- Firewallkonfiguration erweitert: Domain/Private erlauben den gewählten TCP-Port wie bisher.
- Zusätzlich wird für das Windows-Profil `Public` eine eigene Regel erzeugt, jedoch bewusst mit `RemoteAddress LocalSubnet`.
- Dadurch funktioniert der LAN-Zugriff auch dann, wenn Windows Server die Netzwerkkarte als öffentlich klassifiziert, ohne den ClubShot-Port im Public-Profil pauschal für fremde Netze zu öffnen.
- Alte von ClubShot erzeugte Portregeln werden bei der Installation vor dem Neuaufbau entfernt.
## 2.0.14-test - 10.09.2026
### Python-Erkennung bei Erstinstallation korrigiert
- Fehler behoben, bei dem Python nach einer Installation während des bereits laufenden ClubShot-Installers trotz ENTER weiterhin nicht erkannt wurde.
- Machine- und User-PATH werden nach jeder Installationsrunde neu in den aktuellen PowerShell-Prozess geladen.
- Zusätzlich direkte Suche unter `%LOCALAPPDATA%\Programs\Python`, `Program Files\Python` und `Program Files (x86)\Python`.
- Konkrete Fallbacks für Python 3.11 bis 3.15.
- `py.exe -3` wird als Python-Launcher unterstützt.
- Jeder Kandidat wird real ausgeführt und auf Python >= 3.11 geprüft; Microsoft-Store-/App-Execution-Aliase werden dadurch nicht fälschlich akzeptiert.
- Der verwendete Interpreter und die erkannte Version werden im Installer angezeigt.
- Venv-Erstellung verwendet exakt den zuvor erfolgreich geprüften Interpreter.
## 2.0.13-test - 10.09.2026
### Bereinigtes V2-Paket und neue Installationsdokumentation
- Alte v1-Startdatei `ClubShot-starten.bat` aus dem V2-Paket entfernt.
- Alte `ClubShot-Verknuepfung.ps1` aus dem V2-Paket entfernt; die Desktop-Verknüpfung wird vom aktuellen Erstinstaller erzeugt.
- Veraltete PostgreSQL-Setupskripte aus dem V2-Paket entfernt.
- Für eine Neuinstallation gibt es damit nur noch einen eindeutigen Installer: `ClubShot-Installieren.ps1`.
- Regulärer Start bleibt eindeutig `ClubShot-V2-starten.bat` -> `server.py` -> Waitress.
- Installationsanleitung vollständig neu aufgebaut und auf den aktuellen V2-Installationsablauf reduziert.
- Neue PDF-Installationsanleitung V2.0.13-test erstellt.
## 2.0.12-test - 10.09.2026
### Desktop-Verknüpfung
- Erstinstaller erstellt nach erfolgreicher Einrichtung wieder automatisch `ClubShot.lnk` auf dem Desktop des aktuell angemeldeten Windows-Benutzers.
- Ziel der Verknüpfung ist der produktive Launcher `ClubShot-V2-starten.bat`.
- Arbeitsverzeichnis wird explizit auf den ClubShot-Installationsordner gesetzt.
- Installer prüft nach dem Speichern, ob die `.lnk` tatsächlich vorhanden ist, und gibt eine Erfolgs- oder Warnmeldung aus.
- Vorhandene `logo.ico` wird als Verknüpfungssymbol verwendet; andernfalls dient die Python-Executable als technischer Icon-Fallback.
- Fehler bei der Desktop-Verknüpfung verhindern nicht die eigentliche ClubShot-Installation.
## 2.0.11-test - 10.09.2026
### Variabler Webport und Windows-Firewall
- Erstinstallation fragt nach dem ClubShot-Webport; leere Eingabe verwendet weiterhin TCP 5000.
- Erlaubter Portbereich im Assistenten: 1024 bis 65535.
- Gewählter Port wird persistent in `runtime_config.json` gespeichert und von `server.py`/Waitress verwendet.
- Installer legt bei administrativer Ausführung automatisch eine eingehende Windows-Firewallregel für den gewählten Port an.
- Firewallfreigabe gilt bewusst nur für die Profile `Domain` und `Private`, nicht für `Public`.
- Firewallregel wird zusätzlich auf `.venv\Scripts\python.exe` beschränkt.
- Bei einer Portänderung werden ausschließlich zuvor von ClubShot angelegte Regeln (`ClubShot TCP ...`) ersetzt.
- Ohne Administratorrechte wird die Installation nicht unnötig abgebrochen; es erscheint ein klarer Hinweis, dass die Firewallfreigabe manuell erfolgen muss.
- Launcher zeigt keine fest verdrahtete Port-5000-Adresse mehr; Waitress gibt die tatsächlich verwendete Adresse aus.
## 2.0.10-test - 10.09.2026
### PostgreSQL Backup / Restore
- Native PostgreSQL-Sicherung mit `pg_dump` im Custom-Format (`.pgdump`) ergänzt.
- `user_content` wird passend zur Datenbanksicherung separat als ZIP gesichert.
- Sicherungen werden unter `backups/postgresql/` mit Metadaten abgelegt.
- PostgreSQL-Sicherungen können im Backup-Bereich heruntergeladen werden.
- Wiederherstellung vorhandener `.pgdump`-Sicherungen ergänzt.
- Externe `.pgdump`-Dateien können hochgeladen und wiederhergestellt werden; optional kann das zugehörige `user_content`-ZIP mitgegeben werden.
- Vor jedem Restore wird automatisch eine Sicherheitskopie des aktuellen Datenbank- und Dateistands erzeugt.
- Restore verwendet `pg_restore --clean --if-exists --no-owner --no-privileges`.
- PostgreSQL-Kennwort wird nur über die Prozessumgebung an `pg_dump`/`pg_restore` übergeben und nicht als Kommandozeilenargument geschrieben.
- ZIP-Wiederherstellung enthält Schutz gegen Pfadmanipulation (Zip-Slip).
- PostgreSQL-Backup-/Restore-Endpunkte sind ausschließlich für Administratoren vorgesehen.
### Hinweis
- V2.0.10-test ist weiterhin eine Testversion. Der PostgreSQL-Restore sollte vor einer produktiven Freigabe auf Windows mit realen Vereinsdaten end-to-end getestet werden.
## 2.0.9-test - 10.09.2026
### Neuinstallationsassistent und produktiver Start
- Startdatei startet nun eindeutig `server.py` und damit Waitress; der Flask-Development-Server wird im regulaeren Start nicht verwendet.
- Startkonsole zeigt explizit `Produktionsserver: Waitress` und die lokale Browseradresse.
- Neuinstallationsassistent prueft Python 3.11+ und PostgreSQL vor der Einrichtung.
- Fehlt Python, wird die offizielle Python-Windows-Downloadseite geoeffnet. Nach der Installation kann mit ENTER erneut geprueft und direkt weitergemacht werden.
- Fehlt PostgreSQL, wird die offizielle PostgreSQL-Windows-Downloadseite geoeffnet. Nach der Installation kann mit ENTER erneut geprueft und direkt weitergemacht werden.
- Der Installer aktualisiert nach einer Python-Installation den PATH der laufenden PowerShell und erkennt auch typische Python-3.14-Pfade.
- Mit `Q` kann die jeweilige Warteschleife abgebrochen werden.
- Eine vorhandene `db_config.json` wird vom Neuinstallationsassistenten nicht ueberschrieben; damit wird ein versehentliches Zuruecksetzen einer bestehenden V2-Datenbankkonfiguration verhindert.
- Die Windows/Python-3.14-Korrektur fuer die ACL-Haertung aus V2.0.8 bleibt enthalten.
## 2.0.8-test - 10.09.2026
### Windows/Python 3.14 Kompatibilität
- Störende `UnicodeDecodeError`-Threadmeldungen beim Absichern von `db_config.json` unter Windows beseitigt.
- Die Ausgabe von `icacls` wird nicht mehr als lokalisierter Text durch Python dekodiert, da sie für ClubShot nicht benötigt wird.
- Verhindert insbesondere CP1252/Unicode-Decodierungsfehler auf deutschen Windows-Servern mit Python 3.14.
- Die eigentliche DPAPI-Verschlüsselung und ACL-Härtung bleiben unverändert.
## 2.0.7-test - 10.09.2026
### Installer-Härtung
- Windows-Installer erkennt Python jetzt über `py.exe`, `python.exe` und typische Installationspfade.
- Der Microsoft-Store-App-Alias wird nicht mehr irrtümlich als funktionierende Python-Installation akzeptiert.
- Fehlt Python, beendet sich der Installer sauber vor dem Erstellen der virtuellen Umgebung und zeigt konkrete nächste Schritte an.
- PostgreSQL-Erkennung und Fehlermeldungen wurden verständlicher gemacht.
- Installationsskript wird mit UTF-8-BOM ausgeliefert, damit Windows PowerShell 5.1 deutsche Texte korrekt darstellt.
- Installationsanleitung überarbeitet: die drei PowerShell-Befehle werden ausdrücklich einzeln und nicht direkt hintereinander dargestellt.
## 2.0.6-test – 10.09.2026
### Produktions- & Security-Basis
- Waitress als regulärer WSGI-Server.
- Vereinfachtes Windows-Installationsskript `ClubShot-Installieren.ps1`.
- Kein Standardkonto `admin/admin123`; sichere browserbasierte Ersteinrichtung.
- Administratorkonten erzwingen MFA; Issuer aus Vereinsname.
- Passwort-Basisrichtlinie auf mindestens 12 Zeichen vereinheitlicht.
- PostgreSQL-Appkennwort per Windows-DPAPI geschützt; NTFS-ACL gehärtet.
- PostgreSQL-Approlle ohne Superuser-/CreateDB-/CreateRole-/Replication-Rechte.
- Berechtigungs-Härtung für sensible Admin-Endpunkte und Logging verweigerter Zugriffe.
- Neues Security-Log.
- Dateisignatur-/Größenprüfung für zentrale Uploads.
- Einstellungen zeigen den Kennwortspeicher an.
- `SECURITY_AUDIT.md` ergänzt.
## 2.0.5-test – 10.09.2026
### Behoben
- PostgreSQL: Mitgliederliste und Liste ehemaliger Mitglieder funktionieren mit den als ISO-Text gespeicherten Vorstands-Datumsfeldern.
- SQLite-Ausdruck `date('now')` wird im PostgreSQL-Adapter kompatibel als ISO-Datumstext (`YYYY-MM-DD`) übersetzt.
- Dieselbe Kompatibilitätskorrektur greift auch für weitere Abfragen, die `date('now')` verwenden.
### Neu
- Einstellungen zeigen einen Bereich **Datenbank** für Troubleshooting.
- Angezeigt werden Backend, Datenbankserver, Port, Datenbankname, Benutzername und PostgreSQL-Serverversion.
- Das Datenbankkennwort wird ausdrücklich nicht angezeigt.
## 2.0.4-test – 10.09.2026
### Behoben
- PostgreSQL-Migration: Prozentzeichen in der Sequenzermittlung für psycopg korrekt escaped.
- Die abschließende Suche nach `nextval(...)`-Spalten bricht nicht mehr mit `ProgrammingError: only '%s', '%b', '%t' are allowed as placeholders` ab.
- ID-Sequenzen können nach der SQLite-Datenübernahme vollständig synchronisiert werden.
### Verbessert
- Der PostgreSQL-Migrationslauf kann nach erfolgreicher Datenkopie nun bis zur abschließenden Sequenzkorrektur durchlaufen.
## 2.0.3-test – 10.09.2026
### Behoben
- PostgreSQL-Kompatibilität: Die `lastrowid`-Ermittlung prüft vor `pg_get_serial_sequence()` nun, ob die Zieltabelle tatsächlich eine `id`-Spalte besitzt.
- `INSERT ... ON CONFLICT` in Tabellen ohne `id`-Spalte, insbesondere `app_meta`, verursacht dadurch keinen `UndefinedColumn`-Fehler mehr.
- SQL mit eigener `RETURNING`-Klausel wird nicht zusätzlich über die Kompatibilitätsroutine ausgewertet.
### Verbessert
- Sequenz-/ID-Kompatibilität zwischen SQLite und PostgreSQL robuster umgesetzt.
## 2.0.2-test – 10.09.2026
### Behoben
- PostgreSQL-Initialisierung bricht nicht mehr durch ein blindes `SELECT lastval()` bei Tabellen ohne Sequenz ab.
- PostgreSQL-Zeilen unterstützen jetzt wie `sqlite3.Row` sowohl Spaltennamen als auch numerische Indizes.
- Mitgliedsnummern werden in PostgreSQL wie in der stabilen v1.x-Linie nicht technisch UNIQUE erzwungen.
- SQLite-Übernahme benötigt nicht mehr `session_replication_role=replica` und damit keine PostgreSQL-Superuser-Rechte.
- Tabellen werden anhand ihrer Fremdschlüsselabhängigkeiten in einer sicheren Reihenfolge geleert und importiert.
- Sequenzen werden nach dem Import korrekt auf die übernommenen IDs gesetzt.
### Verbessert
- SQL-Fehler zeigen jetzt sofort den betroffenen PostgreSQL-Befehl und den ursprünglichen Fehler an, statt erst einen `InFailedSqlTransaction`-Folgefehler zu melden.
- Migrationsausgabe wurde in Schema-Initialisierung, Leeren und Datenkopie gegliedert.
### Sicherheit
- `verein.db` bleibt bei der Migration weiterhin unverändert und dient ausschließlich als Quelle.
## 2.0.1-test – 10.09.2026
### Verbessert
- Windows-Setup für lokal oder extern installiertes PostgreSQL ohne Docker.
- Automatische Anlage von Datenbank und eigenem ClubShot-Datenbankbenutzer.
- Separater PostgreSQL-Verbindungstest.
- Anleitung für Installation, Datenkopie und Rückkehr zur unveränderten v1.x ergänzt.
### Sicherheit
- V2 bleibt eine isolierte Testlinie; die SQLite-Quelldaten werden bei der Migration nicht verändert.
- SQLite-basierte Backup-Automatik wird im PostgreSQL-Testbetrieb nicht ausgeführt.
## 2.0.0-test – 10.09.2026
### Experimentell
- Separate PostgreSQL-Testlinie; v1.x bleibt unverändert.
- Externe Datenbank über `db_config.json`.
- Kopiermigration aus `verein.db`, ohne die SQLite-Quelle zu verändern.
- Docker-/Windows-Testsetup und Installationsanleitung.
## 1.25.2 – 10.09.2026
### Verbessert
- Desktop-Seitenmenü ist jetzt fest am linken Bildschirmrand fixiert und scrollt unabhängig vom Seiteninhalt.
- Beim Öffnen eines Menübereichs werden andere aufgeklappte Bereiche automatisch geschlossen (Accordion-Verhalten).
- Beim Seitenwechsel wird der aktuell verwendete Menübereich automatisch geöffnet; andere Bereiche bleiben geschlossen.
- Die Position des aktiven Menübereichs bleibt im sichtbaren Bereich der Seitenleiste besser erreichbar.
## 1.25.1 – 10.09.2026
### Behoben
- Digitale Unterschrift bei Sporturkunden: Unterschriftenfeld wird nach Aktivieren des Hakens zuverlässig eingeblendet.
- Zeichnen per Maus, Touchpad, Stift und Touch über Pointer Events verbessert.
- Die Unterschrift wird vor dem PDF-Aufruf sicher in das Formular übernommen; leere Unterschriften werden bereits im Browser abgefangen.
- Benutzer ohne Leserecht für „System & Einstellungen“ sehen das System-Menü nicht mehr. Die serverseitige Zugriffssperre bleibt zusätzlich bestehen.
### Verbessert
- „Mein Konto / Passwort“ bleibt unabhängig vom Systemrecht erreichbar, damit Benutzer ihr eigenes Passwort verwalten können.
## 1.25.0 – 09.09.2026
### Neu
- Bereichsbasiertes Rechtesystem mit „Kein Zugriff“, „Nur lesen“ und „Lesen & schreiben“.
- Benutzerprofile um E-Mail, MFA-Pflicht, letzten Login, letzte Passwortänderung, Aktivstatus und Administratorstatus erweitert.
- MFA-Pflicht kann je Benutzer erzwungen werden.
## 2.1.15-test
- Production-Readiness-Systemampel mit Prüfungen für Dienst, Datenbank, HTTPS, Sessions, MFA, Break-Glass, Backup, Speicher und Audit.
- Login-Schutz erweitert: kontobezogene Sperre nach Fehlversuchen und administrative Freigabe in der Benutzerverwaltung.
- Konfigurierbarer Auto-Logout nach Inaktivität (15/30/60/120/240 Minuten).
- Automatische Backups zusätzlich stündlich oder alle 30 Minuten planbar; individuelle Uhrzeiten bleiben möglich.
- Audit-Log um Sicherheitsereignisse, Suche und Kategorien erweitert; Benutzer- und Einstellungsänderungen werden zusätzlich protokolliert.
- Integrierter Hilfe-&-Support-Bereich mit Kurzanleitungen und FAQ.
- Öffentlich erreichbares Impressum mit Anbieterangaben und rechtlichen Hinweisen.
Keine Treffer
Versuche einen allgemeineren Suchbegriff oder lösche die Suche.