← Alle Module |
D
Deployment
Betrieb & Installation

Deployment

Minimale Anleitung zur Inbetriebnahme des IuK-Backend-Servers β€” getrennt nach Linux (systemd) und Windows (Installations-Assistent), plus Hinweise zur Datensicherung.

Hinweis: Diese Anleitung deckt nur die minimale Inbetriebnahme ab. FΓΌr Produktivbetrieb mit HTTPS, Basic-Auth und WAF-Schutz siehe Sicherheit & Deployment.
🐧

Linux

Schritt-fΓΌr-Schritt-Anleitung fΓΌr Debian/Ubuntu mit systemd

1
Voraussetzungen

Ein Debian- oder Ubuntu-System mit root- bzw. sudo-Zugriff.

2
System-Benutzer & Verzeichnisse anlegen

Der Dienst lΓ€uft als eigener, unprivilegierter Benutzer ohne Login-Shell.

# Systembenutzer ohne Home-Verzeichnis und ohne Login anlegen
sudo useradd --system --no-create-home --shell /usr/sbin/nologin iuk-backend

# Verzeichnisstruktur anlegen
sudo mkdir -p /opt/iuk-backend/{data,uploads,logs}
sudo chown -R iuk-backend:iuk-backend /opt/iuk-backend
3
Binary und Lizenz kopieren

Das Server-Binary entsteht lokal ΓΌber make build (Ergebnis unter bin/linux/server). Zusammen mit der Lizenzdatei nach /opt/iuk-backend kopieren.

sudo cp bin/linux/server /opt/iuk-backend/server
sudo cp license_*.lic /opt/iuk-backend/
sudo chmod +x /opt/iuk-backend/server
sudo chown iuk-backend:iuk-backend /opt/iuk-backend/server /opt/iuk-backend/license_*.lic
4
Konfiguration vorbereiten

Die systemd-Unit aus Schritt 5 nutzt ProtectSystem=strict und gibt nur data/, uploads/ und logs/ als beschreibbar frei (ReadWritePaths) β€” der Rest von /opt/iuk-backend ist zur Laufzeit read-only.

Beim allerersten Start wΓΌrde die Anwendung automatisch eine config.json mit dem Standardwert database_file: "database.sqlite" im Wurzelverzeichnis anlegen wollen β€” das schlΓ€gt unter ProtectSystem=strict fehl, da das Wurzelverzeichnis nicht beschreibbar ist.

LΓΆsung: Vor dem ersten Start eine eigene config.json ablegen, die die Datenbank in den beschreibbaren data/-Unterordner verweist:

/opt/iuk-backend/config.json
{
  "database_file": "data/database.sqlite"
}
sudo chown iuk-backend:iuk-backend /opt/iuk-backend/config.json
5
systemd-Service einrichten

Die fertige Service-Unit liegt unter server/deployment/iuk-backend.service.

sudo cp server/deployment/iuk-backend.service \
    /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now iuk-backend
6
Erreichbarkeit prΓΌfen
systemctl status iuk-backend
● iuk-backend.service - IuK Backend
     Active: active (running) ...

curl http://localhost:3000
7
Demo-Daten laden (optional)

Erleichtert den Einstieg und das Ausprobieren β€” legt einen Demo-Mandanten mit Beispieldaten an.

sudo systemctl stop iuk-backend
sudo -u iuk-backend /opt/iuk-backend/server -seed
sudo systemctl start iuk-backend
Für Netzwerkzugriff und Produktivbetrieb: Einen Reverse-Proxy mit HTTPS und Basic-Auth gemÀß Sicherheit & Deployment einrichten.
πŸͺŸ

Windows

Kurzfassung β€” Details siehe server/deployment/windows/README.md

1
Voraussetzungen

Windows 10 / Windows Server 2016 oder neuer, PowerShell 5.0 oder neuer, Administratorrechte sowie eine gΓΌltige Lizenzdatei (license_*.lic).

2
Dateien vorbereiten

server.exe, install.ps1 und die Lizenzdatei license_*.lic in einem gemeinsamen Ordner ablegen (z. B. C:\Temp\iuk-backend-install).

3
Installation starten

install.ps1 als Administrator ausfΓΌhren. Der interaktive Assistent fragt das Installationsverzeichnis (Standard C:\iuk-backend) und den Port (Standard 3000) ab und erkennt die Lizenzdatei automatisch im selben Ordner.

cd C:\Temp\iuk-backend-install
.\install.ps1
4
Service prΓΌfen
Get-Service iuk-backend
5
Demo-Daten laden (optional)
Stop-Service iuk-backend
cd C:\iuk-backend
.\server.exe -seed
Start-Service iuk-backend
Update, Deinstallation und weitere Details: siehe server/deployment/windows/README.md im Repository. Die Konzepte fΓΌr HTTPS und Basic-Auth im Produktivbetrieb gelten analog zur Linux-Anleitung β€” siehe Sicherheit & Deployment.
πŸ’Ύ

Backup

RegelmÀßige Datensicherung der SQLite-Datenbank

Linux

Das Skript server/deployment/backup.sh nutzt das sqlite3-Kommando .backup fΓΌr eine konsistente Online-Sicherung β€” das funktioniert auch im laufenden Betrieb mit aktivem WAL-Journal. Danach prΓΌft das Skript die IntegritΓ€t der Sicherung (PRAGMA integrity_check), komprimiert sie mit gzip und entfernt alte Backups, die die Aufbewahrungsfrist ΓΌberschreiten (IUK_BACKEND_BACKUP_RETENTION, Standard 30 Tage).

Das Skript einmalig nach /opt/iuk-backend/backup.sh kopieren. FΓΌr den tΓ€glichen automatischen Lauf um 03:00 Uhr als Benutzer iuk-backend die Pfade explizit ΓΌber Umgebungsvariablen setzen:

# sudo crontab -u iuk-backend -e
IUK_BACKEND_DATABASE_FILE=/opt/iuk-backend/data/database.sqlite
IUK_BACKEND_BACKUP_DIR=/opt/iuk-backend/backups
0 3 * * * /opt/iuk-backend/backup.sh >> /opt/iuk-backend/logs/backup.log 2>&1

Alternativ als Datei /etc/cron.d/iuk-backend-backup ablegen (dort zusΓ€tzlich den Benutzer in der Cron-Zeile angeben).

Wichtig: Die Pfade mΓΌssen explizit gesetzt werden β€” die Default-Werte im Skript selbst lauten noch /opt/rk/... (Γ€ltere Verzeichniskonvention) und passen nicht zur systemd-Unit, die mit /opt/iuk-backend/... arbeitet.

Windows

Ein vorgefertigtes Backup-Skript existiert fΓΌr Windows nicht. Über die Windows-Aufgabenplanung (Taskplaner bzw. schtasks) lΓ€sst sich ein regelmÀßiger Aufruf von sqlite3.exe mit dem .backup-Befehl einrichten β€” nicht die Datenbankdatei einfach kopieren, da dabei das WAL-Journal inkonsistent mitkopiert werden kann.

sqlite3.exe C:\iuk-backend\data\database.sqlite ".backup 'C:\iuk-backend\backups\database_backup.sqlite'"

Wiederherstellung

Dienst stoppen, die gesicherte Datenbankdatei (ggf. zuvor entpacken) an die Stelle der aktiven Datenbank zurΓΌckkopieren, Dienst wieder starten.

Empfehlung: Backups regelmÀßig testweise wiederherstellen, um die tatsΓ€chliche Wiederherstellbarkeit zu verifizieren β€” eine ungeprΓΌfte Sicherung ist keine verlΓ€ssliche Sicherung.