Installationsanleitung
Voraussetzungen
Betriebssystem
Ubuntu ab 22.04 LTS LTS oder Debian 12
Webserver
Apache2 mit mod_wsgi (libapache2-mod-wsgi-py3)
Datenbank
MariaDB 10.11+ oder MySQL 8.0+
Python
Python 3.10+ mit pip
Installationspaket
isms.tar.gz (vom Hersteller bereitgestellt)
Datenbankschema
isms.sql (im Installationspaket enthalten)
Beim Erwerb einer Wartungslizenz wird ein Installationsskript zur Verfügung gestellt.
sudo ./wolfisms_install.sh
Schritt 1 - Systempakete installieren
Vor der eigentlichen Installation müssen alle erforderlichen Systempakete installiert werden. Der folgende Block deckt Webserver, Datenbank, Python-Laufzeitumgebung und alle benötigten Python-Bibliotheken ab.
System aktualisieren
sudo apt update && sudo apt upgrade -y
Webserver und WSGI-Modul
sudo apt install -y apache2 libapache2-mod-wsgi-py3
Datenbank (MariaDB)
sudo apt install -y mariadb-server mariadb-client
sudo mysql_secure_installation # Datenbank absichern
Python und pip
sudo apt install -y python3 python3-pip python3-venv
npm und nodejs
sudo apt install nodejs npm
Systembibliotheken für WeasyPrint (PDF-Erstellung)
sudo apt install -y libpango-1.0-0 libpangoft2-1.0-0 libharfbuzz0b \
libffi-dev libcairo2 libgdk-pixbuf2.0-0
Python-Pakete via pip installieren
sudo pip3 install --break-system-packages --ignore-installed \
flask \
flask-login \
flask-wtf \
flask-session \
flask-limiter \
pymysql \
werkzeug \
authlib \
requests \
bleach \
beautifulsoup4 \
markupsafe \
weasyprint \
matplotlib \
python-docx \
pytz \
pyotp \
qrcode \
reportlab \
pypdf \
psutil
Apache-Module aktivieren
sudo a2enmod wsgi
sudo systemctl enable apache2 mariadb
sudo systemctl start apache2 mariadb
Schritt 2 – Installationspaket entpacken
Das Installationspaket wolfisms_install.tar.gz wird heruntergeladen und entpackt. Das isms Verzeichnis wird nach /var/www kopiert.
Paket herunterladen und ins Zielverzeichnis entpacken
wget https://update.wolfisms.de/download/wolfisms_install.tar.gz
tar -xzf wolfisms_install.tar.gz
cd wolfisms_install
sudo cp -r isms /var/www
Ergebnis prüfen
ls /var/www/isms/
Schritt 3 – Verzeichnisrechte setzen
Das gesamte Anwendungsverzeichnis muss dem Webserver-Benutzer www-data gehören. Zusätzlich werden die Unterverzeichnisse für Sessions und Uploads mit den richtigen Rechten versehen.
sudo chown -R www-data:www-data /var/www/isms/
sudo chmod -R 750 /var/www/isms/
sudo mkdir /var/www/isms/wolfisms/sessions/
sudo chmod 770 /var/www/isms/wolfisms/sessions/
sudo chmod 770 /var/www/isms/wolfisms/uploads/
Schritt 4 – Datenbank anlegen und Schema importieren
Die Datenbank wird in MariaDB/MySQL angelegt, ein dedizierter Datenbankbenutzer erstellt und das Datenbankschema aus der mitgelieferten Datei isms.sql importiert. Die SQL-Datei enthält alle Tabellen, Indizes und Grunddaten (inkl. eines Standard-Admin-Benutzers).
sudo mysql -u root -p
CREATE DATABASE isms CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'isms'@'localhost' IDENTIFIED BY 'SICHERES_PASSWORT';
GRANT ALL PRIVILEGES ON isms.* TO 'isms'@'localhost';
FLUSH PRIVILEGES; EXIT;
sudo mysql -u isms -p isms < isms.sql
Schritt 5 – /etc/wolfisms/secret.env erstellen
Die Datei secret.env speichert die Datenbankzugangsdaten außerhalb des Webverzeichnisses. Sie wird von isms.wsgi beim Start automatisch eingelesen und als Umgebungsvariablen bereitgestellt.
sudo mkdir -p /etc/wolfisms
sudo tee /etc/wolfisms/secret.env << EOF
DB_PASSWORD=SICHERES_PASSWORT
DB_USER=isms
DB_HOST=localhost
DB_NAME=isms
EOF
sudo chown root:www-data /etc/wolfisms/secret.env
sudo chmod 640 /etc/wolfisms/secret.env
Hinweis: Die Datei isms.wsgi liest secret.env beim Start automatisch ein (os.environ.setdefault) und macht die Variablen für config.py verfügbar. Ein separates Laden in der Apache-Konfiguration ist daher nicht erforderlich.
Schritt 6 – HTTPS aktivieren (SSL/TLS)
HTTPS muss vor der WolfISMS-Konfiguration aktiviert werden, da Session-Cookies mit Secure=True gesetzt sind und nur über verschlüsselte Verbindungen übertragen werden.
# SSL-Modul und Standard-SSL-Site aktivieren
sudo a2enmod ssl
sudo a2ensite default-ssl
# Konfigurationstest und Apache neu laden
sudo apache2ctl configtest
sudo systemctl reload apache2
# HTTPS erreichbar prüfen (Zertifikat ist zunächst selbstsigniert)
curl -k https://localhost/
Das aktivierte Standard-Zertifikat ist selbstsigniert und erzeugt Browser-Warnungen.
Für Produktivbetrieb: Zertifikat von einer CA (z.B. Let's Encrypt) verwenden:
sudo apt install -y certbot python3-certbot-apache
sudo certbot --apache -d ihre-domain.de
HTTP auf HTTPS umleiten – in /etc/apache2/sites-available/000-default.conf ergänzen:
sudo tee /etc/apache2/sites-available/000-default.conf << EOF
<VirtualHost *:80>
ServerName ihre-domain.de
Redirect permanent / https://ihre-domain.de/
</VirtualHost>
EOF
sudo systemctl reload apache2
Schritt 7 – Apache-Konfiguration erstellen
Die Apache-Konfigurationsdatei isms.conf wird im Verzeichnis /etc/apache2/sites-available/ angelegt, anschließend aktiviert und Apache neu geladen.
sudo tee /etc/apache2/sites-available/isms.conf << EOF
WSGIRestrictEmbedded On
WSGIDaemonProcess isms user=www-data group=www-data threads=5
WSGIProcessGroup isms
WSGIApplicationGroup %{GLOBAL}
SetEnv FLASK_SECRET_KEY "HIER_ZUFALLSWERT_EINTRAGEN"
WSGIScriptAlias /isms /var/www/isms/isms.wsgi
<Directory /var/www/isms>
Require all granted
</Directory>
EOF
Sicheren Zufallswert generieren und in isms.conf eintragen:
python3 -c "import secrets; print(secrets.token_hex(32))"
sudo a2enmod wsgi
sudo a2ensite isms.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
Schritt 8 – Installation prüfen
Nach Abschluss aller Schritte kann die Installation im Browser aufgerufen und der erste Login getestet werden. Man wird aufgefordert, den ersten User (Admin) anzulegen.
Apache-Fehlerlog im Blick behalten
tail -f /var/log/apache2/error.log
WolfISMS im Browser aufrufen
http://<SERVER-IP>/isms
