open-datenschutzcenter icon indicating copy to clipboard operation
open-datenschutzcenter copied to clipboard

Funktionierende Dockerumgebung, funktionierender security checker

Open devkral opened this issue 2 years ago • 9 comments

Dieser PR stellt eine halbwegs funktionierende dockerumgebung bereit (man muss immer noch die Nutzer und teams anlegen, sowie die Werte für email, firstname, lastname bei den keycloak Nutzer(n) setzen)

Sie kann mit docker-compose -f docker-compose.test.yml verwendet werden.

Die docker-compose Umgebung docker-compose.yml ist dafür gedacht, dass man sie mit einem docker-compose.override.yml dropin ergänzt und an seine Bedürfnisse anpasst, darum enhält sie kaum Definitionen.

Des Weiteren wurden die Pipelines angepasst, damit eine Installation keine Fehler wirft (security-checker geupdated, sowie asset build bei devPipeline hinzugefügt), sowie eine docker pipeline für die Dockerumgebung hinzugefügt.

Um zu verifizieren, dass es der originale security checker und nicht etwas anderes ist, kann man die checksums von: https://github.com/fabpot/local-php-security-checker/releases/download/v1.2.0/checksums.txt gegen die sha256 Checksumme von local-php-security-checker prüfen.

Dieser PR ist ein halber Fix für #129, es fehlt noch Dokumentation

devkral avatar Mar 09 '22 13:03 devkral

Hi @devkral ich werde mir die Änderung am Wochenende anschauen und wenn alles soweit klappt freigebene.

holzi1005 avatar Mar 10 '22 16:03 holzi1005

die Migrationen und damit BranchPipeline.sh, DockerPipeline.sh funktionieren hier noch nicht. Es wird der MR #131 benötigt.

devkral avatar Mar 11 '22 09:03 devkral

Hallo @devkral, zuerst mal vielen Dank für deinen Input.

ich habe heute deine Dockerinstallation durchgeführt und ich bin bei eine paar Dingen hängen geblieben:

  1. Das Dockerfile erzeugt eigentlich den "vendor" und den "public/build" Ordner. Wenn ich aber nun den Docker starte dann sind diese Ordner nicht mehr. Ich muss erst im Container einmal compose und npm install/run build ausführen, aber dann werden die Daten im Volume gespeichert. Keine Ahnung warum das passiert. Nach dem Dockerfile sollte das direkt im Image mitgeliefert werden. (Reproduzierbar durch das löschen des Container und löschen des Volumes und des Images und dann docker-compose up und rebuild des Images)
  2. nach der Weiterleitung auf den Keycloak bin ich auf gelandet, das sollten wir schreiben das man das anpassen muss. Oder können wir hier einen Parameter eingeben, der dann automatisch in die .env Datei geschrieben wird. Hier wäre es möglich die IP als Env vom Host zu übergeben ${PUBLIC_IP}. https://serversforhackers.com/c/div-variables-in-docker-compose
  3. Beim Keycloak war noch kein Client eingerichtet. Hier ist die Frage ob sowas überhaupt über Docker möglich ist. Sonst müssten wir das auch noch kurz beschreiben.
  4. Zum einrichten eine initialen Teams gibt es nun einen php cli Befehl. Den könnten wir unter Umständen beim ersten Start ausführen lassen php bin/console app:team:new Aber hier müsste man sich wahrscheinlich trotzdem anmelden, da es zu dem Zeitpunkt noch keinen Benutzer gibt, den man den Team als Admin zuweist. (Henne - Ei Problem)

VG

holema avatar Mar 26 '22 10:03 holema

entschuldigung für die späte Antwort:

  1. das tritt doch bei der docker-compose.test.yml auf oder? Das liegt an den Mount. Abhilfe könnte hier eine shadow symlink instanz (Pfade werden mit symlinks gerade gebogen) bringen. Ich kann, wenn ich mal Zeit habe sowas machen, aber bei mir sieht es ehrlich gesagt, nicht gerade rosig aus mit Zeit.
  2. klingt gut
  3. leider nein, höchstens in einen helper (wie die pipeline.sh). keycloak braucht dazu eine db. Daher funktioniert es nicht im build
  4. gleiches Problem. Hängt von 3 ab. Plus man muss sich überhaupt anmelden

devkral avatar Apr 02 '22 13:04 devkral

Hallo @devkral ich habe mich auch mal etwas an eine Docker-Umsetzung gemacht, aber in einem parallel FOSS Projekt, das wir auch noch Maintainen. Hier habe ich einige Ideen von dir aufgegriffen und auch einen Installer für die Keycloak Geschichte geschrieben. (Secret, Passwort Random usw) Siehe hier: https://github.com/H2-invent/jitsi-admin/tree/feature/docker_test die gesamte Keycloak Anbindung passiert in der installDocker.sh Datei. Hier werden auch alle Dinge wie SMTP-Anbindung abgefragt und direkt in die ENV übernommen.

Vielleicht können wir die Docker Thematik gemeinsam ausbauen

Mich würde deine Meinung zu dem Installer interessieren ;)

  1. Ist in dem neuen gelöst, indem ich den mount einfach rausgenommen habe
  2. ist auch gelöst
  3. Ist auch gelöst
  4. Ich lasse hier bei einem docker-compose up die dockerUpdate.sh laufen. diese baut Datenbanken usw. auf uns könnte auch das Script zum erstellen der Teams ausführen.

VG

h2Entwicklung avatar Apr 02 '22 22:04 h2Entwicklung

habe wider Erwarten noch etwas Zeit gefunden. Hier mein Entwurf, funktioniert aber noch nicht, permission error

devkral avatar Apr 03 '22 10:04 devkral

schaue mir wenn ich Zeit habe euren Entwurf an. Ich habe Kinder, bei mir ist Zeit knapp

devkral avatar Apr 03 '22 10:04 devkral

meine Idee funktioniert so ähnlich bloß im docker-build selbst

devkral avatar Apr 03 '22 13:04 devkral

rebased und importiert zumindest die keycload realms. Was fehlt: zuordnung zu team, Nutzer in keycloak anlegen

devkral avatar Jul 06 '22 17:07 devkral

Wir haben in dem neuen Release eine komplette Docker Installation aufgebaut, die Keycloak, mySQL, ODC und alle notwendigen Module enthält.

holzi1005 avatar May 28 '23 10:05 holzi1005