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

Cryptkey

Der Cryptkey darf sich nach verschlüsseln einer Datei nicht mehr ändern, da die Datei sonst nicht mehr entschlüsselt werden kann.

UmgebungsvariableBeschreibungStandardwertAlternative WerteDatentypÄndern Notwendig
SECURE_PORTPort Innerhalb des jEDHOC Containers4438080Integer(error)
SSL_PASSWORDPasswort für SSL Zertifikat(falls erforderlich).""-String(error)
REST_SERVICEAktiviert/deaktiviert den REST-Dienst.true-Boolean(error)
THEMEDas voreingestellte Theme für die Benutzeroberfläche.jedhoc-String(error)
VAADIN_DEBUGAktiviert/deaktiviert den Vaadin-Debug-Modus.falsetrueBoolean(error)
VIRUS_SCANNER_CLASS

Die Klasse des Virenscanners für Dateiuploads.

(ClamAV muss in den Systemparametern innerhalb von jEDHOC Konfiguriert werden)

com.edagps.jedhoc.virusscanner.ClamAVcom.edagps.jedhoc.virusscanner.NonVirusScannerString(error)
FILE_CRYPT

Aktiviert/deaktiviert die Dateiverschlüsselung.

(info) Benötigt 16-Stelligen CRYPT_KEY

truefalseBoolean(error)
CRYPT_KEY

Der Schlüssel für die Dateiverschlüsselung.

(info) Muss 16-Stellig sein siehe hier

""-String(tick)
UPLOAD_PASSWORD_LENGTHDie Länge der Passwörter für den Dateiupload.8-Integer(error)
UPLOAD_PASSWORD_ALLOWErlaubt/verbietet benutzerdefinierte Passwörter für den Dateiupload.true-Boolean(error)
UPLOAD_PASSWORD_DEFAULTStandardwert, ob der Haken "Passwort Generieren" beim Hochladen einer Datei gesetzt ist.true-Boolean(error)
DATABASE_TYPEDer Typ der Datenbank (z. B. "postgresql").postgresqlmysql, hsqlString(error)
DATABASE_HOSTDer Hostname der Datenbank.""localhostString(tick)
DATABASE_NAMEDer Name der Datenbank.""my_databaseString(tick)
DATABASE_USERDer Benutzername für die Datenbankverbindung.""adminString(tick)
DATABASE_PASSDas Passwort für die Datenbankverbindung.""secure_passwordString(tick)
DATABASE_PORTDer Port für die Datenbankverbindung.""5432String(tick)
DATABASE_POLLAktiviert/deaktiviert die Datenbankverbindungs-Polling.falsetrueBoolean(error)
DATABASE_SSLAktiviert/deaktiviert die SSL-Verschlüsselung für die Datenbankverbindung.falsetrueBoolean(error)
AUTH_PROVIDER_CLASSDie Klasse des Authentifizierungsproviders.com.edagps.jedhoc.auth.JedhocAuthProvider-String(error)
CLEANUP_INTERVALDas Intervall für die automatische Aufräumaktion in Minuten.6030, 120Integer(error)
EXPIRY_INTERVALDas Intervall für das Ablaufdatum von Dateien in Tagen.73, 14Integer(error)


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 | Docker Docs

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

docker compose | Docker Docs

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: