Docker
Docker Image benutzen
jEDHOC wird ab Version 3.8.0 als Docker Image in unserer eigenen Repository bereitgestellt unter https://de.ubuntu.service-hosting.eu/nexus/repository/docker-images/jedhoc
Verfügbare Versionen sind hier aufgelistet
Vorraussetzungen
Zum Scannen von Dateien auf Viren, benötigt jEDHOC einen ClamAV Daemon, welcher selbst Deployed werden muss, oder über unsere Docker-Compose Datei mitgeliefert wird.
Umgebungsvariablen
Umgebungsvariable | Beschreibung | Standardwert | Alternative Werte | Datentyp | Ändern Notwendig |
---|---|---|---|---|---|
SECURE_PORT | Port Innerhalb des jEDHOC Containers | 443 | 8080 | Integer | |
SSL_PASSWORD | Passwort für SSL Zertifikat(falls erforderlich). | "" | - | String | |
REST_SERVICE | Aktiviert/deaktiviert den REST-Dienst. | true | - | Boolean | |
THEME | Das voreingestellte Theme für die Benutzeroberfläche. | jedhoc | - | String | |
VAADIN_DEBUG | Aktiviert/deaktiviert den Vaadin-Debug-Modus. | false | true | Boolean | |
VIRUS_SCANNER_CLASS | Die Klasse des Virenscanners für Dateiuploads. (ClamAV muss in den Systemparametern innerhalb von jEDHOC Konfiguriert werden) | com.edagps.jedhoc.virusscanner.ClamAV | com.edagps.jedhoc.virusscanner.NonVirusScanner | String | |
FILE_CRYPT | Aktiviert/deaktiviert die Dateiverschlüsselung. Benötigt 16-Stelligen CRYPT_KEY | true | false | Boolean | |
CRYPT_KEY | Der Schlüssel für die Dateiverschlüsselung. Muss 16-Stellig sein siehe hier | "" | - | String | |
UPLOAD_PASSWORD_LENGTH | Die Länge der Passwörter für den Dateiupload. | 8 | - | Integer | |
UPLOAD_PASSWORD_ALLOW | Erlaubt/verbietet benutzerdefinierte Passwörter für den Dateiupload. | true | - | Boolean | |
UPLOAD_PASSWORD_DEFAULT | Standardwert, ob der Haken "Passwort Generieren" beim Hochladen einer Datei gesetzt ist. | true | - | Boolean | |
DATABASE_TYPE | Der Typ der Datenbank (z. B. "postgresql"). | postgresql | mysql, hsql | String | |
DATABASE_HOST | Der Hostname der Datenbank. | "" | localhost | String | |
DATABASE_NAME | Der Name der Datenbank. | "" | my_database | String | |
DATABASE_USER | Der Benutzername für die Datenbankverbindung. | "" | admin | String | |
DATABASE_PASS | Das Passwort für die Datenbankverbindung. | "" | secure_password | String | |
DATABASE_PORT | Der Port für die Datenbankverbindung. | "" | 5432 | String | |
DATABASE_POLL | Aktiviert/deaktiviert die Datenbankverbindungs-Polling. | false | true | Boolean | |
DATABASE_SSL | Aktiviert/deaktiviert die SSL-Verschlüsselung für die Datenbankverbindung. | false | true | Boolean | |
AUTH_PROVIDER_CLASS | Die Klasse des Authentifizierungsproviders. | com.edagps.jedhoc.auth.JedhocAuthProvider | - | String | |
CLEANUP_INTERVAL | Das Intervall für die automatische Aufräumaktion in Minuten. | 60 | 30, 120 | Integer | |
EXPIRY_INTERVAL | Das Intervall für das Ablaufdatum von Dateien in Tagen. | 7 | 3, 14 | Integer |
Volume Mounts
Um nach einem Neustart des Containers die hochgeladenen Dateien, sowie die Logs zu erhalten, muss beim Start des Containers eine Docker Volume erstellt werden. Siehe Docker Volumes
Das bedeutet, dass beim Start des Containers über docker run der Parameter -v mitgegeben werden muss.
Der Wert des Parameters ist so aufgebaut: "Pfad/auf/Hostsystem:Pfad/im/Container"
Dateien die hochgeladen werden, werden innerhalb des Containers in /files gespeichert.
Logdateien werden innerhalb des Containers in /app/logs gespeichert.
Beispiel
-v "/opt/jedhoc/files:/files" \
-v "/opt/jedhoc/logs:/app/logs" \
Hier werden die Dateien, die im Container in dem Verzeichnis /files liegen, auf dem Hostsystem in /opt/jedhoc/files gespeichert.
Gleiches für die Logdateien die innerhalb des Containers in /app/logs liegen, diese werden jetzt auf dem Hostsystem in /opt/jedhoc/logs gespeichert.
Somit kann der Container immer wieder neugestartet werden, ohne dass die Dateien verloren gehen.
Beispiele
Docker Run
docker run -d \ -e DATABASE_TYPE="postgresql" \ -e DATABASE_HOST="database_host" \ -e DATABASE_NAME="database_name" \ -e DATABASE_USER="database_user" \ -e DATABASE_PASS="database_password" \ -e DATABASE_PORT="5432" \ -e CRYPT_KEY="16LetterCryptKey" \ -p 8085:443 \ -v "/opt/jedhoc/files:/files" \ -v "/opt/jedhoc/logs:/app/logs" \ --name jedhoc \ --restart unless-stopped \ https://de.ubuntu.service-hosting.eu/nexus/repository/docker-images/jedhoc:3.8.0
Docker Compose
version: '3' services: # Postgres Database postgres: image: postgres:latest environment: POSTGRES_DB: jedhoc POSTGRES_USER: jedhoc POSTGRES_PASSWORD: jedhoc ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data # ClamAV Daemon clamav-daemon: image: clamav/clamav:stable ports: - "3310:3310" environment: CLAMAV_NO_FRESHCLAMD: "true" # jEDHOC jedhoc: image: https://de.ubuntu.service-hosting.eu/nexus/repository/docker-images/jedhoc:3.8.0 environment: DATABASE_TYPE: "postgresql" DATABASE_HOST: "postgres" DATABASE_NAME: "jedhoc" DATABASE_USER: "jedhoc" DATABASE_PASS: "jedhoc" DATABASE_PORT: "5432" CRYPT_KEY: "16LetterCryptKey" ports: - "8085:443" volumes: - "/opt/jedhoc/files:/files" - "/opt/jedhoc/logs:/app/logs" depends_on: - postgres - clamav-daemon restart: unless-stopped volumes: postgres_data: