Testserver installieren
Mit dem folgenden Skript kann für ENM-Server auf einem Debian 12 erstellt werden.
Livebetrieb
Für den Livebetrieb sind noch wesentliche Sicherheitseinstellungen nötig, die nicht mit dieser Installation abgedeckt werden.
Installationsskript Testserver
bash
#!/bin/bash
######################## enmserver Install ######################################
# Test-Installation aus den Git-Repository erstellen
# Achtung: nur http -> nicht für den Echtdatenbetieb geeignet ohne weitere Anpassungen!
##################### DATEN - INSTALLATION ######################################
PHPVERSION=8.2
INSTALLPATH=/var/www/html
DOWNLOADPATH=https://wenom.svws-nrw.de/enmserver.zip
# optional
GITHUBURL=https://github.com/SVWS-NRW/SVWS-Server
#################################################################################
### Apache2 und PHP installation
apt update && apt upgrade -y
apt install -y apache2 php${PHPVERSION} php${PHPVERSION}-fpm php${PHPVERSION}-sqlite3
apt install -y curl zip unzip git dnsutils nmap net-tools nano mc ca-certificates gnupg2 lsb-release apt-transport-https gpg
a2enmod proxy_fcgi setenvif
a2enconf php${PHPVERSION}-fpm
a2enmod rewrite
a2enmod headers
sed -i "s|;extension=pdo_sqlite.*$|extension=pdo_sqlite|" /etc/php/${PHPVERSION}/apache2/php.ini
echo "
<Directory ${INSTALLPATH}>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>" >> /etc/apache2/apache2.conf
### optional - SSL Einrichtung
# dies wird nicht benötigt, wenn ein ReverseProxy benutzt wird.
a2enmod ssl
a2ensite default-ssl.conf
### DocumentRoot anpassen
mkdir -p ${INSTALLPATH}/public
sed -i "s|DocumentRoot.*$|DocumentRoot ${INSTALLPATH}/public|" /etc/apache2/sites-available/000-default.conf
sed -i "s|DocumentRoot.*$|DocumentRoot ${INSTALLPATH}/public|" /etc/apache2/sites-available/default-ssl.conf
#
systemctl reload apache2.service
systemctl status apache2.service --no-pager
#
### optional:Java installieren und das SVWS-Server Projekt bauen
# Bei Verwendung des optionalen Teils wird ein SVWS-Server gebaut und damit auch die Quellen des ENM-Servers. Dies ist nur in Testumgebungen empfehlenswert.
#
#wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor | tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null
#echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list
#apt update
#apt install temurin-21-jdk -y
#
#cd ~
#git clone $GITHUBURL
#cd SVWS-Server
#bash ./gradlew build
#
#cp ~/SVWS-Server/svws-webclient/enmserver/build/*.zip $INSTALLPATH/enmserver.zip
#
cd $INSTALLPATH
####### nächste Zeile auskommentieren, wenn optional gewählt wurde ein build erwünscht #######
wget $DOWNLOADPATH
#
#
#
unzip enmserver.zip
#
#
chmod -R 777 $INSTALLPATH
chown -R www-data:www-data $INSTALLPATH
#
#erzeugen des Secrets:
curl --request GET --url http://localhost/api/setup --header "Content-Type: application/x-www-form-urlencoded"
#
echo ""
echo ""
echo "Das Secret für die Synchronisation mit dem SVWS-Server ist:"
cat ${INSTALLPATH}/db/client.sec
echo ""
echo "################# Installation beendet! ####################"
Zertifikat anpassen
In manchen Umgebungen benötigt der Wenom-Server ein eigenes selbst sigriertes Zertifikat für die interne Kommunikation mit dem SVWS-Server. Ggf benötigt man auch den Eintrag der localen IP in diesem Zertifikat, so dass der Anfängliche TLS Check ohne Fehler druchgeführt werden kann. Hier ein Beispiel entweder den direkten IP Eintrag:
bash
openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/wenomtest-selfsigned.key -out /etc/ssl/certs/wenomtest-selfsigned.crt -subj "/C=DE/ST=NRW/L=NRW/O=NONE/CN=localhost" -addext "subjectAltName = IP:10.0.1.1"
Oder ein Beispiel für den DNS Eintrag ins Zertifikat:
bash
openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/wenomtest-selfsigned.key -out /etc/ssl/certs/wenomtest-selfsigned.crt -subj "/C=DE/ST=NRW/L=NRW/O=NONE/CN=localhost"-addext "subjectAltName = DNS:wenomtest2"
UpdateSkript Testserver
Löschung der Daten
Alle Daten werden auf dem Wenom durch dieses Skript gelöscht!
bash
#!/bin/bash
##################### DATEN - INSTALLATION ######################################
INSTALLPATH=/var/www/html
DOWNLOADPATH=https://wenom.svws-nrw.de/enmserver.zip
#################################################################################
rm -rf /var/www/html
mkdir /var/www/html
###### optional #####
#cd ~/SVWS-Server
#git reset --hard
#git pull
#
#./gradlew clean
#./gradlew build
#
#cp ~/SVWS-Server/svws-webclient/enmserver/build/*.zip $INSTALLPATH/enmserver.zip
cd $INSTALLPATH
#
####### nächste Zeile auskommentieren, wenn optional gewählt wurde ein build erwünscht #######
wget $DOWNLOADPATH
#
#
#
unzip enmserver.zip
#
chmod -R 777 $INSTALLPATH
chown -R www-data:www-data $INSTALLPATH
#
curl --request GET --url http://localhost/api/setup --header "Content-Type: application/x-www-form-urlencoded"
#
# NUR fuer Testzwecke geeignet:
cat $INSTALLPATH/db/client.sec > $INSTALLPATH/public/secret.html
mv $INSTALLPATH/enmserver.zip $INSTALLPATH/public/