Linux Installer
Debian-basierte Systeme:
Download unter: https://github.com/SVWS-NRW/SVWS-Server/releases
Dieses Skript ist für die Installation des SVWS-Servers auf einem Debian-basierten System gedacht.
Bisher getestet unter:
- Debian 12
- Debian 13
- Ubuntu 22.04 LTS
- Ubuntu 24.04 LTS
Redhat-basierte Systeme
Die Installation unter RedHat-basierten Systemen kann hier nachgelesen werden:
Bisher getestet unter:
- RedHat 9
- Rocky-Linux 9
Wichtige Hinweise
- Verwendung der Skripte geschieht auf eigene Gefahr.
- Führen Sie das Skript nur auf einem Testsystem durch, bevor Sie es auf einem Produktivsystem verwenden.
- Stellen Sie sicher, dass alle Konfigurationen und Passwörter sicher gespeichert und aufbewahrt werden.
- Beachten Sie, dass das Skript eine Internetverbindung benötigt, um bestimmte Pakete herunterzuladen und zu installieren.
Voraussetzungen
- Ein Debian-basiertes Betriebssystem
- Zugriff mit root-Rechten
Installation DEB
- Laden Sie das Skript auf den Zielcomputer herunter.
- Öffnen Sie die Terminalanwendung und navigieren Sie zum Verzeichnis, in dem sich das Skript befindet.
- Geben Sie den Befehl
chmod +x /install-0.x.x.shein und drücken Sie die Eingabetaste, um es ausführbar zu machen. - Geben Sie den Befehl
./install-0.x.x.shzur Ausführung ein und drücken Sie die Eingabetaste. - Folgen Sie den Anweisungen im Skript.
Nach dem Durchlauf des Skripts haben Sie einen aktiv laufenden SVWS-Server!
Update der Linux-Installation
- Laden Sie das Skript auf den Zielcomputer herunter.
- Öffnen Sie die Terminalanwendung und navigieren Sie zum Verzeichnis, in dem sich das Skript befindet.
- Geben Sie den Befehl
chmod +x /install-0.x.x.shein und drücken Sie die Eingabetaste, um es ausfürbar zu machen. - Achten Sie darauf, dass die Datei
.envaus der Installation neben dem Install-Skript liegt. - Geben Sie den Befehl
./install-0.x.x.sh --updatezur Ausführung ein und drücken Sie die Eingabetaste. - Danach sollte der SVWS-Server in der aktuellen Version laufen.
Konfiguration
Das Skript bietet verschiedene Optionen zur Konfiguration, die hier vorgestellt werden sollen. Es werden Standardeinstellungen vorgeschlagen, um eine vereinfachte Installation zu ermöglichen. Sie können die Einstellungen aber auch nach Bedarf individuell anpassen.
Die gewählten Parameter werden in die Datei .env geschrieben. Aus dieser Datei werden die Werte für die Installation dann entnommen. Auch das Update bedient sich aus dieser Datei, um die Installationspfade zu ermitteln. Wenn diese Datei schon existiert, dann werden die Parameter nicht mehr abgefragt und die Installation startet sofort. Auf diese Weise kann also auch eine skriptgesteuerte Installation realisiert werden.
Folgende Konfigurationen können vorgenommen werden:
- MariaDB-Konfiguration
- Installationspfade
- Erstellung eines Keystores für TLS
Hier finden Sie einen beispielhaften Dialog:
MariaDB-Konfiguration:
Möchten Sie MariaDB installieren? (j/N): j
MARIADB_ROOT_PASSWORD (default: 'abcd1234'): abcd1234
MARIADB_DATABASE (default: 'svwsdb'): svwsdb
MARIADB_HOST (default: 'localhost'): localhost
MARIADB_USER (default: 'svwsadmin'): svwsadmin
MARIADB_PASSWORD (default: 'abcd1234'): abcd1234
Installationspfade:
APP_PATH (default: '/opt/app/svws'): /opt/app/svws
CONF_PATH (default: '/etc/app/svws/conf'): /etc/app/svws/conf
APP_PORT (default: 8443): 8443
Möchten Sie einen Keystore erstellen? (j/N): j
Keystore für TLS:
SVWS_TLS_KEYSTORE_PATH (default: '/etc/app/svws/conf/keystore'): /etc/app/svws/conf/keystore
SVWS_TLS_KEYSTORE_PASSWORD (default: 'abcd1234'): abcd1234
SVWS_TLS_KEY_ALIAS (default: ''): ''Die Passwortvorschläge werden vom Skript generiert. Bitte sichern Sie unbedingt die verwendeten Passwörter. Diese Daten werden vom Skript nicht gespeichert!
Erläuterungen zu den einzelnen Punkten:
| Variable | Erläuterung |
|---|---|
| MARIADB_ROOT_PASSWORD | Das Datenbank Passwort der Datenbankadministratoren |
| MARIADB_DATABASE | Name der Datenbank |
| MARIADB_HOST | Bei kleinen Installationen wird die Mariadb i.d.R. auf dem lokalen System (localhost) liegen. Ggf. kann hier auch die URL zu einem separaten MariaDB-Server eingetragen werden. |
| MARIADB_USER | Benutzer mit Vollzugriff auf die o.g. Datenbank |
| MARIADB_PASSWORD | Das Datenbank Passwort für MARIADB_USER |
| APP_PATH | Installationsverzeichnis des SVWS-Servers |
| CONF_PATH | Hier finden Sie die Konfigurationsdatei des SVWS-Servers |
| APP_PORT | Auf diesem Port ist der SVWS-Server erreichbar. i.d.R. ist dies einer der höheren Ports z.B. 8443, da für diese keine root-Rechte benötigt werden. Hier muss ggf. ein Reverse-Proxy oder eine Portumleitung eingerichtet werden, wenn man eine einfache URL verwenden möchte. |
| SVWS_TLS_KEYSTORE_PATH | Der Pfad des angelegten Keystores, um dort Daten zu speichern |
| SVWS_TLS_KEY_ALIAS | Alias des zu verwendenden Keys im Keystore |
Daten einpflegen
Bitte beachten Sie dazu die Doku des AdminClients.
Sinnvolle Konfigurationen
Eigenen Keystore mit Zertifikat erstellen
keytool -genkey -noprompt -alias alias1 -dname "CN=test, OU=test, O=test, L=test, S=test, C=test" -ext "SAN=DNS:localhost,IP:127.0.0.1,IP:10.1.0.1,DNS:meinserver,DNS:meinserver.mydomain.de" -keystore /etc/app/svws/conf/keystore -storepass test123 -keypass test123 -keyalg RSA
keytool -export -keystore /etc/app/svws/conf/keystore -alias alias1 -file ./SVWS.cer -storepass test123Mit diesen Befehlen kann ein eigener Keystore mit einem Zertifikat erstellt werden. Der zweite Befehl exportiert das Zertifikat, welches dann unter den Windows-Client installiert werden kann, so dass die Warnmeldungen im Browser verschwinden.
MariaDB für Schild-NRW 3 zugänglich machen
Solange Schild-NRW 3 benötigt wird, muss die Datenbank und der Server für das Programm zugänglich gemacht werden.
Erreichbarkeit des MariaDB-Server auch außerhalb von localhost setzen:
/etc/mysql/mariadb.conf.d/50-server.cnf
bind-address 127.0.0.1 >> 0.0.0.0Unter Umständen muss auch noch Port 3306 nach außen geöffnet werden, wenn eine Firewall eingerichtet ist.
Portumleitung
Eine Möglichkeit den SVWS-Server unter einer "normalen" URL erreichen zu können und somit auf das Appendix der Ports verzichten zu können, wäre eine Portumleitung. Der bessere Weg, vor allem in größeren Netzwerken, wäre der Einsatz eines Reverse-Proxies.
In beiden Fällen könnte man statt zum Beispiel https://meineServeradresse:8443/ dann unter https://meineServeradresse/ den SVWS-Server direkt erreichen.
Umleiten des Ports 443 auf Port 8443 unter Ubuntu 22.04 mit iptables:
iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-port 8443Reverse-Proxy einrichten
Alternativ zur Portumleitung kann der nginx Webserver als Reverse-Proxy eingesetzt werden.
UFW als Firewall einrichten
Für die Linuxmaschine im Livebetrieb empfiehlt sich eine Firewall einzurichten. Dazu ist bei vielen Distributionen die ufw-Firewall vorinstalliert.