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
 

Information icon

Wir benötigen Ihre Zustimmung zum Laden der Übersetzungen

Wir nutzen einen Drittanbieter-Service, um den Inhalt der Website zu übersetzen, der möglicherweise Daten über Ihre Aktivitäten sammelt. Bitte überprüfen Sie die Details in der Datenschutzerklärung und akzeptieren Sie den Dienst, um die Übersetzungen zu sehen.