Docker-Installation
Installation des Open-Datenschutzcenters mit Docker Compose
Diese Art installiert MySQL, Keycloak und den ODC als Docker Container. Es ist daher wichtig, dass alle Volumes der Container gesichert werden.
Minimale Voraussetzungen
- Root Berechtigung auf dem Server
- Betriebssystem: Debian 12 Minimal
- Min. 4 GB RAM
- Min. 2 CPU
Installationsschritte
Alle Schritte finden Sie im Wiki des Github Repos auf der Seite Get Started
Was wird gemacht?
- Das Skript Updatet den Server und Installiert im Anschluss alle benötigten Packete (curl, git, docker,docker-compose) aus den Debian Repositories
- Danach wird das Docker Compose Repo heruntergeladen und im Ordner /opt/odc gepspeichert.
- Im Anschluss werden in diesem Ordner einige Files mit neuen Variablen angepasst damit im Anschluss docker-compose up durchgeführt werden kann.
Zur Anleitung
Optional Docker Image
Für die Installation des Open-Datenschutzcenters steht ein Docker Image bereit.
Die aktuelle Version oder weitere Informationen stehen auf folgenden Seiten:
- https://github.com/h2-invent/open-datenschutzcenter
- https://git.h2-invent.com/Datenschutzcenter/-/packages/container/application
docker pull git.h2-invent.com/datenschutzcenter/application:<version>
Hier steht das Dockerfile für ein eigenes Build zur Verfügung.
Zum Docker ImagePublished Ports
Folgende Ports werden vom Container bereitgestellt.
- mode: host
protocol: tcp
published_port: 8080
target_port: 8080
Volume- oder Bind-Mountings
Folgende Directories müssen als Volumes oder Bindings in einen Container eingebunden werden.
- Data: Statische Uploads
- Log: Logs auf der Symfony Anwendung
- .env.local: Anpassungen der .env
- secretsStorage: Speichern des .Halite.key für die Datenbank Verschlüsselung
Alle Ordner und Dokumente müssen auf dem Host eingerichtet und mit der passenden Berechtigung für den Benutzer nobody eingerichtet werden.
- source: /opt/odc_dev/data
target: /var/www/html/data
type: bind
readonly: false
- source: /opt/odc_dev/log
target: /var/www/html/var/log
type: bind
readonly: false
- source: /opt/odc_dev/.env.local
target: /var/www/html/.env.local
type: bind
readonly: true
- source: /opt/odc_dev/secretStorage
target: /var/www/html/secretStorage
type: bind
readonly: false
.ENV.LOCAL
Folgende Daten müssen im der .env.local enthalten sein. Diese Daten könne in einem Docker Swarm auch als Secret eingebunden werden.
APP_ENV=prod
APP_DEBUG=1
APP_DEMO=false
APP_SECRET=<xxxx>
DATABASE_URL='mysql://{{ mariadb_username }}:{{ mariadb_password }}@{{ mariadb_host }}:{{ mariadb_port }}/{{ mysql_datenbank }}'
OAUTH_KEYCLOAK_CLIENT_ID=<odc>
OAUTH_KEYCLOAK_CLIENT_SECRET=<xxxxxxxxx>
OAUTH_KEYCLOAK_SERVER=https://keycloak.example.com>
OAUTH_KEYCLOAK_REALM=<master>
MAILER_DSN=null://null