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

Zur Standardansicht zurückkehren.

Installation Kieselstein ERP Server

Wie den Kieselstein ERP Applikationsserver installieren

Wie für die Installation deines Kieselstein ERP Servers vorgehen

Vorbereitung für Serverinstallation

Wird die Serverinstallation von uns durchgeführt, so benötigen wir, neben den ganzen Zugangsdaten,

  • bitte die Info auf welches Laufwerk die Installation erfolgen sollte.
  • In virtuellen Umgebungen, bitte genau den Server angeben auf den es installiert werden sollte.
  • bitte die Größen Kalkulationen beachten siehe Anforderungen

Wie komme ich zu einer aktuellen Version?

Wir freuen uns über jedeN der uns beim Testen der aktuelle Software hilft. Insofern stehen unter dem Link die latest Release und ein aktueller Build zur Verfügung. D.h. über den Link kommst zum Repository des Kernsystem von Kieselstein ERP.
Nun kannst du durch Klick auf Latest Release die letzte gültige Version herunterladen.
Alternativ bekommst du den aktuellen Stand durch Klick auf , welche den neuesten von der Technik / Softwareentwicklung zur Verfügung dargestellten Stand darstellt.

Um die Latest Release zu verwenden, klicke auf den Button und dann auf

Um die neueste Version herunterzuladen, Klicke auf Pipeline passed (du solltest nur Build mit einem Status von Passed verwenden).
Nun wird die Build Pipeline angezeigt. Klicke hier im rechten Bereich auf Artefakte herunterladen und wähle build-distpack:archive

Entzippe aus dieser Datei das dist Verzeichnis nach ?:\kieselstein\dist

Lege parallel dazu ein Verzeichnis data (?:\kieselstein\data) an

Für die Installation benötigst du auch

wir verwenden gerne auch noch:

Installation Datenbankserver

Es werden aktuell ausschließlich PostgresQL Version 14 und 15 unterstützt. MS-SQL wird nicht unterstützt. Für eine eventuelle Konvertierung deiner MS-SQL Datenbank wende dich bitte an die Kieselstein ERP eG. Neuere PostgresQL Versionen können funktionieren, sind aber aktuell von uns nicht freigegeben.
Bei der Installation darauf achten, dass nur PostgresSQL Server und die Command Line Tools installiert werden.

Bei der Installation muss auch das default Passwort für den User Postgres angegeben werden (postgres). Beachte in diesem Zusammenhang auch die Themen der Datenzugriffssicherheit. Aktuell kann das Datenbankpasswort durch die Environmentvariable MAIN_DB_PASS übersteuert werden.

Bitte prüfe, dass auch der Port auf 5432 vorgeschlagen wird.

Beachte dass die Installation in Windowssystemen idealerweise auf einem eigenen Laufwerk erfolgt. Also z.B. nicht auf C: sondern, vom Betriebssystem unabhängig auf z.B. D:

Installation PGadmin

Die abschließende Meldung nach dem Rechner-Neustart kann ignoriert werden.

Setzen Environmentvariable

  • path Erweiterung auf Postgres “?:\Program Files\PostgreSQL\14\bin"
    Hinweis: Es muss auch der Dienst auf diesen Pfad zugreifen können.
  • KIESELSTEIN_DIST=?:\kieselstein\dist
  • KIESELSTEIN_DATA=?:\kieselstein\data
  • eventuell ein abweichendes Datenbankpasswort: MAIN_DB_PASS

Es gibt noch weitere optionale Environment-Variablen welche in der README.md Datei bei den Start-Scripten (im KIESELSTEIN_DIST/bin/) beschrieben sind.

Datenbank einrichten

  • ?:\Kieselstein\dist\bootstrap\database\createDb.bat ausführen, 4x postgres PW eingeben
  • ?:\Kieselstein\dist\bootstrap\database\fillDb.bat ausführen, 1x postgres PW eingeben

ACHTUNG:
Wenn du bestehende Daten übernimmst, schau im Kieselstein ERP Wiki nach wie es nun weiter geht. Ansonsten:

Vorbereitete Daten

Wir haben für Testzwecke eine sehr kleine und einfache Musterdatenbank eingerichtet. Diese findest du hier. Bitte beachte:

  • in deutsch Österreichisch anmelden
  • es sind keine Dokumente enthalten
  • es ist die integrierte Finanzbuchhaltung aktiviert und damit auch die österreichischen Steuersätze und Formulare usw.

D.h. anstatt des fillDb.bat führst du das fillDb_Demodaten.bat aus.

Eine weitere Variante sind Demodaten in deDE und ohne Fibu. Diese findest du hier. Bitte beachte:

  • in deutsch Deutsch anmelden
  • es sind keine Dokumente enthalten
  • die integrierte Finanzbuchhaltung ist deaktiviert und es sind die deutschen Mehrwertsteuersätze eingerichtet.

D.h. anstatt des fillDb.bat führst du das fillDb_Demodaten_DE_OF.bat aus.

Java installieren

  • Azul Java 8 mit FX installieren siehe
  • darauf achten, dass Java Home gesetzt wird Prüfen, dass auch installiert durch Command Shell, Java -version

Client vorbereiten

Aus ?:\Kieselstein\dist\clients\kieselstein-ui-swing-0.0.11.tar.gz mehrfach in die Ordner (zip) reinwechseln bis zum kieselstein-ui-swing-0.0.11. Hier die beiden Verzeichnisse bin und lib z.B. nach ?:\Kieselstein\dist\client kopieren. Nun das ?:\Kieselstein\dist\client\bin\kieselstein-ui-swing.bat editieren und den localhost auf die IP-Adresse des Servers austauschen. Wenn in anderen Sprache gestartet werden sollte, auch noch das -Dloc=de_AT auf z.B. -Dloc=de_DE oder -Dloc=de_CH oder -Dloc=en_US oder -Dloc=it_IT oder pl_PL oder sl_SL austauschen. (Weitere Sprachen, bitte melden)
Das Kieselstein-Desktop-Icon findest du hier
Weiteres zu Sprachen am Client siehe

Server Dienst einrichten

  • Mit Administratorrechten eine Command Shell starten.
  • Es hat sich bewährt vorher einmalig den Service manuell zu starten, also:
    ?:\Kieselstein\dist\bin\launch-kieselstein-main-server.bat
    starten. Üblicherweise, je nach Datenbankgröße und Leistungsfähigkeit des Rechners kann es ein bisschen dauern bis der Dienst läuft. Man sieht das unter ?:\Kieselstein\dist\wildfly-12.0.0.Final\standalone\deployments<br>Hier muss für alle drei Files deployed stehen. Wenn nicht siehe
  • nun testweise den Client aus ?:\Kieselstein\dist\client\bin\kieselstein-ui-swing.bat starten und mit Admin, admin anmelden.
    Geht die Anmeldung, d.h. man sieht die Button Bar so läuft der Zugriff grundsätzlich. Nun den Client beenden und dann den Server (mit Strg+C) stoppen und mit der Einrichtung des Serverdienstes fortsetzen.
  • aus ?:\Kieselstein\dist\bootstrap\service\windows\ install-kieselstein-services.bat aufrufen
  • in die Dienste / Services wechseln und die beiden Kieselsteindienste starten. Beim ersten Start hat sich die Überwachung des deployments bewährt. Sollte diese mit failed stehen bleiben, dann im log nachsehen. Hier kann man meist, auch wenn es mühsam ist, die Ursache finden.

Fehlermeldung beim Einrichten des Dienstes Kommt beim Einrichten des Dienstes die Meldung so bedeutet dies “nur”, dass bisher kein Kieselstein ERP Dienst eingerichtet ist (und nicht upgedated werden konnte). Du findest trotzdem nun die neu eingerichteten in den Windows-Diensten.

Tipps und Tricks

Eine lose Sammlung von Tipps, KnowHow und ähnlichem für den/die Consultant im Rahmen der Installation.

ACHTE immer auf die Sicherheit Durch das öffnen von Ports, gibt es natürlich auch mehr Möglichkeiten das System anzugreifen. Also denke auch an die Verwendung von VPN Tunnel usw..

Dass Betriebssystem, Virenscanner und Firewall immer aktuell sind, ergibt sich schon aus der DSGVO.

Die Themen rund um die Sicherheit, Passwörter abweichend vom default usw. sind im Web ausreichend abgehandelt. Kieselstein ERP eG Mitglieder schauen im Wiki unter dem Suchwort Sicherheit nach.

Ports die für die Kommunikation benötigt werden

Port Zweck
8080 für den Zugriff auf den Kieselstein ERP Applikationsserver
8082 für den Zugriff auf die RestAPI
5432 für den Zugriff auf die Postgres-Datenbank
1433 für den Zugriff auf die MS-SQL Datenbank
22 für Linux, SSH Kommunikation

Das sind die Standard Ports. Diese können, z.B. für weitere parallele Installationen am gleichen Rechner auch abweichen.

Siehe dazu: ….

Ergänzung an der pg_hba.conf

Hier sollte zusätzlich der gewünschte Netzwerkkreis eingetragen werden, mit dem auch ein Zugriff erlaubt ist. Beispiel:

  • host all all 192.168.xx.0/24 scram-sha-256

was bedeutet, dass aus dem Subnetz xx alle IP-Geräte die ein Passwort wissen auf die Datenbank zugreifen können.

Die pg_hba.conf findest du, je nach Betriebssystem unter:

Betriebssystem Pfad Bemerkung
Windows(R) c:\Programm Files\PostgreSQL\VV\data\
Debian /etc/postgresql/14/main Achtung: Wenn englisch installiert muss der datestyle auf ‘ios, dmy’ gestellt werden.
Ubuntu /etc/postgresql/14/main ev. muss zusätzlich in der postgresql.conf listen_addresses=’*’ gestellt werden
iOS ..

Starten der Dienste unter Linux

systemctl start/stop wildfly.service systemctl start/stop tomcat.service

Betriebssystem Pfad
Debian /etc/systemd/system/,

Ändern der IP-Adresse des Kieselstein ERP Servers

ACHTUNG: Wenn auf dem Kieselstein ERP Server die IP Adresse verändert wurde, so muss danach unbedingt der Kieselstein ERP Server neu gestartet werden.

Vorbereitung für die Client-Installation

Vom Client aus auf http://Kieselstein-ERP-SERVER-IP-Adresse:8080 gehen.

Auf der Willkommensseite findest du links unten den Link zu download clients.
hier werden alle Dateien angezeigt die im Server unter c:\Kieselstein\dist\clients zur Verfügung stehen. D.h. üblicherweise werden hier die angepassten ?:\Kieselstein\dist\client Verzeichnisse als Client.zip einkopiert und somit dem Anwender zur Verfügung gestellt. Bewährt hat sich auch, dass hier ein aktuelles Java für den Client hinterlegt wird.
https://www.azul.com/downloads/?version=java-11-lts&os=windows&architecture=x86-64-bit&package=jdk-fx#zulu

Welche Java Version für den Server?

Der Basis-Link für das erprobte Zulu Java findest du unter https://www.azul.com/downloads/?package=jdk#zulu Hier dann für den Server nur Java 8 mit jdk-FX verwenden.

Für Windows-User empfiehlt sich die .msi herunterzuladen.

virtualisierte Betriebsumgebungen

Bitte achte massivst darauf, dass auch in virtuellen Betriebsumgebungen ausreichen Ram zur Verfügung steht. Es kommt leider immer wieder vor, dass manche IT-Betreuer glauben, der VM ausreichend Platz gegeben zu haben, es kommt dieses RAM aber bei der VM nicht an. Hier empfiehlt sich, eine fixe Speicher Zuweisung zu verwenden.

Wie gehts nun weiter?

1 - Installation Kieselstein ERP Server unter Debian

Installation Kieselstein ERP Server unter Debian

Den Kieselstein ERP Server auf einem frischen Debian installieren.

Debian 11 installieren mit root und user

Was mir alles so bei der Installation unter Debian unterkommt.
Es ist dies ein Debian 11 mit Desktop Gnome (Std)

  • installiert in einer VM
  • Ram: 6144 MB, Minimaler Ram 4096MB Maximaler Ram 8192MB
  • Prozessoren: 4
  • Festplatte 64GB

Boot-Auswahl:

  • Grafical install von einer Netzwerk DVD Installation
  • Sprache: German / Deutsch
  • Land: Österreich / Deutschland / Schweiz / Liechtenstein
  • Tastatur: Deutsch
  • Rechnername: Großbuchstaben, Ziffern, Minus
  • Domain-Name … leer belassen
  • Eine Platte / Laufwerk eingerichtet
  • Systemumgebung Debian desktop environment
    • Gnome, default
    • Standard-Systemwerkzeuge

Dauer ca. 30 Minuten

ssh server einrichten

OpenSSH Server installieren
apt update
apt upgrade
apt install openssh-server

Root Login per SSH ausschalten
nano /etc/ssh/sshd_config
und folgende Zeile ändern

PermitRootLogin yes

und speichern.

systemctl restart ssh

Midnight Commander

Ein praktische Werkzeug ist auch der Midnight Commander.

apt install mc

gedit

Natürlich kann man die Dateien mit dem Nano bearbeiten. Praktischer ist jedoch der gedit.

Anmelden und als root arbeiten

Da üblicherweise kein root installiert wird, man aber die Rechte braucht, einfach mit su root und dem eigenen PW anmelden.

IP Adresse des Rechners

ip address

Java installieren

www.azul.com, klick auf Downloads
runterscrollen und Java8 LTS, Debian, x86 64.bit, JDK FX auswählen = 8u372b07

  • .deb herunterladen

  • Terminal öffen,

  • su - root

  • auf das home des herunterladenden Users wechseln und ins Downloads, z.B. /home/keg/Downloads

  • apt install ./zulu8.70.0.23-ca-fx-jdk8.0.372-linux_amd64.deb

  • danach mit java -version überprüfen

Installation postgresql

  • www.postgresql.org/download/linux/debian
  • auf Copy Script klicken
  • ins Terminal wechseln, in dem man als su - root angemeldet ist
  • Einfügen (rechte Maus)
  • hinten um -14 für Postgres 14 ergänzen und enter.

Prüfen ob läuft:

  • systemctl is-enabled postgresql
  • systemctl status postgresql

Password für User postgres setzen

  • sudo -u postgres psql

  • ALTER USER postgres WITH PASSWORD ‘postgres’; ACHTUNG: Beachte die GoDB

  • \q (um den psql Editor wieder zu verlassen)

Als su - root

  • Pfad: /etc/postgresql/14/main

  • Einstellen postgresql.conf

    • listen_addresses = ‘*’ # what IP address(es) to listen on; ist im Debian default auf localhost
    • datestyle = ‘iso, dmy’ # umstellen!
      Auf die Timezone achten. Diese muss auf ‘Europe/Vienna’ (bzw. Berlin gerne auch Zuerich) stehen
  • Gegebenenfalls auch den Zugriff von außen einrichten. D.h.:

    • Einrichten mit User postgres, PW: postgres
    • Ergänzen der pg_hba.conf host all all 127.0.0.1/32 scram-sha-256 host all all 192.168.xx.0/24 scram-sha-256
  • Datenbankserver neu starten systemctl restart postgresql

Installation Kieselstein ERP, Version :

  • Verzeichnis anlegen
    • cd /opt
      • mkdir kieselstein
      • cd kieselstein
      • mkdir dist
      • mkdir data

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

JAVA_HOME

Im Debian 11 ist das eigentliche Java unter /usr/lib/jvm/zulu-fx-8-amd64/jre/bin/java

Wir setzen die enviromentevariable unter /etc/environment

  • export JAVA_HOME=/usr/lib/jvm/zulu-fx-8-amd64/jre
  • export KIESELSTEIN_DIST=/opt/kieselstein/dist
  • export KIESELSTEIN_DATA=/opt/kieselstein/data

Anmerkung: Das wirkt nur für den Service nach einem Neustart des gesamten Systems.
Um den Server manuell starten zu können, empfiehlt sich die Einrichtung des unten beschriebenen Start.sh

Rechte setzen

Als su - root auf /opt wechseln und
chmod 777 kieselstein -R
ACHTUNG: Sicherheit!!

Herunterladen aktuelle Kieselstein ERP Version

Siehe

Die Datei von Gitlab herunterladen, mit dem Archivemanager öffnen und in das dist die Dateien aus dem Archivemanager reinkopieren.

Erzeugen der Datenbanken

In das Verzeichnis /opt/kieselstein/dist/bootstrap/database wechseln

  • sudo -u postgres
  • ./createDb.sh
    Anmerkung: damit wird das als User Postgres ausgeführt und daher das PostgresPW entsprechend 4x abgefragt
  • danach die Default Daten einfügen
  • sudo -u postgres ./fillDb.sh
    Anmerkung: Auch hier das PW für den user Postgres angeben (1x)

Einrichten des Dienstes und starten des Servers

als root nach /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

läuft der Server ?

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

  1. /opt/kieselstein/dist/wildfly-12.0..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 (Firefox), http://localhost:8280/kieselstein-rest-docs/ muss die Restapi Dokumentation bringen. Hier idealerweise interactive interface nutzen und beide Ping testen.
  3. Client starten und mit Admin, admin anmelden.
    Also unter /opt/kieselstein/dist/clients/kieselstein-ui-swing-xxxx.tar.gz mit dem Archivemanager öffnen und idealerweise nach /opt/kieselstein/dist/client/ entpacken und danach aus …/bin/ den ./kieselstein-ui-swing starten

Schriften installieren

Kommt beim Drucken die Meldung

Schriftart ’null’ am Server nicht verfügbar, so müssen die in den Reports verwendeten Schriften noch installiert werden.
Üblicherweise wird von Kieselstein ERP die Schriftart Arial verwendet. D.h. diese nachinstallieren. Dazu:

  1. herunterladen installationspaket: ttf-mscorefonts-installer_3.8_all.deb -> Download erlauben
  2. in das Downloadverzeichnis wechseln
  3. als su - root
    apt install ./ttf-mscorefonts-installer_3.8_all.deb
    lädt ein Menge Dateien von sourceforge herunter.
    Am Besten danach den Server neu starten (shutdown -r now)

weiters zu tun

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

Installation auf Hyper V

Anmerkungen worauf bei der Installation mit Hyper V zu achten ist:

  • Generation virtueller Computer -> 2. Generation
  • Minimales und maximales Ram angeben
  • Anzahl der erlaubten Prozessoren definieren
  • SCSI-Controller
    • Hinzufügen von DVD Laufwerk
    • Imagedatei für Debian angeben
  • Firmware
    • Bootreihenfolge auf DVD Laufwerk

Anmerkung: Wenn das Ding nicht von dem ISO Image Boote will, die Netzwerkkarte auf nicht verbunden stellen

Ansicht

Wenn man nun versehentlich die Ansicht der VM auf 25% stellt, kann man nicht mehr zurück, weil das Menü nicht breit genug ist.

Der Trick der hilft ist,

  • die Verbindung zur Maschine herstellen,
  • die Maus über den Menüpunkt Ansicht stellen
  • die VM mit Strg+S starten und sofort
  • auf Ansicht klicken
  • Dann wieder auf Automatik stellen Hat mit Debian nichts zu tun, auch wenn im Hyper V da einige andere Dinge fehlen.

Auflösung im Hyper V

Bildschirmauflösung unter Hyper V ändern, ergänzen des Booteintrages

  • als root anmelden (su - root)
  • auf etc/default wechseln
  • mit nano die datei grub editieren und
  • in der Zeile die mit GRUB_CMDLINE_LINUX_DEFAULT beginnt hinten video=hyperv_fb:<Breite>x<Höhe>
    dazuschreiben. z.B.: Breite = 1680 x 1050
    ACHTUNG: muss unter Hochkommas sein. D.h. die Zeile lautet dann
    GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash video=hyperv_fb:1680×1050”
    • danach update-grub
    • danach neu starten (shutdown -r now)

2 - 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 anderen 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.

./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:8082/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.

2.1 - Update Kieselstein ERP Server von Version 0.2.x aud 1.x.x unter Windows

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.

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

Falls möglich snapshot vom Server machen.

Das aktuell Installierte Kieselstein in ein eigenes Verzeichnis mit der aktuellen Versionsnummer im Namen wegsicher. 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 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.

Hinweis: Sollten Sie keine angepassten Anwender Reports auf Ihrem System haben kann dieser Schritt übersprungen 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 eine Nginx-Webser als Proxy vorgeschaltet werden (siehe hierfür: 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.

3 - Installation Kieselstein ERP Server unter Windows

Installation Kieselstein ERP Server unter Windows

Den Kieselstein ERP Server auf einem frischen Windows installieren.

Installation Datenbankserver

Es werden aktuell ausschließlich PostgresQL Version 14 und 15 unterstützt. MS-SQL wird nicht unterstützt. Für eine eventuelle Konvertierung deiner MS-SQL Datenbank wende dich bitte an die Kieselstein ERP eG. Neuere PostgresQL Versionen können funktionieren, sind aber aktuell von uns nicht freigegeben.
Bei der Installation darauf achten, dass nur PostgresSQL Server und die Command Line Tools installiert werden.

Bei der Installation muss auch das Passwort für den User Postgres angegeben werden. 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

  • Azul Java 11 mit FX installieren Siehe hierfür auch Java-Version.
  • darauf achten, dass Java Home gesetzt wird
  • Prüfen, dass Java auch installiert wurde durch Command Shell,
    Java -version
    

Setzen Environmentvariable

  • path Erweiterung auf Postgres “?:\Program Files\pgAdmin 4\v6\runtime”
  • KIESELSTEIN_DIST=?:\kieselstein\dist
  • KIESELSTEIN_DATA=?:\kieselstein\data
  • MAIN_DB_PASS=(Das oben definierte Datenbank-Passwort)
  • DOC_DB_PASS=(Das oben definierte Datenbank-Passwort)

Es gibt noch weitere optionale Environment-Variablen welche in der README.md Datei bei den Start-Scripten (im KIESELSTEIN_DIST/bin/) beschrieben sind.

umgebungs_variablen.png

Achtung: Damit die Umgebungsvariablen für den Kieselstein-Dienst funktionieren müssen diese als Systemvariablen hinterlegt werden.

Installation Liquibase

Für die Datenbankmigrationen, muss das Tool liquibase installiert werden. Akutelle Liquibase Version vom git Repository runterladen: https://github.com/liquibase/liquibase/releases Hier biss zu den Assets runterscrollen und dann den passenden (Windows-)Installer auswählen. Z.B.: liquibase-windows-x64-installer-x.x.x.exe

Den Installer am Server ausführen und durchklicken.
Bitte darauf achten, dass Add Liquibase to PATH angehakt bleibt.

Achtung nach der Installation von Liquibase müssen für die weiteren Arbeiten neue Eingabeaufforderungen (cmd) gestartet werden! Ein Neustart des Servers ist nicht erforderlich.

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:

tar -xvf <pfad-zum-dist-packet>.gz -C ?:\kieselstein\

Datenbank Initialisieren

Die installierte ?:\kieselstein\dist\bootstrap\liquibase\createdb.bat ausführen. Hier muss dann 4x das Passwort für den Postgres-Benutzer eingegeben werden.

In der Command Shell in das Verzeichnis navigieren und mit liquibase den update Befehl durchführen:

cd C:\kieselstein\dist\bootstrap\liquibase
run-liquibase.bat update

Einrichten des Dienstes und starten des Servers

Mit Administrationsrechten das Install-Script ?:\kieselstein\dist\bootstrap\service\windows\install-kieselstein-services.bat ausführen.

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.

Mit Administrationsrechten das Install-Script ?:\kieselstein\dist\bootstrap\service\windows\install-kieselstein-nginx-service.bat ausführen.

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.

TODO Hinterfragen ob die Config gleich ins richtige Verzeichnis vom Dist-Pack geladen werden kann oder ob das manuell gemacht werden muss.

läuft der Server?

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

  1. ?:\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:8082/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.

3.1 - Update Kieselstein ERP Server von Version 0.2.x aud 1.x.x unter Windows

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

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.

Kieselstein Dienste deaktivieren

Dienste beenden

  • Beide Kieselstein Dienste (Kieselstein Main Server & Kieselstein REST Server) beenden

Backup des Kieselstein Dist-Verzeichnis erstellen

Das aktuell Installierte Kieselstein in ein eigenes Verzeichnis mit der aktuellen Versionsnummer im Namen wegsicher. Beispiel: C:\kieselstein nach C:\kieselstein-0.2.10 kopieren.

Neues Java Installieren

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

  • darauf achten, dass Java Home gesetzt wird

  • Prüfen, dass Java auch installiert wurde durch Command Shell,

    Java -version
    

Altes Java Deinstallieren (optional)

Über “Programme hinzufügen oder entfernen” nach JDK Suchen und die Java 8 Version deinstallieren.

Achtung: Diesen Schritt nur durchführen, wenn auf dem Server sicher keine andere Anwendung mehr das Java 8 JDK benötigt! Auf jeden Fall ist sicherzustellen, dass die JAVA_HOME Variable auf das Neue JDK 11 gesetzt wurde:

Nicht mehr benötigte Anwendungen entfernen

Bestehende Kieselstein Dienste deinstallieren

Dafür das Skript ?:\kieselstein\dist\bootstrap\service\windows\delete-kieselstein-services.bat mit Administrator Rechten ausführen.

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. Hier muss der bestehende ?:\kieselstein\dist\wildfly-12.0.0.Final\server\helium\report nach ?:\kieselstein\dist\wildfly-26.1.2.Final\kieselstein\reports kopiert werden.

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

Hinweis: Sollten Sie keine angepassten Anwender Reports auf Ihrem System haben kann dieser Schritt übersprungen werden.

ACHTUNG: Die Definitionen für dein JasperStudio entsprechend übertragen und auch die Einstellungen im Jasper Studio entsprechend anpassen.
Dies idealerweise bevor du die nachfolgenden Verzeichnisse löscht.

  • In Jasperstudio direkt. Eigenschaften des Projekts auf den neuen Pfad ändern. Z.B. von …?:\kieselstein\dist\wildfly-12.0.0.Final\server\helium\report auf ?:\kieselstein\dist\wildfly-26.1.2.Final\kieselstein\reports\system zu ändern.
    Denke auch daran dass die .classpath entsprechend anzupassen ist.

Alte Programmdateien löschen

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

  • ?:\kieselstein\dist\apache-tomcat-8.5.93
  • ?:\kieselstein\dist\bin
  • ?:\kieselstein\dist\bootstrap
  • ?:\kieselstein\dist\service
  • ?:\kieselstein\dist\wildfly-12.0.0.Final

Installation Kieselstein ERP, Version (aktuelle Version):

Herunterladen aktuelle Kieselstein ERP Version

TODO Referenz auf die richtige Version setzen.

Siehe auch

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

tar -xvf <pfad-zum-dist-packet>.gz -C ?:\kieselstein\

Datenbank Updaten

In der Command Shell in das Verzeichnis navigieren und mit liquibase den update Befehl durchführen:

cd C:\kieselstein\dist\bootstrap\liquibase
run-liquibase.bat update

Einrichten des Dienstes und starten des Servers

Mit Administrationsrechten das Install-Script ?:\kieselstein\dist\bootstrap\service\windows\install-kieselstein-services.bat ausführen.

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 eine Nginx-Webser als Proxy vorgeschaltet werden (siehe hierfür: 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:

?:\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.

4 - Installation Kieselstein ERP Server unter Ubuntu

Installation Kieselstein ERP Server unter Ubuntu

Hier kommen die eventuellen Besonderheiten zu einer Ubuntu Installation rein. Aktuell bitte wie unter Debian beschrieben vorgehen.

www.azul.com/downloads/ … damit die Werbung nicht kommt

wenn apt nicht gegangen weil z.B. zu wenig Rechte dann apt reinstall usw.

apt install postgresql holt die aktuellste Postgresversion derzeit 16 ACHTUNG: Installiert OHNE Passwort. daher su postgres psql damit bist du im Scripteditor commander nun

Ubuntu Version lsb_release -a

su postgres -> der Sudo geht irgendwie nicht Mit sudo su kannst du auch root rechte bekommen

Anmerkung Wenn das kopieren per Fernwartung nicht geht, dann über den Firefox auf die docs.kieselstein-erp.org gehen und von dort doe Kommandos herauskopieren. Im Ubuntu dann mit rechter Maustaste in den Eingabefeldern einfügen.

Je nach Maschine für das filldb sich etwas gedulden. Das kann dauern.

export KIESELSTEIN_JAVA_OPT_XMX=5G export KIESELSTEIN_JAVA_OPT_XMS=512m

reboot … = shutdown -r now

5 - Installation Kieselstein ERP Server unter Windows(r)

Installation Kieselstein ERP Server unter Windows(r)

Hier findest du ergänzende Punkte zur Installatiion unter Windows. Die Standard-Installation ist im Hauptkapitel beschrieben.

Firewall

Nach der Installation und dem erfolgreichen Test daran denken, dass in der Regel, zumindest für den Port 8080.


8280 wenn auch die Rest-API verwendet werden sollte

5432 wenn auch von innerhalb des Netzwerkes auf den PostgresQL zugegriffen werden sollte.

ACHTUNG: Sicherheit!!

Der Server startet nicht

Im Deploymentsverzeichnis (?:\Kieselstein\dist\wildfly-12.0.0.Final\standalone\deployments) steht kieselstein-0.0.11.ear.failed.
Ev. auch nur jackrabbit-jca-1.5.7.rar.failed.
So kann man in den beiden Dateien nachsehen.
Effizienter ist vermutlich in der ?:\Kieselstein\dist\wildfly-12.0.0.Final\standalone\log\server.log nachzusehen.
Dafür zuerst das log Verzeichnis löschen um nur die aktuellsten Einträge zu bekommen und dann den Server erneut starten, bis wiederum im Deplomentsverzeichnis das failed kommt.
Nun sucht man in der server.log am Besten von oben nach dem ersten Eintrag mit Error. Meist findet man einen Eintrag wie z.B.:
2023-09-22 17:15:23,014 ERROR [org.apache.jackrabbit.core.fs.db.DatabaseFileSystem] (MSC service thread 1-3) failed to initialize file system: org.postgresql.util.PSQLException: FATAL: Passwort-Authentifizierung f�r Benutzer �postgres� fehlgeschlagen

Dies bedeutet, dass der Applikationsserver sich nicht an der Datenbank anmelden konnte. Versuche nun dich mittels PGAdmin auf der Datenbank mit postgres, postgres anzumelden. Ist dies nicht möglich, stimmt das Passwort der Datenbank nicht. Eventuell wurde bei der Installation des Postgresservers ein falsches oder kein Passwort vergeben. D.h. es muss das Passwort geändert werden. Wenn du das andere(falsche) Passwort kennst, melde dich mit diesem an und ändere das Passwort. Wenn du dieses nicht kennst, muss zuerst der Zugang zum PostgresQL-Server auf dem Rechner auf dem dieser läuft so freigeschaltet werden, dass du dich auch ohne Passwort anmelden kannst. Dafür muss die pg_hba.conf angepasst werden. Diese findest du unter “?:\Program Files\PostgreSQL\14\data". Ergänze diese nun abhängig von deiner IP-Konfiguration um

  • host all all 127.0.0.1/32 trust (IP V4)
  • host all all ::1/128 trust (IP V6)

Nun muss der postgresql Dienst neu gestartet werden.

Wechsle nun als Administrator nach ?:\Program Files\PostgreSQL\14\bin
und rufe psql.exe -U postgres auf

Nun mit

\password postgres

das Passwort auf postgres setzen und dann mit

\q

Das Programm wieder verlassen.

Nun musst du dich auch im PGAdmin mit dem Passwort anmelden können.
Bitte beachte, dass ab PostgresQL 15 der PGAdmin 7 zum Einsatz kommen sollte.

Info:
Bei der Modifikation der pg_hba.conf auf IP V4 bzw. IP V6 achten! Kommt
psql: Fehler: Verbindung zum Server auf »localhost« (::1)
So fehlt der passende Eintrag in der pg_hba.conf

Info:
Nach diesen Änderungen empfiehlt sich auch die Verzeichnisse log, tmp, data aus dem standalone (?:\kieselstein\dist\wildfly-12.0.0.Final\standalone) zu löschen, damit die ganzen falschen Einträge weg sind.

6 - Anforderungen Kieselstein ERP Server

Anforderungen an den Kieselstein ERP Server

Die Anforderungen an den Kieselstein ERP Server sind von verschiedenen Eckpunkten abhängig. Im wesentlichen sind dies Benutzeranzahl und Betriebssystem.

Server

Windows

Die Verwendung eines 64Bit Betriebssystems ist heutzutage selbstverständlich.
Bei Verwendung von Windows gehen wir davon aus, dass dieses, auch für den Testbetrieb, ordnungsgemäß lizenziert ist.

Eigenschaft Betriebssystem Datenbank Kieselstein
appServer
je Power User je std. User
Kerne 1 1 1 0,5 0,1
Ram [GB] 4 2 2 0,1 0,01
Platte [GB] 100 70 70

Ganz wesentlich in die Geschwindigkeit des Gesamtsystems geht die Zugriffsgeschwindigkeit der / auf die Festplatten ein. Wir raten, auch wenn es teuer ist, zu SSD Platten. Sollte dies nicht möglich sein, zu Raid10.
ACHTUNG: Bei Virtualisierung kommt es immer wieder vor, dass die Platten zwar sehr schnell sind, aber da alle virtuellen Maschinen auf die gleiche Hardware zugreifen, ist im Endeffekt der Festplattencontroller der Flaschenhals. Hier ist zusätzlich zu bedenken, dass die Zugriffe oft mit kleinen Datenmengen erfolgen. D.h. die in der IT üblichen Geschwindigkeitsmessungen haben keine Aussagekraft (die Optimierungsalgorithmen der VM’s greifen leider nicht).

Die Größe der Platten hängt auch an der Verwendung der Dokumentenablage. Kann also, bei intensiver Nutzung, was im Sinne des Systems ist, auch deutlich darüber hinaus anwachsen.

In dieser Betrachtung ist der, für das unumgängliche zumindest tägliche Backup benötigte Platz, nicht berücksichtigt. Auch dies hängt von der Datenmenge der Installation ab. So beginnen Neuinstallationen bei einigen wenigen GB und wachsen danach schon mal auf 150GB oder mehr an.

Eine wesentliche Frage in diesem Zusammenhang ist das Thema des Backups bzw., wie alt dürfen die Daten bei einem eventuellen Ausfall sein. Das geht bis hin zu gespiegelten Datenbankservern.
Diese Dinge klären wir am Besten in einem persönlichen Gespräch.

Welche Windows Betriebssysteme können genutzt werden?

Auch das hängt vom Einsatzbereich ab.
Für eine anfänglich kleine Installation mit 2Usern reicht auch mal ein Windows11 (Windows 10 wird nicht mehr lange zur Verfügung stehen). Für den Einsatz in einem Unternehmen mit 5 Usern oder mehr, raten wir zum Einsatz eines Server Betriebssystems. Da der ganze grafische Overhead auf dem Server nicht benötigt wird, gerne auch Linux, Debian.
In jedem Falle aber bitte ausschließlich 64Bit-Systeme.

Benötigte Werkzeuge für den Server

Postgre-SQL Datenbank

Es werden die Version 14 oder 15 der PostgreSQL Datenbank unterstützt. Siehe Downloads unter: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

Liquibase Migrationstool

Für die Datenbankmigrationen wird das Liquibase Tool benötigt. Die Aktuelle Liquibase Version kann vom git Repository heruntergeladen: https://github.com/liquibase/liquibase/releases werden. Hier biss zu den Assets runterscrollen und dann den passenden (Bsp.: Windows-)Installer auswählen. Z.B.: liquibase-windows-x64-installer-x.x.x.exe

Java-Version

ACHTUNG Java Version 11 ist erst ab der Kieselstein-Version 1.0.0 und höher unterstützt vorher bitte Java-Version 8 verwenden!

Es wird für den Server die Azul-Java Version 11 benötigt. Siehe dazu www.azul.com, klick auf Downloads
runterscrollen und Java11 LTS, (das jeweilige Betriebssystem auswählen), x86 64.bit, JDK FX auswählen.

Nginx Webserver

Wenn die REST-Schnittstelle oder andere Dienste über das Internet zur Verfügung stehen sollen, dann sollte dies über einen Nginx-Webserver werden. Es wird für die Installation eine Default-Konfiguration (unter Kieselstein/dist/bootstrap/) mit ausgeliefert wo der Port 8280 ohne SSL vorkonfiguriert ist (wie es bei früheren Versionen mit dem Tomcat durchgeführt wurde).

Unter nginxtutorials.com ist auch beschrieben wie ein Lets Encrypt-SSL-Zertifikat erstellt werden kann mit Nginx.

Alternativ kann natürlich auch ein Selbstsigniertes Zertifikat für SSL mit Nginx verwendet werden.

weitere Last am Server

Es gibt inzwischen noch eine Anzahl von Funktionen / Zugriffen auf den Server, die für jeden Zugriff mehr oder weniger Serverlast ziehen. Auch diese sind in den obigen Überlegungen zu berücksichtigen.

  • RestAPI, je nach Intensität der Nutzung
  • ZE-Terminals je nach Buchungshäufigkeit. Es ist ein entsprechender Unterschied ob nur Kommt/Geht (Anwesenheitszeit) gebucht wird, oder die papierlose Fertigung mit Zeichnungen, Auswahllisten usw. verwendet wird. Insbesondere die Zeitverteilungsberechnungen können entsprechende Serverlast erzeugen.
  • Anwesenheitsliste(n) Auch hier macht es einen großen Unterschied, ob 10 Terminals im 30Sekunden Takt jeweils eine neue Liste anfordern, oder ob diese ober den Anwesenheitslisten Proxy eigenständig aufbereitet werden.
  • die Listenauswertungen per Web-Pages. Auch diese Auswertungen brauchen entsprechende CPU Leistung

Client

Hier reichen heutzutage (2023) übliche Standard PC’s, mit mindestens 64Bit Betriebssystemen und 8GB Ram (wenn nur der Kieselstein-ERP Client läuft). Empfohlen 16GB Ram, gerne mehr.
Auch hier raten wir zur Verwendung von SSD Platten, da auch diese massiv in das Geschwindigkeitsverhalten eingehen.

7 - Datensicherung

Einige Gedanken zur Datensicherung

Da wir in der Praxis immer erleben, dass die Datensicherung zwar angeblich gemacht wird, aber dann doch nicht funktioniert, hier einige Gedanken dazu.

Wozu überhaupt Datensicherung?

Wie hoffentlich allgemein bekannt ist, ist gerade die IT nicht vor Fehlern gefeit. D.h. deine Daten und diese sind heutzutage das Herzstück deines Unternehmens, müssen in jedem Falle “jederzeit” zur Verfügung stehen.
Solltest du anderer Meinung sein, schalte PC und Handy aus, was geht dann für dich noch?

Wo aufbewahren?

Die Datensicherung muss mechanisch vom Rest der IT getrennt sein.
D.h. die Bänder, Kassetten dürfen nach der durchgeführten Datensicherung auch elektrisch nicht mehr mit dem Rest der IT verbunden sein. So werfen RDX Laufwerke bzw. Streamer am Ende des positiv abgeschlossenen Sicherungsvorganges die Kassette aus.
Üblicherweise ist das so organisiert, dass eine Bürokraft sich um die tägliche Sicherung kümmert und wenn das Medium nicht ausgeworfen wurde, die Verpflichtung hat die zuständige Stelle zu informieren.
Dass zumindest die Monatssicherung außer Haus gebracht wird, ist selbstverständlich. Wenn du Tagessicherungen machst, was für eine Produktionsunternehmen eher die Regel ist, so gilt dies für die Wochensicherungen. Das außer Haus bringen kann ein Bank-Safe sein, oder deine weit genug entfernte Privat-Wohnung. Der Gedanke hier ist immer, wenn jemand / etwas, beide Daten(stämme) zugleich stiehlt, angreift, also z.B. den Server klaut und deine Kassetten aus dem Privathaus, so hast du sowieso ein anderes Problem.

Wieviele Medien brauche ich?

Um diese Frage zu beantworten, muss man sich überlegen, wie oft ich eigentlich sichern muss.
Der Schlüssel dafür ist für mich:

  • wenn zur letzten Sekunde des gerade durchgeführten Backups, welches noch nicht vollständig ist, das System ausfällt, so sind meine (gesamten) Daten weg.
  • kann ich diese wiederherstellen?
  • wie lange dauert die Nacherfassung?

D.h. wenn ich die Daten wiederherstellen kann und ich diese innerhalb einer Wochenendaktion nacherfassen kann, so ist der Zeitraum für den ich das mache der Zeitraum für den ich meine Sicherung machen muss. Ich würde jedoch immer für jede Woche eine Sicherung machen (man vergisst zu viel). Die Frage ist eher, ob eine Tagessicherung ausreicht, oder ob es stündliche Sicherungen von Teilen sein müssen, oder ob es gespiegelte Server braucht, welche in der Regel nur eine Datenbanktransaktion hinten sind.
Man sollte das auch nicht übertreiben. Wenn ich in fünf Jahren, die Zeitdaten eines Tages von meinen 150Mitarbeiter:innen nicht exakt habe, wird mich das nicht umbringen.

Das ist doch alles so teuer?

Ja das stimmt. So kostet aktuell eine 1TB RDX Kassette ca. 180,- €. Davon brauche ich, bei wöchentlicher Sicherung und Monatsbackup 4 + 12 Stk -> 2.880,- €.
Setzt man nun für die Nacherfassung einen Stundensatz von 80,- € (Inkl. aller Nebenkosten) an, so sind das 36Std, also 4Menschtage!
Dazu kommt: Ein IT-Systemausfall ist komplett versicherbar, die Datenwiederherstellung aus einem guten Backup ist darin enthalten, aber das Herzaubern von Daten ist nicht versicherbar.

Wie lange kann ich mir einen Systemausfall leisten?

Heutzutage ist alles in der IT gespeichert. Also z.B. auch die Telefonnummern in der Telefonanlage, welche ja auch ein IT System ist. Fällt nun die IT aus, woher weißt du die Telefonnummern der Kunden die du anrufen solltest?
Es gibt schon sehr lange Statistiken, die besagen eine dreitägige Nicht-Verfügbarkeit des IT-Systems haben einen Großteil der Unternehmen nicht überstanden.

Desaster Recovery Time

Zu obigem Thema kommt auch dazu, wie lange brauche ich um überhaupt die Daten wiederherstellen zu können. Es ist ja wunderbar wenn alles, in der Regel in Images gesichert ist. Braucht man nun eine einzelne Datei daraus, so muss man, je nach Backupsystem, das gesamte Image zurücksichern (wo findet man schnell mal 500GB freien Platz) um dann die eine Datei mit 2GB daraus extrahieren zu können. Oder eben auch, das Image ist gesichert, muss aber über die Internetleitung übertragen werden. Diese ist im Moment aber gut ausgelastet bzw. die Übertragung von großen Datenmengen ist noch immer problematisch, muss über eine geeignete Software gemacht werden.

Bedenke dies alles mit, auch wie kommt man zu den verschiedensten Passwörtern usw. Wer hat die Daten, wo sind sie? Der/diejenige ist gerade in Urlaub, im Krankenhaus. Woher weiß ich überhaupt von wann (Zeitpunkt) das Backup ist, das ich einspielen möchte.
Wir raten mach dir einen definitiven Plan, wie im Falle des Falles vorzugehen ist. Das beginnt bei der Beschaffung eines neuen Servers (im nächsten Computershop) und endet bei den Zeiten die für die verschiedensten Restores benötigt werden. Schreib diese Tabelle mal zusammen und lass diesen schlimmen Fall dann am 24.12. um 16:30 auftreten. Wie sieht der Zeitablauf aus. Wenn du dann auch noch einen Datenverlust hast, denk an die dann sehr kurzen Fristen der DSGVO. Ich wünsche uns allen, dass wir das nie brauchen.

Reicht es wenn ich Veränderungen sichere?

Diese Frage kommt immer bei entsprechend großen Datenmengen, also wenn die Nacht für die Sicherung zu kurz wird.
Unsere Erfahrung. Nur Veränderungssicherungen sind extrem gefährlich. Denn im Falle der Rücksicherung braucht nur ein Medium in der Kette defekt zu sein und das Restore ist nicht mehr möglich. Daher muss in den Sicherungskonzepten immer ein aktuelles und vollständiges Backup auf dem Sicherungsmedium gespeichert sein.

Wie oft muss ich die Sicherung prüfen?

Reicht wenn ich schaue dass die Files erzeugt werden?

Bitte achte bei der Erzeugung der Backupdateien darauf, dass das Ende des Backups rechtzeitig vor dem Weiterkopieren auf das Sicherungsmedium abgeschlossen ist. Du solltest das monatlich überprüfen.

muss ich das Restore prüfen

Bitte nimm dir die Zeit, auch den Restore der Daten regelmäßig zu prüfen. Regelmäßig bedeutet in diesem Falle, zumindest jedes halbe Jahr, besser öfter. D.h. wirklich in das Testsystem die Backupdaten reinspielen. Es müssen die Daten des letzten Tages, also des Tages der Datensicherung im Zugriff stehen.
Es kommt leider zu oft vor, dass nur Filezuwachs und Datum geprüft werden, aber in der langen Kette irgend etwas nicht stimmt und du im Falle des Falles, dann doch keine Daten hast.

ich mache das alles Online

ACHTUNG: Im Falle eines Verschlüsselungstrojaners ist die Gefahr, dass durch einen Fehler / Irrtum in der Konfiguration, der Trojaner auch dein Backup verschlüsselt, extrem hoch. Nur sehr sehr versierte IT-Betreuer sind in der Lage dies richtig aufzusetzen.
Daher unser Rat, immer mechanisch getrennt aufbewahren. Und auch außer Haus. Denkt an Hochwasser, Blitzschlag, generelle Überspannung, Feuer, Diebstahl.
Ich habe persönlich noch keinen IT-Betreuer kennengelernt der das wirklich beherrscht. Daher rate ich lieber ein paar Euro mehr für die Sicherheit auszugeben.

Für umfassende Desaster Recovery Szenarien, wendet euch gerne an uns.

Zum Thema Angriffe siehe auch: Real-Time DDoS Attack Map | NETSCOUT Omnis Threat Horizon, https://horizon.netscout.com/

8 - Update

Muss ich regelmäßig updaten und wenn ja, was?

Für die Beschreibung des Server-Updates deiner Kieselstein ERP Installation siehe die betriebssystemspezifischen Updates in den Unterkapiteln

Allgemeine Punkte zum Thema Updaten / Aktualisieren

Da wir in der Praxis durchaus auch erleben, dass einfach ohne jegliche Notwendigkeit Updates eingespielt werden, hier unsere Gedanken und Informationen dazu.

Wir gehen hier davon aus, dass dein Kieselstein ERP-Server in einem sicheren Netzwerk betrieben wird.
Die nachfolgenden Infos sind für Server die vorne an der Front (= WorldWideWeb) stehen, wie z.B. WebServer, nicht zutreffend.

  1. Wozu muss aktualisiert werden? Gibt es einen wichtigen Grund?
    Nur dann sollte ein Update eingespielt werden.
    Es gilt der alte Grundsatz, never touch a running system!
    Wir können dies nur bestätigen.

  2. Die Kieselstein ERP eG mit Ihren Consultants sind KEINE IT-Betreuer.
    Bitte suche dir einen sehr guten IT-Betreuer. Der auch etwas von IT-Infrastuktur versteht und auch weiß, warum man mechanisch getrennte Backups braucht.

  3. Welchen Wert hat dein ERP System für dein Unternehmen?
    Welche Dinge werden passieren, wenn dein ERP nicht verfügbar ist?

  • ich weiß nicht was ich heute produzieren sollte
  • ich weiß nicht welche Waren ich einkaufen sollte
  • ich kann keinen Kunden anrufen und ihm erklären, dass er seine Lieferung später bekommt
  • ich habe keine Zeiterfassung meiner Mitarbeiter:innen und auch nicht meiner Maschinen
  • das kann man noch lange fortsetzen

Wenn nun durch die, bei manchen Menschen ausgeprägte Update-Manie, täglich / wöchentlich neue Versionen in das Live-System eingespielt werden, das oft noch ohne ein qualifiziertes Backup / Fallback zu haben, dein ERP System, warum auch immer, nicht mehr funktioniert, so können wir von der Kieselstein ERP eG dazu nur sagen, Pech gehabt. Hoffentlich etwas dazu gelernt.

Unsere Techniker:innen sind Programmierer oder Consultants, aber keine IT-Leute die sich mit Servern und PC’s mehr als notwendig herum ärgern.

Richtige Update-Vorgehensweise

  1. Ist das Update wirklich notwendig
  2. erstelle ein vollwertiges Backup. Du musst im Falle des Falles auf diesen Stand zurückstellen können.
    Manche unserer Mitglieder machen das in dem Sinne, dass die VM (virtuelle Maschine) des Echtsystems gesichert und kopiert wird. Beachte dazu das Thema vollwertige Sicherung einer VM mit der PostgresQL!
    Nun können am Echtsystem die Updates durchgeführt werden. Sollten sich Probleme herausstellen, kann man auf die qualifizierte und vollwertige Sicherung zurückgreifen.
    Oder es werden auf der kopierten VM die notwendigen Tests durchgeführt und erst danach die Updates am Echtsystem ausgerollt.
  3. Selbstverständlich ist dein IT-Betreuer greifbar und deine Tests der neuen Version werden zu normalen Bürozeiten durchgeführt und sind nicht zeitkritisch. D.h. ob eine Fehlerbehebung einige Tage dauert ist nicht relevant.

Was mache ich, wenn mein System gecrasht ist

In solchen Fällen, welche in der Regel, bei gut gepflegter Hardware, sehr sehr selten auftreten, helfen wir nach besten Kräften. Wir wollen grundsätzlich dass die Systeme laufen. So ist es uns kürzlich gelungen, ein gechrastes Windowssystem mit guten vorhandenen Backupdaten innerhalb von wenigen Stunden, nachdem der neue Server wieder zur Verfügung gestanden ist, zum Laufen zu bringen.

Dein Kieselstein ERP läuft immer auf einem Server, auch wenn der Rechner mit vielleicht etwas geringerer Leistung ausgelegt ist.
Server sind immer mit gespiegelten Platten oder Raid-Platten ausgestattet. Es läuft eine Festplattenüberwachung und die Meldungen des Überwachungssystems werden erst genommen und umgehend, raschest möglich, durch deinen IT-Betreuer beseitigt.
Dass ein qualifiziertes und verifiziertes Backup zur Verfügung steht, ist selbstverständlich.

Zusammenfassend:

Seid euch selber des Wertes eurer Daten und Systeme bewusst. Durch die Update Manie wird nur eine Geringschätzung den eigenen Systemen gegenüber zum Ausdruck gebracht.

Update Prozess für dein Kieselstein ERP:

Vor jedem Update Prozess muss sowohl von der Datenbank als auch von den File-Systemen ein Backup gemacht werden.

Update Schritte je Betriebssystem:

Debian Update
Windows Update

Clients

Nach dem Update des Servers müssen auch die Clients wieder aktualisiert werden. Siehe hierfür bitte Installation Clients.

Sollte die Version des Kieselstein-Clients nicht mit der Version des Servers oder der Datenbank übereinstimmen kommt eine entsprechende Fehlermeldung und kann die Anmeldung nicht durchgeführt werden.

Fehlermeldungen mit Client-Version 0.0.13 oder kleiner: Dies wird nach dem anmelde Versuch bei Versionen, welche vor der Versionierung erstellt wurden angezeigt. Hier muss das Client-Programm aktualisiert werden.

Ab Kieselstein Version 0.0.13 werden die jeweiligen Versionen angezeigt und die Anmeldung verhindert:

Troubleshooting

Wenn die Datenbankversion nicht mit der Wildfly Installation übereinstimmt, kommt beim Starten des Clients folgende Fehlermeldung: bzw. bei einem Umstieg von einer Version vor 0.0.13:

Am Server wird hier auch ein Fehler geloggt (kieselstein-dist/wildfly-12.0.0.Final/standalone/log/server.log)

2024-02-28 09:10:26,607 ERROR [com.lp.server.system.ejbfac.SystemFacBean] (EJB default - 8) Database version may not match server version (0.0.14)! Make sure the database was updated.: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
        at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1692)
        at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1619)
        at org.hibernate.jpa.spi.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:1106)
        at org.hibernate.jpa.spi.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:1033)
        at org.jboss.as.jpa.container.AbstractEntityManager.find(AbstractEntityManager.java:213)

Hier muss der Dienst wieder gestoppt werden und das Liquibase update durchgeführt werden.

Releasehinweise

TODO Is a comming feature! In Zukunft kann es sein, dass nach einem Versionsupdate manuelle Datenbereinigungen durchgeführt werden müssen. Sollte eine solche Datenbereinigung notwendig sein, wird nach der Anmeldung eines Benutzer eine Liste (wenn mehrere) der noch nicht durchgeführten Aktionen angezeigt. Die Punkte in der Releasehinweise-Tabelle können nur von dem Kieselstein Admin-Benutzer als erledigt markiert werden. Solange noch nicht erledigte Releasehinweise vorhanden sind, werden diese jedem Benutzer bei der Anmeldunge angezeigt.

8.1 - Update Kieselstein ERP Server unter Debian

Update Kieselstein ERP Server unter Debian

Applicationsserver Updaten

  • Dist-Pack auf den Server kopieren
  • Dienste beenden
    • systemctl stop kieselstein-main-server.service
    • systemctl stop kieselstein-rest-server.service
  • Alte Programmdateien löschen:
    • rm /opt/kieselstein/dist/wildfly-*.Final/standalone/deployments/*.ear
    • rm /opt/kieselstein/dist/wildfly-*.Final/standalone/deployments/*.war
    • rm /opt/kieselstein/dist/wildfly-*.Final/standalone/deployments/*.rar
    • rm /opt/kieselstein/dist/wildfly-*.Final/standalone/deployments/*.deployed
    • rm /opt/kieselstein/dist/apache-tomcat-*/webapps/*.war
      • und auch alle Verzeichnisse mit kieselstein-rest##. löschen
  • Dist-Packet über die bestehende Installation entpacken
    • tar -xvf <pfad-zum-dist-packet>.gz -C /opt/kieselstein
  • Client-Scripte anpassen
    • Es muss geprüft werden, ob es manuelle Änderungen im Client-Paket für die Startskripte gab und diese eventuell bei den neuen Startscripten nachziehen (Hostname und Splashscreen zum Beispiel).
    • Alte Client-Scripte löschen oder klar markieren als OLD (Siehe im Verzeichnis /opt/kieselstein/dist/clients/)
  • Berechtigungen wieder für den Kieselstein Ordner setzen
    • chown -R kieselstein:kieselstein /opt/kieselstein
  • Wenn im dist-Verzeichnis mehrere Tomcat oder Wildfly Versionen enthalten sind prüfen welche verwendet wird und die alten löschen
    • Prüfen welche Tomcat-Version verwendet wird:
      • cat /opt/kieselstein/dist/bin/launch-kieselstein-rest-server.sh
      • Suche nach Zeile: export CATALINA_HOME="${KIESELSTEIN_DIST}/apache-tomcat-x.x.x", diese Tomcat Version wird verwendet die andere(n) müssen gelöscht werden.
    • Prüfen welche Wildfly-Version verwendet wird:
      • cat /opt/kieselstein/dist/bin/launch-kieselstein-main-server.sh
      • Suche nach Zeile: wildfly_bin_dir=${KIESELSTEIN_DIST}/wildfly-x.x.x.Final/bin, diese Wildfly Version wird verwendet die andere(n) müssen gelöscht werden.
      • Achtung Aktuell sind im Wildfly noch die Report-Dateien enthalten so wie eventuelle Anwender-Reports.
        • Es müssen, wenn sich die Wildfly Version ändert, vor dem Löschen des alten Wildfly Ordners alle Anwender-Reports in den neuen Wildfly kopiert werden.
        • /opt/kieselstein/dist/wildfly-.Final/server/helium/report//anwender

Datenbankmigrationen durchführen

Hinweis: Wenn Kieselstein Version kleiner als 0.0.13 ist:

Muss die initiale Migration gemacht werden.
Das gilt auch für den Start mit den Demodaten.

Installation Liquibase

Für die Datenbankmigrationen, muss das Tool liquibase installiert werden (mit root Rechten).

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

Initial-Migrationen setzen

  • In das Liquibase Verzeichnis gehen
    • cd /opt/kieselstein/dist/bootstrap/liquibase
    • Bestehende Datenstrukturen als bereits migriert markieren
      • ./liquibase.sh changelog-sync --label-filter="0.0.12"

ACHTUNG Wenn die Datenbank von der Default-Installation abweicht müssen in der /opt/kieselstein/dist/bootstrap/liquibase/liquibase.properties Datei die Verbindungseinstellungen angepasst werden:

liquibase.command.url=jdbc:postgresql://localhost:5432/KIESELSTEIN
liquibase.command.username=postgres
liquibase.command.password=postgres

Datenbank Updaten

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

Dienste wieder aktivieren

systemctl start kieselstein-main-server.service
systemctl start kieselstein-rest-server.service

8.2 - Update Kieselstein ERP Server unter Windows Server

Update Kieselstein ERP Server unter Windows Server

Für die Kurzfassung siehe

Schritt für Schritt Anleitung

Applikationsserver Updaten

  • Dist-Pack auf den Server kopieren
  • Dienste beenden
    • Beide Kieselstein Dienste (Kieselstein Main Server & Kieselstein REST Server) beenden
  • Alte Programmdateien löschen:
    • Im Verzeichnis ?:\kieselstein\dist\wildfly-12.0.0.Final\standalone\deployments
      • Alle Dateien mit den Dateiendungen ear, rar und war löschen
      • und auch die deployed löschen
    • Im Verzeichnis ?:\kieselstein\dist\apache-tomcat-8.5.93\webapps
      • Alle Dateien mit den Dateiendung war löschen
      • Alle Verzeichnisse mit kieselstein-rest##. löschen
    • im Verzeichnis ?:\kieselstein\dist\clients alle gz Dateien löschen
  • Dist-Packet über die bestehende Installation entpacken (In der Windows Eingabeaufforderung cmd.exe)
    • tar -xvf <pfad-zum-dist-packet>.gz -C ?:\kieselstein\
  • Client-Scripte anpassen
    • Es muss geprüft werden, ob es manuelle Änderungen im Client-Paket für die Startskripte gab und diese eventuell bei den neuen Startscripten nachzeihen (Hostname und Splashscreen zum Beispiel).
    • Alte Client-Scripte löschen oder klar markieren als OLD (Siehe im Verzeichnis ?:\kieselstein\dist\clients)
  • TODO Scripte Pfade müssen noch angepasst werden.
  • Wenn im dist-Verzeichnis mehrere Tomcat oder Wildfly Versionen enthalten sind prüfen welche verwendet wird und die alten löschen
    • Prüfen welche Tomcat-Version verwendet wird:
      • cat ?:\kieselstein\dist\bin\launch-kieselstein-rest-server.sh
      • Suche nach Zeile: export CATALINA_HOME="${KIESELSTEIN_DIST}/apache-tomcat-x.x.x", diese Tomcat Version wird verwendet die andere(n) müssen gelöscht werden.
    • Prüfen welche Wildfly-Version verwendet wird:
      • cat ?:\kieselstein\dist\bin\launch-kieselstein-main-server.sh
      • Suche nach Zeile: wildfly_bin_dir=${KIESELSTEIN_DIST}/wildfly-x.x.x.Final/bin, diese Wildfly Version wird verwendet die andere(n) müssen gelöscht werden.
      • Achtung Aktuell sind im Wildfly noch die Report-Dateien enthalten so wie eventuelle Anwender-Reports.
        • Es müssen wenn sich die Wildfly Version ändert vor dem Löschen des alten Wildfly Ordners alle Anwender-Reports in den neuen Wildfly kopiert werden.
        • ?:\kieselstein\dist\wildfly-*.Final\server\helium\report*\anwender

Datenbankmigrationen durchführen

Hinweis: Wenn Kieselstein Version kleiner als 0.0.13 ist:

Muss die initiale Migration gemacht werden.
Das gilt auch für den Start mit den Demodaten.

Installation Liquibase

Für die Datenbankmigrationen, muss das Tool liquibase installiert werden. Akutelle Liquibase Version vom git Repository runterladen: https://github.com/liquibase/liquibase/releases Hier biss zu den Assets runterscrollen und dann den passenden (Windows-)Installer auswählen. Z.B.: liquibase-windows-x64-installer-x.x.x.exe

Den Installer am Server ausführen und durchklicken.
Bitte darauf achten, dass Add Liquibase to PATH angehakt bleibt.

Achtung nach der Installation von Liquibase müssen für die weiteren Arbeiten neue Eingabeaufforderungen (cmd) gestartet werden! Ein Neustart des Servers ist nicht erforderlich.

Initial-Migrationen setzen

  • In der Windows Eingabeaufforderung cmd.exe
    • In das Verzeichnis wechseln
      • cd ?:\kieselstein\dist\bootstrap\liquibase
      • Bestehende Datenstrukturen als bereits migriert markieren
        • liquibase changelog-sync --label-filter="0.0.12"

ACHTUNG Wenn die Datenbank von der Default-Installation abweicht müssen in der ?:\kieselstein\dist\bootstrap\liquibase\liquibase.properties Datei die Verbindungseinstellungen angepasst werden:

liquibase.command.url=jdbc:postgresql://localhost:5432/KIESELSTEIN
liquibase.command.username=postgres
liquibase.command.password=postgres

Datenbank Updaten

In der Windows Eingabeaufforderung cmd.exe

cd ?:\kieselstein\dist\bootstrap\liquibase
liquibase update

Prüfen ob das Update funktioniert hat

In der Praxis hat sich bewährt, dass man, vor dem Start der Dienste, zumindest den Main-Prozess als “Programm” startet.
Idealerweise wechselst du dazu in das Verzeichnis ?:\kieselstein\dist\bin und startest launch-kieselstein-main-server.bat.
Dieser muss problemlos durchlaufen.
Sollte hier eine Meldung ähnlich nachfolgender kommen:

"(" kann syntaktisch an dieser Stelle nicht verarbeitet werden
so fehlt in deinen Pfaden der Zugriff auf die postgresQL Runtime Programme.
Trage diese in den Pfaddefinitionen ein.

  • Problemlos durchlaufen bedeutet, dass der Startschirm angezeigt werden muss. Dieser sieht unter Windows wie folgt aus:

Wenn der Start durchgelaufen ist, was je nach Performance der Maschine auch mal ein paar Minuten dauern kann, so kommt danach die Anzeige des sogenannten Shoptimers

Damit siehst du, dass dein Server läuft. Nun kannst du diesen mit Strg+C stoppen und den Dienst wieder aktivieren.

Nachtragen PostgresQL Runtime Pfad

  • Rechtsklick auf das Windows Start-Symbol
  • System
  • suche nun erweiterte Systemeinstellungen. Je nach Windows-Version ist dies optisch an einem anderen Platz, aber immer unter System Info zu finden
  • Umgebungsvariablen anklicken
  • Suche nun im unteren Bereich (Systemvariablen) die Variable Path und klicke auf bearbeiten
  • Hier muss nun, abhängig von der verwendeten pgAdmin Version der Pfad auf die pgAdmin runtime eingetragen sein. Bei pgAdmin 4 V7 ist dies “c:\Program Files\pgAdmin 4\v7\runtime”. Bei pgAdmin 4 V8 ist dies “c:\Program Files\pgAdmin 4\runtime”.
  • Wenn alles eingetragen ist, beende zumindest den Umgebungsvariablen und den Systemeigenschaften Dialog.
  • starte ein neues CMD-Fenster und gib psql (+ Enter) ein. Es muss die Abfrage des psql nach dem Benutzerpasswort kommen. Kommt eine Meldung mit *Der Befehl “psql” ist entweder falsch ….. *so ist deine Pfad-Definition falsch, womit auch der Serverstart nicht funktionieren wird.

Funktioniert dies, würde ich mit der oben beschriebenen Prüfung fortfahren.

Dienste wieder aktivieren

  • Beide Kieselstein Dienste (Kieselstein Main Server & Kieselstein REST Server) starten

Aktualisieren der Clients

Siehe hierfür bitte Installation Clients.

Probleme / Lösungen

Nachfolgend eine Sammlung von bisher bekannten Problemen und deren Lösungen beim Updateprozess. Vom Grundgedanken her gelten diese Dinge für beide Betriebssysteme, auch wenn die Aufrufe und die erforderlichen Betriebssystemspezifischen Rechte durchaus unterschiedlich sein können.

Liquibase meldet Checksum Konflikt

Während des Liquibase Updates kommen Fehlermeldungen. Wie z.B.:

Starte Liquibase am 08:47:40 (Version 4.28.0 #2272, kompiliert am 2024-05-16 19:00+0000)
Liquibase Version: 4.28.0
Liquibase Open Source 4.28.0 by Liquibase
ERROR: Exception Details
ERROR: Exception Primary Class: ValidationFailedException
ERROR: Exception Primary Reason: Validierung war nicht erfolgreich:
Bei 1 ChangeSets stimmt die Prüfsumme nicht mehr mit der Historientabelle überein.
changelogs/0.1.1/punkt_ist_dezimaltrenner_parameter.xml::add-parameter::KSE was:
> 9:2e4dc472a79dcf110b919b796195b677 but is now: 9:ff143e7c43a38123ddfb731c38d613c9

Siehe dazu
bzw.

Clear Checksums

run-liquibase.bat clear-checksums (für Linux ./liquibase.sh clear-checksums)

Um eventuell falsche Checksums zu löschen und damit weiter zu kommen.
Aufruf von ?:\kieselstein\dist\bootstrap\liquibase\ aus Siehe zusätzlich auch –help

Die Checksum in der Tabelle manuell richtig stellen

Ich habe dafür folgendes Script verwendet. Dieses ist sicherlich nicht vollständig und muss gegebenenfalls auf die aktuelle Situation angepasst werden. Die Vorgehensweise sollte damit aber klar sein.
ACHTUNG: Ob diese Vorgehensweise die Konsistenz deiner Daten bzw. die Konsistenz deiner Datenbank zerstört, kann hier nicht geklärt werden. Achte auf die Inhalte der Liquibase Änderungsscripte. Es gilt dies auch für das Clear Checksums

– korrigieren der checksum der zwischenversion der 0.1.1

update databasechangelog set md5sum = ‘9:ff143e7c43a38123ddfb731c38d613c9’ where md5sum=‘9:2e4dc472a79dcf110b919b796195b677’;

update databasechangelog set md5sum = ‘9:ff143e7c43a38123ddfb731c38d613c9’ where md5sum=‘9:67af6ebc94a79ccc6073d7044b4fe2dc’;

Spalte ist bereits vorhanden

Es kommt beim Update eine Meldung dass die Spalte xy bereits in der Datenbank eingetragen ist.
Wenn man sich sicher ist, dass in der Tabellen Spalte KEINE Einträge sind, kann man diese einfach löschen und danach das Update erneut ausführen.
Ist dem nicht so, so kann man das betreffende XML entsprechend auskommentieren. Die Update-XMLs, welche Versionsweise organisiert sind, findest du unter

?:\kieselstein\dist\bootstrap\liquibase\changelogs\Versionsnummern

Hier das betreffende XML heraussuchen und z.B. die Extension mit .nix ergänzen. Danach das Update erneut ausführen.

Passend zu obiger Fehlermeldung:
?:\kieselstein\dist\bootstrap\liquibase\changelogs\0.0.14\los_material_vollstaendig_parameter.xml

Kurzfassung des Updatevorgangs

Wenn auf deinem Kieselstein bereits die Liquibase Version installiert ist, also ab 0.1.0 so hat sich folgende Vorgehensweise bewährt:

  • herunterladen des aktuellen Releases
  • stoppen der Dienste kieselstein-rest-server, kieselstein-main-server
  • kopieren des ..\kieselstein\dist Verzeichnises auf die bisherige Versionsnummer (siehe d:\kieselstein\dist\VERSION.txt)
  • Ausführen des loeschen.bat
  • kopieren des im kieselstein-distpack-0.2.4.tar.gz enthaltenen dist auf das (bereinigte) dist Verzeichnis. Überschreiben aller vorhandenen Dateien.
    ACHTUNG: Es werden damit (Stand Juni 2024) alle ev. speziell angepassten fremdsprachigen Reports durch den Standard überschrieben. Änderung ist geplant.
  • Update der Datenbank durch inital.bat
  • Anpassen der Clientdateien
    • üblicherweise gibt es im d:\kieselstein\dist\ ein client.zip mit den aktuellen Daten für die Clients.
    • das lib löschen
    • aus ?:\kieselstein\dist\clients\kieselstein-ui-swing-0.2.4.tar.gz das lib in obiges client.zip einkopieren
    • im bin das kieselstein-ui-swing.bat die Zeile mit set CLASSPATH=%APP_HOME%\lib\kieselstein-ui-swing-0.2.4.jar; …….. in dein speziell auf deine Installation angepasstes kieselstein-ui-swing.bat übernehmen.
  • Dienste starten und gegebenenfalls unter d:\kieselstein\dist\wildfly-12.0.0.Final\standalone\deployments prüfen, dass der Wildfly tatsächlich startet.
    Gegebenenfalls auch den Start des RestAPI Servers (Tomcat) durch Aufruf der RestAPI Dokumentation prüfen.
  • Nun den Client am Server starten -> sollte gehen
  • Infos an die Anwender, dass neuer Client zu installieren ist.

9 - IT-Betreuung

Was sind die Aufgaben deines IT-Betreuers

Nachfolgend eine lose Aufstellung der Aufgaben deines IT-Betreuers für den Betrieb deines Kieselstein ERP-Systems, welche nicht vollständig ist.

Es sollte dies dazu dienen, den Umfang einer verantwortungsvollen IT-Betreuung zu skizzieren. Ergänzungen dazu sind willkommen.

Bitte beachte auch, dass dein Kieselstein ERP zwar die IT massiv nutzt. Die Betreuung deiner IT ist aber in keinster Weise die Aufgabe der Genossenschaft bzw. der Techniker:innen der Consultants, auch wenn das andere Firmen anders handhaben mögen. Siehe dazu auch Update

Welche Aufgaben sollte die IT-Betreuung nun übernehmen:

  • Zur Verfügungstellung eines geeigneten ERP-Servers
  • Prüfung der Performance des Servers, zur Verfügungstellung einer ausreichenden Performance
  • Einrichten der Updates sowohl Clients als auch Server
  • Netzwerk-Zugriffssicherheit
  • Datensicherung inkl. Überprüfung
  • WLan Access
  • Planung von Erweiterungen (lieber ein geplanter Stillstand als ungeplantes Chaos)
  • ist bei Problemen innerhalb von xx Std verfügbar, zumindest an Arbeitstagen und an normalen Wochenenden und ….
  • weiß auch, wie man ein Kieselstein ERP installiert und die Datenbanken wieder herstellt.

Anmerkung:
Wenn du diese Betreuung selbst übernimmst, gehen wir davon aus, dass eine entsprechende Qualifikation gegeben ist. Du also auch die Verantwortung dafür übernimmst / übernehmen kannst. Von der Verfügbarkeit des Backups (zu jeder Zeit) bis zu Updates usw..

Für die Einrichtung der Zugangsdaten des (externen) Betreuers siehe

10 - File orientierte Dokumente Datenbank

Wo werden meine Dokumente gespeichert

Dein Kieselstein ERP hat grundsätzlich zwei Datenbanken.

  • Die reinen ERP-Daten, klein, schlank, schnell. Hier sind die ganzen “Zahlen” gespeichert.
  • Die Dokumente-Datenbank. Hier sind die Dokumente abgelegt.
    Diese gibt es wiederum in zwei Ausführungen.
    • Default als Datenbank-Tabelle. D.h. die “Bilder” der Dokumente (Ausgangsrechnungen, Eingangsrechnungen, Spezifikationen) werden als sogenannter BLOB direkt in der Dokumentendatenbank gespeichert. Das bewirkt wiederum, dass im Laufe der Jahre diese Datenbank immer größer wird, einige zig GByte sind normal, und so das tägliche Backup dieser Daten immer länger dauert. Je nach Installation kann es auch dazu kommen, dass die Nacht (12Std) zu kurz wird und somit kein konsistentes Backup mehr gegeben ist.
    • Daher gibt es als Alternative die sogenannte File orientierte Dokumentendatenbank.
      Idealerweise wird diese bereits bei der Installation deines Kieselstein ERP eingerichtet. Es müssen dafür nur zwei Konfigurationsdateien im Kieselstein-ERP Wildfly configuration ausgetauscht / angepasst werden. Du benötigst dafür die angepasste:
    • kieselstein.xml
    • kieselstein_jackrabbit.xml
      Hier wird der eigentliche Pfad auf die binären Daten unter <DataStore ….. festgelegt.
      Der Vorteil ist, dass die eigentliche Dokumente nur immer neue Daten sind und somit, z.B. mit rsync, nur eine Veränderungs (Erweiterungs) Sicherung gemacht werden muss und damit die dafür benötigte Zeit wesentlich kürzer ist. Es muss allerdings diese zusätzliche Sicherung auch eingerichtet werden.

Ein Wort zur Veränderbarkeit in den Dokumenten-Daten

Da diese Frage immer wieder kommt, also kann ein Super Spezialist die Daten der Dokumente verändern? Hierzu muss man folgendes wissen:

  • die Dokumente werden als BLOB Binary Large OBject abgelegt. Dies ist nichts anderes als eine Verkettung von Dateiblöcken in denen die eigentlichen Daten hintereinander eingereiht sind. D.h. das herausfinden einer einzelnen Datei, ist schon ziemlich aufwändig und man muss schon sehr genau wissen was man sucht.
  • Nun werden z.B. die Ausgangsrechnungen als Jasper-Objecte (in Dateiform) abgelegt.
  • werden nun Daten eingefügt (aus 100 wird 1.000) oder Daten verändert, aus einer 0 wird eine 1 so stimmt die Filegröße nicht mehr und oder die Checksumme stimmt nicht mehr. Damit ist die gesamte Dokumentendatenbank unbrauchbar.

Ob man dies nun, mit einer entsprechend kriminellen Energie auch richtig stellen könnte, ist mir nicht bekannt. Hier kommt mit dazu, dass die Person die dieses macht, physikalisch auf deinen Kieselstein ERP Server Zugriff haben muss (root). Wenn das alles gelingt, hast du ein anderes Problem.

Daher betrachten wir diese Daten als unveränderbar.