Das ist eine für den Ausdruck optimierte Ansicht des gesamten Kapitels inkl. Unterseiten. Druckvorgang starten.

Zur Standardansicht zurückkehren.

Installation Kieselstein ERP Server unter Debian

Installation Kieselstein ERP Server unter Debian

Den Kieselstein ERP Server auf einem frischen Debian installieren.

Dauer ca. 30 Minuten

SSH-Server einrichten

OpenSSH Server installieren

apt update
apt upgrade
apt install openssh-server

Datenbank

Installation

apt-get install wget sudo curl gnupg2
sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
apt-get install postgresql-15

Konfiguration anpassen

Mit vi oder anderen Texteditor öffnen.

vi /etc/postgresql/15/main/postgresql.conf

Hier muss das Datums-Format und die Zeitzone umgestellt werden.

datestyle = 'iso, dmy'
timezone = 'Europe/Vienna'
# Auf die Timezone achten. Diese muss auf ‘Europe/Vienna’ (bzw. Berlin gerne auch Zuerich) stehen

Zugriffskonfiguration

Sollte ein Zugriff von einem anderen System auf die Datenbank notwendig sein, muss hier auch der listen_addresses Wert gesetzt werden (auf * für alle, bzw. die IP-Adressen welche unbedingt Zugriff auf die Datenbank brauchen).

Gegebenenfalls auch den Zugriff von außen einrichten. D.h.:

  • Einrichten mit User postgres, PW: postgres
  • Ergänzen der /etc/postgresql/15/main/pg_hba.conf host all all 127.0.0.1/32 scram-sha-256 host all all 192.168.xx.1/24

Prüfen ob die Datenbank läuft:

systemctl is-enabled postgresql
systemctl status postgresql

Datenbank-Passwort setzen

Datenbank öffnen

sudo -u postgres psql

Passwort für den Datenbankbenutzer setzen:

ALTER USER postgres WITH PASSWORD '<Sicheres Passwort>';
exit

Hinweis: Es sollte ein sicheres Passwort verwendet werden, welches über einen Passwort-Generator erstellt wurde (Achtung das Passwort wird hier in folgenden Schritten noch benötigt!).

Java installieren

Download der Java Version:

wget https://cdn.azul.com/zulu/bin/zulu11.74.15-ca-fx-jdk11.0.24-linux_amd64.deb

Alternativ kann der Download auch über die Azul-Seite erfolgen.
Siehe hierfür auch Java-Version.

Installation der Java Version:

Den folgenden Befehl im Download-Verzeichnis der Java-Version ausführen.

apt install ./zulu11.74.15-ca-fx-jdk11.0.24-linux_amd64.deb

Installation überprüfen:

java -version

Installation Liquibase

Für die Datenbankmigrationen, muss das Tool liquibase installiert werden.

wget -O- https://repo.liquibase.com/liquibase.asc | gpg --dearmor > liquibase-keyring.gpg && \
cat liquibase-keyring.gpg | sudo tee /usr/share/keyrings/liquibase-keyring.gpg > /dev/null && \
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/liquibase-keyring.gpg] https://repo.liquibase.com stable main' | sudo tee /etc/apt/sources.list.d/liquibase.list
apt-get update
apt-get install liquibase

Schriften Installieren

Damit die Reports funktionieren muss die Schriftart Arial installiert werden. Dies kann unter Linux so durchgeführt werden.

wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.8_all.deb
apt install ./ttf-mscorefonts-installer_3.8_all.deb

Umgebungsvariablen setzen

Mit vi oder nano oder anderem Texteditor öffnen.

vi /etc/environment
  • export JAVA_HOME=/usr/lib/jvm/zulu-fx-11-amd64
  • export KIESELSTEIN_DIST=/opt/kieselstein/dist
  • export KIESELSTEIN_DATA=/opt/kieselstein/data
  • export MAIN_DB_PASS=(Sicheres Passwort welches für den Datenbank-Benutzer verwendet wurde)
  • export DOC_DB_PASS=(Sicheres Passwort welches für den Datenbank-Benutzer verwendet wurde)
source /etc/environment

oder Server Neustarten

reboot

Installation Kieselstein ERP, Version (aktuelle Version):

Verzeichnisse anlegen:

mkdir /opt/kieselstein
mkdir /opt/kieselstein/dist
mkdir /opt/kieselstein/data

Herunterladen aktuelle Kieselstein ERP Version

Siehe auch

Dist-Paket über die bestehende Installation entpacken (In der Windows Eingabeaufforderung cmd.exe) Beispiel:

# Beispiel für Download des Dist-Pakets.
wget https://gitlab.com/kieselstein-erp/sources/kieselstein/-/jobs/7650408929/artifacts/raw/kieselstein-distpack/build/distributions/kieselstein-distpack-1.0.0-rc.1.tar.gz
# Beispiel für das Entpacken des Dist-Packets.
tar -xvf ./kieselstein-distpack-1.0.0-rc.1.tar.gz -C /opt/kieselstein

Datenbank Initialisieren

cd /opt/kieselstein/dist/bootstrap/liquibase/
./createdb.sh

Hier muss dann 4x das Passwort für den Postgres-Benutzer eingegeben werden.

Danach auch die default Datenbank auf den aktuellen Stand deines Kieselstein Servers heben.

./liquibase.sh update

Einrichten des Dienstes und starten des Servers

cd /opt/kieselstein/dist/bootstrap/service/linux
./install-kieselstein-services.sh

ausführen. Damit wird auch systemctl start kieselstein-main-server.service gestartet.
ACHTUNG: Es muss dafür das environment gesetzt worden sein

NGINX Webserver (Optional)

Sollte für die REST-Schnittstelle ein eigener Port notwendig sein. Damit der Zugriff zum Beispiel über das Internet zur Verfügung gestellt werden kann oder bestehende Zeiterfassung-Terminals oder andere Anwendungen bereits den Port: 8280 verwenden kann ein Nginx-Webserver als Proxy hierfür installiert werden.

# Nginx-Webserver installieren:
apt install nginx
# Konfiguration für Kieselstein verlinken:
ln -s /opt/kieselstein/dist/bootstrap/nginx/kieselstein.conf  /etc/nginx/sites-enabled/kieselstein-main.cfg
# Testen ob die Konfiguration gültig ist:
nginx -t
# Nginx-Webserver Dienst neustarten
systemctl restart nginx

Für das Freischalten im Internet sollte auf jeden Fall ein SSL-Zertifikat noch hinterlegt werden (siehe hier auch Configuring HTTPS servers bzw. Nginx-Webserver)

Zum Überpüfen ob der Nginx funktioniert und mit dem Kieselstein kommuniziert kann die Url: http://(Name oder IP-Adresse des Servers):8280/kieselstein-rest/services/rest/api/v1/system/ping aufgerufen werden.

läuft der Server ?

bewährt hat sich das Laufen des Servers in folgender Reihenfolge zu prüfen:

  1. /opt/kieselstein/dist/wildfly-26.1.2.Final/standalone/deployments/
    Hier müssen für alle drei Dateien auch .deployed Dateien stehen
  2. Prüfen ob die RestAPI geht:
    einen Browser starten, http://localhost:8080/kieselstein-rest-docs/ muss die Restapi Dokumentation bringen. Bzw. auch mit dem Nginx-Port http://localhost:8280/kieselstein-rest-docs/ aufrufen (falls Nginx-Installiert wurde).
  3. Client starten und mit Admin, admin anmelden.

weiters zu tun

  • Backup einrichten
  • Einrichten der Zugriffe von anderen Rechner aus.

1 - Update Kieselstein ERP Server von Version 0.2.x auf 1.x.x unter Debian

Migration von Kieselstein Version 0.2.x auf 1.x.x mit Java-11 Installation unter Debian.

Wenn ein bestehende Kieselstein Installation mit der Version 0.2.x vorhanden ist, können folgende Schritte für das Update auf Version 1.x.x durchgeführt werden.

Falls möglich snapshot vom Server machen.

Kieselstein Dienste deaktivieren

Dienste beenden

  • Beide Kieselstein Dienste (Kieselstein Main Server & Kieselstein REST Server) beenden
systemctl stop kieselstein-main-server.service
# REST Service kann gelöscht werden da dieser jetzt im Wildfly integriert ist.
systemctl stop kieselstein-rest-server.service
systemctl disable kieselstein-rest-server.service
rm /etc/systemd/system/kieselstein-rest-server.service

Backup des Kieselstein Dist-Verzeichnis erstellen

Das aktuell installierte Kieselstein in ein eigenes Verzeichnis mit der aktuellen Versionsnummer im Namen wegsichern. Beispiel:

cp -r /opt/kieselstein/ /opt/kieselstein-0.2.10

Neues Java Installieren

  • Azul Java 11 mit FX installieren Siehe hierfür auch Java-Version.

Altes Java Deinstallieren (optional)

apt remove <Pfald zum alten Java-Deb-Paket.>

JAVA_HOME Umgebungsvariablen anpassen

Mit vi oder Nano oder einem anderen Texteditor öffnen.

vi /etc/environment

Nur den Wert für JAVA_HOME anpassen alles andere kann so bleiben wie es ist.

  • export JAVA_HOME=/usr/lib/jvm/zulu-fx-11-amd64

Neue Umgebungsvariable laden

source /etc/environment

Nicht mehr benötigte Anwendungen entfernen

Reports sichern

Damit Ihre Anwender-Reports nach dem Update wieder zur Verfügung stehen müssen Sie den Reports-Ordner in ein neues Verzeichnis kopieren.

mkdir /opt/kieselstein/dist/wildfly-26.1.2.Final/
mkdir /opt/kieselstein/dist/wildfly-26.1.2.Final/kieselstein/
cp -r /opt/kieselstein/dist/wildfly-12.0.0.Final/server/helium/report/ /opt/kieselstein/dist/wildfly-26.1.2.Final/kieselstein/reports/

WICHTIG: Dies muss vor dem Entpacken des neuen Dist-Packets erfolgen, damit neuere Versionen der Standard-Reports richtig nachgezogen werden.

Alte Programmdateien löschen

Folgende Ordner können nun komplett gelöscht werden:

rm -rf /opt/kieselstein/dist/apache-tomcat-*
rm -rf /opt/kieselstein/dist/bin
rm -rf /opt/kieselstein/dist/bootstrap
rm -rf /opt/kieselstein/dist/service
rm -rf /opt/kieselstein/dist/wildfly-12.0.0.Final

Installation Kieselstein ERP, Version (aktuelle Version):

Herunterladen aktuelle Kieselstein ERP Version

Siehe auch

Dist-Paket über die bestehende Installation entpacken (In der Windows Eingabeaufforderung cmd.exe) Beispiel:

# Beispiel für Download des Dist-Pakets.
wget https://gitlab.com/kieselstein-erp/sources/kieselstein/-/jobs/7650408929/artifacts/raw/kieselstein-distpack/build/distributions/kieselstein-distpack-1.0.0-rc.1.tar.gz
# Beispiel für das Entpacken des Dist-Packets.
tar -xvf ./kieselstein-distpack-1.0.0-rc.1.tar.gz -C /opt/kieselstein

Datenbank Updaten

cd /opt/kieselstein/dist/bootstrap/liquibase/
./liquibase.sh update

Einrichten des Dienstes und starten des Servers

cd /opt/kieselstein/dist/bootstrap/service/linux
./install-kieselstein-services.sh

NGINX Webserver (Optional)

Die Kieselstein-REST Schnittstelle wurde mit dem Update in den Wildfly integriert und ist somit auch über den Port: 8080 erreichbar.

Sollte es notwendig sein, dass diese wie bisher über den Port 8280 erreichbar ist, kann hier ein Nginx-Webserver als Proxy vorgeschaltet werden (Siehe NGINX Webserver)

Läuft der Server ?

Siehe Läuft der Server

Dokumentendatenbank Workspace.xml anpassen

Wenn eine bestehende Dokumentendatenbank existiert müssen hier folgende Parameter Werte (Achtung diese Werte sind 2x in der XML-Datei vorhanden) angepasst werden:

/opt/kieselstein/data/jackrabbit/workspaces/default/workspace.xml

  • driver: javax.naming.InitialContext
  • url: java:/JRDS

Und folgende Parameter können gelöscht werden:

  • user
  • password

Beispiel:

Alte XML-Datei

<?xml version="1.0" encoding="UTF-8"?>
<Workspace name="default">
    <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
        <param name="driver" value="org.postgresql.Driver"/>
        <param name="url" value="jdbc:postgresql://${org.kieselstein.db-doc.host}:${org.kieselstein.db-doc.port}/${org.kieselstein.db-doc.name}"/>
        <param name="schema" value="postgresql"/>
        <param name="user" value="postgres"/>
        <param name="password" value="postgres"/>
        <param name="schemaObjectPrefix" value="ws_"/>
    </FileSystem>
    <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager">
        <param name="driver" value="org.postgresql.Driver"/>
        <param name="url" value="jdbc:postgresql://${org.kieselstein.db-doc.host}:${org.kieselstein.db-doc.port}/${org.kieselstein.db-doc.name}"/>
        <param name="user" value="postgres"/>
        <param name="password" value="postgres"/>
        <param name="schema" value="postgresql"/>
        <param name="schemaObjectPrefix" value="jcr_${wsp.name}_"/>
        <param name="externalBLOBs" value="false"/>
    </PersistenceManager>
    <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
        <param name="path" value="${wsp.home}/index"/>
    </SearchIndex>
</Workspace>

Neue XML-Datei:

<?xml version="1.0" encoding="UTF-8"?><Workspace name="default">
    <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
        <param name="driver" value="javax.naming.InitialContext"/>
        <param name="url" value="java:/JRDS"/>
        <param name="schema" value="postgresql"/>
        <param name="schemaObjectPrefix" value="ws_"/>
    </FileSystem>
    <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager">
        <param name="driver" value="javax.naming.InitialContext"/>
        <param name="url" value="java:/JRDS"/>
        <param name="schema" value="postgresql"/>
        <param name="schemaObjectPrefix" value="jcr_${wsp.name}_"/>
        <param name="externalBLOBs" value="false"/>
    </PersistenceManager>
    <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
        <param name="path" value="${wsp.home}/index"/>
    </SearchIndex>
</Workspace>

weiters zu tun

  • Clients Updaten (diese benötigen jetzt auch Java 11) siehe auch
  • Wenn Nginx nicht installiert wurde bei allen Zeiterfassung-Terminals oder anderen Programmen welche die REST-Schnittstelle verwenden den Port auf 8080 ändern.

Empfehlung:
Insbesondere für die Tests in der ersten Zeit, sollte für ein eventuelles Fallback auf den Clients sowohl die Version für den Java 8 Server als auch für den Java 11 Server parallel vorgehalten werden. Damit man, im schlimmsten Falle, schnell auf die Vorgängerversion zurückwechseln kann.