# Datensicherung, Datenspeicherung und Updates

Wartungsfunktionen sichern Daten, prÃ¼fen Speicherorte und halten die Anwendung aktuell.

## Zweck

Datensicherung erstellt ZIP-Backups aus Datenbank, Uploads und Kundenablage. Datenspeicherung zeigt die aktive Speicherart und Datenpfade. Programmupdates prÃ¼fen ein Update-Manifest und fÃ¼hren portable Updates aus.

Windows portable Installationen und Linux-Serverinstallationen verwenden getrennte Updatepfade. Windows nutzt standardmäßig `update.json`, Linux nutzt `linux-update.json` und das Skript `update-a4w-linux.sh`.

## Typische Nutzung

1. Vor Import, Update oder grÃ¶ÃŸerer Datenpflege ein manuelles Backup erstellen.
2. Automatische Sicherung aktivieren und Protokoll kontrollieren.
3. Bei Problemen Backup zunÃ¤chst prÃ¼fen, dann wiederherstellen.
4. Speicherart und IntegritÃ¤t regelmÃ¤ÃŸig kontrollieren.
5. UpdateprÃ¼fung starten und Hinweise im Updatebereich lesen.

Datensicherung: Backup erstellen, Sicherung prüfen und Restore bewusst auslösen.

## Wichtige Felder

Bereich | Bedeutung
--- | ---
Manuelle Sicherung | Erstellt sofort ein vollstÃ¤ndiges Backup.
Automatische Sicherung | Fuehrt Sicherungen abhaengig von Intervall, Uhrzeit, Nachholregel, Speicherort und Aufbewahrungsgrenze aus. Optional wird nur gesichert, wenn sich Daten seit der letzten erfolgreichen Sicherung geändert haben.
Backup wiederherstellen | Spielt Daten aus einer Sicherung zurÃ¼ck.
Datenspeicherung | Zeigt Speicherart, Datenpfade, Migration und IntegritÃ¤tsstatus.
Programmupdates | PrÃ¼ft Version, lÃ¤dt Updatepaket und startet den Updateablauf.

## Windows portable Erstinstallation

1. ZIP-Paket in einen eigenen Programmordner entpacken, nicht direkt in den Download-Ordner.
2. Startdatei aus dem entpackten Ordner ausführen und beim ersten Start den Administrator anlegen.
3. Danach einen Startweg wählen: Firma selbst anlegen, Daten importieren oder Demo-Musterdaten unter Datensicherung laden.
4. Datenordner und Kundenablage bewusst wählen, wenn die Installation auf einem Netzlaufwerk oder einer gesicherten Platte liegen soll.
5. Vor jedem Update ein Backup erstellen. Das Windows-Updatepaket ersetzt Programmdateien, aber nicht den Datenordner.

Portable Windows-Installationen sind besonders einfach zu sichern: Programmordner, Datenordner und Lizenzdatei sollten gemeinsam in das Sicherungskonzept aufgenommen werden.
Wenn E-Mail-Versand eingerichtet ist, gehoert auch `App_Data\a4w-secrets.key` zum Datenbestand. Diese Datei schuetzt lokal gespeicherte SMTP-Passwoerter und wird vom A4W-Vollbackup mitgesichert.

## Demo-Musterdaten laden

Unter Datensicherung > Demo-Musterdaten zeigt A4W lokale Demo-Backups aus `DemoBackups` und online verfügbare Demo-ZIPs aus `https://hro-netz.de/software/download/A4W-Auftrag4Works/Demo-Backups/`. Online-Demos werden zuerst lokal heruntergeladen, dann wie jedes Backup geprüft und erst nach Eingabe des Sicherheitsworts wiederhergestellt.

Optional kann im Online-Ordner eine `demo-backups.json` liegen. Ohne Manifest versucht A4W, ZIP-Dateien aus einer einfachen Index-/Verzeichnisliste zu erkennen.

Die Prüfung zeigt enthaltene Login-Benutzer aus dem Backup und die aktuell vorhandenen Login-Benutzer nebeneinander. Die Option Aktuelle aktive Login-Benutzer nach dem Restore erhalten ist standardmäßig aktiv, damit man sich nach einem Restore nicht aussperrt. Für normale Backups lautet das Sicherheitswort `WIEDERHERSTELLEN`, für Demo-Musterdaten `DEMO`.

Demo-Backup-Prüfung: enthaltene Login-Benutzer, aktuelle Login-Benutzer und Restore-Option vor dem Überschreiben kontrollieren.

## Datenspeicherung und SQLite-Migration

Die Datenspeicherung zeigt aktive und gewünschte Speicherart, Datendatei, Größen von Kundenablage, Uploads und Anhängen sowie eine Datensatzübersicht. JSON-Dateien bleiben der Standard. SQLite ist als lokale Einzelplatzdatenbank verfügbar; MySQL, SQL Server und PostgreSQL sind als spätere Zielarten vorbereitet.

1. Gewünschte Speicherart und Pfade speichern. Dadurch wird noch nicht aktiv umgeschaltet.
2. Verbindung testen und eine Migrationsvorschau erstellen.
3. JSON nach SQLite migrieren. Die JSON-Daten bleiben aktiv, bis die Umschaltung bestaetigt wird.
4. Mit dem Sicherheitswort `SQLITE AKTIVIEREN` SQLite aktivieren.
5. Bei Bedarf mit `ZURUECK ZU JSON` wieder nach JSON migrieren.

Vor jeder Speicherumstellung ein Vollbackup erstellen. Dokumente, PDFs, Logos, Uploads und Kundenablage sollten im Dateisystem bleiben, damit Backups und Ablagepfade nachvollziehbar bleiben.

## Linux-Server Erstinstallation

Für Ubuntu/Plesk-Server liegt im Deploy-Ordner das Skript `install-a4w-linux.sh`. Es prüft typische Voraussetzungen, installiert auf Wunsch die ASP.NET Core Runtime 8, legt Dienstdatei und Datenordner an und schreibt eine Installationszusammenfassung.

Prüfung | Hinweis
--- | ---
Ubuntu und Root/Sudo | Der Installer ist für Ubuntu vorbereitet und muss mit ausreichenden Rechten laufen.
.NET Runtime und native Bibliotheken | Fehlende Bibliotheken wie ICU, SSL, zlib oder GSSAPI werden soweit möglich per APT ergänzt.
Plesk/Nginx | Der Installer erkennt Plesk und gibt passende Direktiven aus. In Plesk muss der Proxy-Modus je nach Domainkonfiguration geprüft und die Direktive bewusst eingetragen werden.
Systemd-Dienst | A4W wird als Dienst gestartet, damit die Anwendung nach Neustarts wieder erreichbar ist.
HTML-PDF-Browser | Für Beleg-PDFs und Abschluss-PDFs wird Chromium, Chrome oder Edge im Headless-Modus benötigt. Der Installer sucht danach und kann unter Ubuntu Chromium nachinstallieren.

Der Installer automatisiert die sicheren Standardschritte, schreibt aber Plesk-Domainkonfigurationen nicht ungefragt um. Unterschiedliche Plesk-Templates, Apache/Nginx-Modi und Domainarten können sonst eine funktionierende Domain stören.
Nach der Erstinstallation die Datei `A4W_INSTALLATION_HINWEISE.txt` im Installationsordner lesen. Sie enthält Dienstname, Port, Datenpfad, Plesk-Hinweise und den nächsten Prüfschritt.
Wenn auf Linux kein Chromium/Chrome gefunden wird, speichert A4W Abschlüsse weiterhin als HTML und CSV, erzeugt aber kein stilles Text-Ersatz-PDF mehr. Installieren Sie dann `chromium` oder setzen Sie im Dienst `A4W_PDF_BROWSER=/voller/pfad/zum/browser`.

## Programmupdates unter Windows und Linux

Unter Windows laedt die Anwendung das Windows-Updatepaket aus `update.json`. Unter Linux soll das Manifest `linux-update.json` verwendet werden. Die Anwendung verhindert, dass ein offensichtlich falsches Plattformpaket installiert wird.

Auf Linux-Servern laedt die Programmupdate-Seite das Paket in den Updateordner. Danach wird serverseitig `sudo bash update-a4w-linux.sh` ausgeführt. Das Skript sucht bei Bedarf das neueste Linux-ZIP, erstellt ein Programmdatei-Backup, prüft Werkzeuge wie `rsync`, `sha256sum`, `unzip` und startet den Dienst nach dem Kopieren neu.

Vor Updates immer ein Datenbackup erstellen und danach Version, Dienststatus und Browseraufruf prüfen. Bei Linux/Plesk zusätzlich die Update-Logdatei unter `/var/backups/a4w` kontrollieren.

## Restore zwischen Windows und Linux

Backups können Daten und Einstellungen aus einer anderen Umgebung enthalten. Wenn ein Windows-Backup auf Linux wiederhergestellt wird, korrigiert A4W bekannte Standard-Updateadressen auf das Linux-Manifest `linux-update.json`. Eigene benutzerdefinierte Manifestadressen bleiben erhalten.

Damit bleibt der Restore flexibel: Standardpfade werden passend zur Plattform repariert, bewusst eigene Updatefeeds werden nicht überschrieben.

## Lizenz und Updateberechtigung

Updates können an eine Updateberechtigung der Lizenz gebunden sein. Bei einer Lifetime-Lokal-Lizenz bedeutet das: Die erworbene Version darf dauerhaft genutzt werden, neue Updates können aber nur bis zum hinterlegten Update-bis-Datum installiert werden. Nach Ablauf kann die Updateberechtigung optional verlängert werden.

## AbhÃ¤ngigkeiten

Backups betreffen alle Module: Kunden, Artikel, Belege, Zahlungen, Uploads, Kundenablage und geschuetzte lokale Geheimnisse wie SMTP-Zugangsdaten. Updates dÃ¼rfen den Datenordner nicht Ã¼berschreiben.

## Fehlerquellen und Voraussetzungen

Eine Wiederherstellung ersetzt vorhandene Daten durch den Sicherungsstand. Vorher aktuellen Stand sichern, wenn noch etwas aufbewahrt werden soll.
Der Hilfeordner wird mit dem Programm ausgeliefert und ist Teil des Publish-/Updatepakets. Ã„nderungen an der Hilfe sind deshalb normale Programmdatei-Ã„nderungen.