Mit Docker-Installer#
Dieses Kapitel enthält eine Schritt-für-Schritt-Beschreibung des Installationsprozesses für Allegra in einem Docker-Container mit einer PostgreSQL-Datenbank.
Vorbereitung#
Hardware-Anforderungen#
Stellen Sie sicher, dass die Voraussetzungen hinsichtlich der Laufzeitumgebung erfüllt sind.
Docker-Installation prüfen#
Stellen Sie sicher, dass Docker auf Ihrem Server installiert ist und der Docker-Daemon läuft.
/home/ubuntu$ docker ps --all
Hinweis
Möglicherweise müssen Sie sich als Superuser über sudo su
anmelden
anmelden oder den Befehl sudo
für die restlichen
hier beschriebenen Schritte nutzen.
Überblick über den Installationsprozess#
Der Installationsvorgang umfasst die folgenden Schritte:
Erstellen Sie ein Arbeitsverzeichnis
Laden Sie das Allegra Docker Installationspaket herunter
Entpacken Sie Ihr Installationspaket
Konfigurieren Sie Ihre Installation über die Konfigurationsdatei
.env
im ArbeitsverzeichnisStarten Sie die Installation mit dem Docker-Befehl
compose
.
Allegra Docker-Installationsprozess#
Schritt 1: Arbeitsverzeichnis erstellen#
Erstellen Sie ein Verzeichnis, das die Konfigurationsdaten, Indizes und Anhänge für Ihre Allegra-Instanz enthält. Es sollte zwischen 1 und 10 GByte Speicherplatz zur Verfügung stehen, je nach Nutzungsgrad und Anzahl der Benutzer. Stellen Sie sicher, dass das Arbeitsverzeichnis beschreibbar ist.
Im Folgenden werden wir dieses Verzeichnis $ALLEGRA_HOME
nennen.
Schritt 2: Allegra Docker Composer-Paket herunterladen#
Laden Sie das Allegra Docker Composer-Paket von der Allegra Download-Seite und speichern Sie es in einem leeren Verzeichnis.
mkdir $HOME/allegra
cd $HOME/allegra
export WORKDIR="$HOME/allegra"
wget https://alltena.com/downloads/latest-dist/core/allegra-docker-latest.tar -O allegra-docker.tar
Schritt 3: Entpacken des Allegra-Docker-Pakets#
Entpacken Sie die Datei:
tar -xvf allegra-docker.tar
ls -al
Sie sollten unter anderem sehen:
eine Datei
env
eine Docker-Kompositionsdatei
docker-compose.yml
Schritt 4: Allegra Docker Composer-Konfiguration#
Sie konfigurieren Ihre Installation über die versteckte Konfigurationsdatei .env
im Arbeitsverzeichnis. Dazu verschieben Sie die Datei env
nach .env
:
mv env .env
Die Konfigurationsdatei sieht zum Beispiel so aus:
CONTEXT=demo
ALLEGRA_HOME=/tmp/allegra
HTTP_PORT=8082
JAVA_OPTS=-Djava.awt.headless=true -Xmx1024m -Xms512m
Schritt 4.1 Allegra Arbeitsverzeichnis konfigurieren#
Öffnen Sie die Konfigurationsdatei .env
und passen Sie die Variable
ALLEGRA_HOME an Ihre
Umgebung an. Stellen Sie sicher, dass das Arbeitsverzeichnis
$ALLEGRA_HOME
existiert und beschreibbar ist (siehe Schritt 1). Die endgültige
Konfigurationsdatei könnte zum Beispiel so aussehen:
CONTEXT=allegra
ALLEGRA_HOME=/home/ubuntu/allegra
HTTP_PORT=80
JAVA_OPTS=-Djava.awt.headless=true -Xmx1024m -Xms512m
Schritt 4.2. HTTP-Port konfigurieren#
In der Datei .env
setzen Sie die Variable
HTTP_PORT auf den gewünschten Wert. Dies ist der Port unter dem
unter dem Ihre Allegra-Instanz erreichbar sein wird.
Schritt 4.3. JAVA_OPTS konfigurieren#
In der Datei .env
setzen Sie die Variable
JAVA_OPTS auf den gewünschten Wert. Hier können Sie insbesondere den
verfügbaren Hauptspeicher (Minimum: 512 MB) einstellen.
Schritt 5: System starten#
Speichern Sie die Konfigurationsdatei .env
und starten Sie das System mit
docker compose up -d
Hintergrund#
Die Installation wird über die Docker Composer Datei namens docker-compose.yml
gesteuert.
Diese Datei sieht wie folgt aus (die Versionsnummern können sich mit der Zeit ändern):
version: "3.9"
services:
db:
image: postgres:13-bullseye
restart: always
container_name: allegra-${CONTEXT}-db
volumes:
- ${ALLEGRA_HOME}/dbdata:/var/lib/postgresql/data
environment:
- POSTGRES_DB=allegra-${CONTEXT}
- POSTGRES_USER=allegra
- POSTGRES_PASSWORD=tissi189
ports:
- "8001:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U allegra -d allegra-${CONTEXT}"]
interval: 10s
timeout: 5s
retries: 2
allegra:
image: allegrapm/core:7.2
restart: always
container_name: allegra-${CONTEXT}
volumes:
- ${ALLEGRA_HOME}:/home/allegra
environment:
JAVA_OPTS: ${JAVA_OPTS}
CONTEXT: ${CONTEXT}
DB_URL: jdbc:postgresql://db/allegra-${CONTEXT}
DB_USER: allegra
DB_PASSWD: tissi189
ports:
- "${HTTP_PORT}:8080"
- "8089:8009"
depends_on:
db:
condition: service_healthy
Allegra-Image-Umgebungsvariablen#
Das Allegra-Image verwendet mehrere Umgebungsvariablen, um eine Datenbankverbindung und einen Dateispeicherort für die Speicherung von Anhängen und Konfigurationsdateien bereitzustellen.
Hinweis
Die im folgenden beschriebenen Umgebungsvariablen beziehen sich auf das
Allegra Image und haben keinen direkten Bezug zu den Eintragungen in der
Datei .env
für den Docker Composer. Ein Bezug wird wenn überhaupt erst über die
Datei docker-compose.yml
hergestellt.
CONTEXT
#
Die Umgebungsvariable CONTEXT
bestimmt die URL, unter der die Allegra-Instanz
sichtbar sein wird. Die URL wird wie http://<yourmachine>:8080/$CONTEXT
aussehen, vorausgesetzt
Sie haben den Port 8080 des Containers auf 8080 außerhalb Ihres Containers abgebildet.
Der Standardwert ist allegra
.
DB_URL
#
Dies definiert die JDBC-Treiber-URL, unter der Allegra die Datenbank finden kann.
Diese Datenbank muss existieren, bevor Sie Allegra starten.
Der durch DB_USER
definierte Benutzer und das Passwort DB_PASSWD
sollten
alle Rechte auf diese Datenbank erhalten haben.
Hier sind einige DB_URL
Beispiele:
PostgreSQL:
jdbc:postgresql://yourdbserver/allegra
MySQL:
jdbc:mysql://localhost:3306/allegra?useSSL=false&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&serverTimezone=UTC
Oracle:
jdbc:oracle:thin:@80.96.67.62:1521:orcl
Microsoft SQLServer:
jdbc:jtds:sqlserver://localhost/allegra
Firebird:
jdbc:firebirdsql://localhost/home/allegra/dbase/ALLEGRA.GDB?charSet=UTF-8
DB2:
jdbc:db2:ALLEGRA
DB_ADAPTER
#
Um sich mit einer Datenbank zu verbinden, muss Allegra deren Typ kennen. Die folgenden Typen werden von diesem Image unterstützt:
postgresql
mysql
mssql
oracle (mit zusätzlicher Bibliothek)
firebird
db2app (mit zusätzlicher Bibliothek)
Hinweis
Oracle- und DB2-Datenbanken benötigen zusätzliche JDBC-Treiber, die aus lizenzrechtlichen Gründen nicht in diesem Image enthalten sind. Siehe Hinzufügen von JDBC-Treibern für weitere Informationen.
Das standardmäßig verwendete Datenbanksystem ist PostgreSQL.
DB_DRIVER
#
Mit dieser Variable definieren Sie die zu verwendende JDBC-Treiberklasse. Sie hängt
von der Art der Datenbank ab, die Sie verwenden wollen (DB_ADAPTER
).
Die Voreinstellung ist org.postgresql.Driver
für eine PostgreSQL Datenbank.
Andere Beispiele sind:
MySQL:
org.gjt.mm.mysql.Driver
Oracle:
oracle.jdbc.driver.OracleDriver
Microsoft SQLServer:
net.sourceforge.jtds.jdbc.Driver
Firebird:
org.firebirdsql.jdbc.FBDriver
DB2:
com.ibm.db2.jdbc.app.DB2Driver
DB_USER
#
DB_USER
definiert den Benutzer, unter dem Allegra auf die Datenbank zugreift.
Der Standardwert ist allegra
.
DB_PASSWD
#
DB_PASSWD
definiert das Passwort für den Benutzer, unter dem Allegra auf die Datenbank zugreift.
Der Standardwert ist Tissi189
.
JAVA_OPTS
#
Die JAVA_OPTS
werden an die virtuelle Maschine von Allegra/Tomcat weitergegeben. Hier
können Sie den für Ihre Allegra-Instanz verfügbaren Speicher einstellen. Beispiel und
Vorgabe:
-Djava.awt.headless=true -Xmx2048m -Xms512m -XX:MaxRAM=2500m -Duser.timezone=Europe/Berlin
Hinzufügen von JDBC-Treibern#
Wir empfehlen, zusätzliche JDBC-Treiber hinzuzufügen, indem Sie ein neues Docker
Image zu erstellen, das auf dem Allegra Image basiert. Die Bibliotheken sollten in
dem Verzeichnis /usr/local/tomcat/lib
abgelegt werden.
Zur Sicherheit#
Wenn Sie den Allegra-Server produktiv betreiben möchten, sollten Sie ihn hinter einen nginx oder Apache Proxy-Server legen. So stellen Sie sicher, dass nur SSL-gesicherte Verbindungen genutzt werden und exponieren den Tomcat nicht im Internet.
Anleitungen dazu gibt es z.B. hier: