Skip to content

Linux Installer

Download

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 sind:

  • Debian 11
  • Debian 12
  • Ubuntu 22.04 LTS
  • Ubuntu 22.10

RedHat basierte Systeme benötigen andere Befehle:

Installation Redhat

Wichtige Hinweise

  • Verwendung des Skripts 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

  • 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.sh ein und drücken Sie die Eingabetaste.
  • Geben Sie den Befehl ./install-0.x.x.sh ein und drücken Sie die Eingabetaste.
  • Folgen Sie den Anweisungen im Skript.

Nach dem Durchlauf des Skript 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.sh ein und drücken Sie die Eingabetaste.
  • Achten Sie darauf, dass die Datei .env aus der Installation neben dem Install-Script liegt.
  • Geben Sie den Befehl ./install-0.x.x.sh --update ein und drücken Sie die Eingabetaste.
  • Danach sollte der SVWS-Server in der aktuelen Version laufen.

Konfiguration

Das Skript bietet verschiedene Optionen zur Konfiguration, die hier vorgestellt werden sollen. Es werden Standardeinstellungen vorgeschlagen, um eine einfache 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 scriptgesteuerte Installation realisisert werden.

Folgende Konfigurationen können vorgenommen werden:

  • MariaDB-Konfiguration
  • Installationspfade
  • Erstellung eines Keystores für TLS
  • Import von Testdaten

Hier finden Sie einen beispielhaften Dialog:

bash
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: ''): 
Möchten Sie Testdaten importieren? (j/N): N

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:

VariableErläuterung
MariaDB_ROOT_PASSWORDDas Datenbank Passwort der Datenbankadministratoren
MariaDB_DATABASEName der Datenbank
MariaDB_HOSTBei kleinen Installationen wird die Mariadb i.d.R. auf dem localen System (localhost) liegen. Ggf. kann hier auch die url zu einem separaten MariaDB-Server eingetragen werden.
MariaDB_USERUser mit Vollzugriff auf die o.g. Datenbank
MariaDB_PASSWORDDas Datenbank Passwort für MariaDB_USER
APP_PATHInstallationsverzeichnis des SVWS-Servers
CONF_PATHHier finden Sie die Konfigurationsdatei des SVWS-Servers
APP_PORTAuf 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 ReverseProxy oder eine Portumleitung eingerichtet werden, wenn man eine einfache URL verwenden möchte.
SVWS_TLS_KEYSTORE_PATHDer Pfad des angelegten Keystores, um dort Daten zu speichern
SVWS_TLS_KEY_ALIASAlias des zu verwendenden Keys im Keystore

Daten einpflegen

Testdatenbank anlegen

Wenn Sie im Installer-Dialog die Frage nach den Testdaten mit "Ja" beantworten und den vorgeschlagenen Pfad nicht verändern, wird eine mitgelieferte Beispieldatenbank mit Dummy-Daten eingespielt. Weitere Testdatenbanken finden Sie in unserem Repository auf Github:

https://github.com/SVWS-NRW/SVWS-TestMDBs

Migration der eigenen Access Datenbank im Skript

Wählen Sie im Installer-Dialog "Ja" bei der Frage "Möchten Sie Testdaten importieren?" und ändern Sie den vorgeschlagenen Pfad so, dass dieser auf Ihre Accessdatenbank zeigt, die Sie migrieren wollen. Per Skript ist nur die Migration aus einer Accessdatenbank möglich. Die Migration aus anderen DBMS kann aber nachträglich ausgeführt werden. Ebenso ist eine nächträgliche Migration einer bestehenden DB per Weboberfläche möglich (s.u).

Migration der eigenen Access Datenbank per Weboberfläche

Wenn Sie bei der Installation der MariaDB-Datenbank im Skripe keine Testdaten importieren, wird automatisch eine leere SVWS-Datenbank erzeugt. Beim Start des Web-Client erkennt die Applikation, dass die Datenbank leer ist und bietet entsprechende Menüpunkte zur Einrichtung, Backup und Migration an.

weitere Möglichkeiten

Es gibt weitere Möglichkeiten zur Erstellung neuer Datenbanken bzw. zur Migration:

  • per Swagger Oberfläche
  • per curl Befehl
  • per bash Skript
  • ...

siehe dazu: Datenmigration

Sinnvolle Konfigurationen

MariDB für Schild-NRW3 zugänglich machen

Solange Schild-NRW3 benötigt wird, muss die Datenbank und der Server für das Progrmm zugänglich gemacht werden.

Erreichbarkeit des MariaDB-Server auch außerhalb von localhost setzen:

shell
/etc/mysql/mariadb.conf.d/50-server.cnf
bind-address 127.0.0.1 >> 0.0.0.0

Unter Umständen muss auch noch Port 3306 nach außen geöffnet werden, wenn eine Firewall eingerichtet ist.

Portumleitung

Eine einfache Möglichkeit den SVWS-Server unter einer "normalen" URL erreichen zu können und somit auf das Apendix der Ports verzichten zu können, wäre eine Portumleitung. Der bessere Weg, vor allem in größeren Netzwerken, wäre der Einsatz eines ReverseProxies.

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:

bash iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-port 8443

ReverseProxy einrichten

Alternativ zur Portumleitung kann der nginx Webserver als ReverseProxy eingesetzt werden.

UFW als Firewall einrichten

Für die Linuxmaschine im Livebetrieb empfiehlt sich eine Firewall einzurichten. Dies ist unterveieln anderen Möglichkeiten schnell und einfach mit ufw zu erreichen.