From e679be7e9de3c53a680bc79f22ef4911687a12ca Mon Sep 17 00:00:00 2001 From: Sebastian Hedtrich Date: Mon, 17 Aug 2026 23:03:53 +0200 Subject: [PATCH] docker: Dokploy-Deployment dokumentieren MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Kurzanleitung ergänzt, wie die API über Dokploys Git-basiertes Compose-Deployment ausgerollt wird (Repo-URL, Compose-Path, JWT_SECRET als Env-Var, Domain/Port, Auto-Deploy-Webhook, Nutzeranlage) – ersetzt den zunächst erwogenen manuellen ZIP-Upload-Workaround. Co-Authored-By: Claude Sonnet 5 --- docker/README.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/docker/README.md b/docker/README.md index dce288b..0a97e41 100644 --- a/docker/README.md +++ b/docker/README.md @@ -51,3 +51,28 @@ Für regelmäßige Sicherung z. B. per Cron, einmal täglich nachts: Endpunkte sind zusätzlich global auf 120 Anfragen pro Minute je IP begrenzt. Anhänge sind auf 15 MB Anfragegröße gedeckelt (Kestrel `MaxRequestBodySize`), einzelne Dateien clientseitig zusätzlich auf 10 MB (`IAttachmentStorage.MaxSizeBytes`). + +## Deployment über Dokploy + +Kein manuelles Bauen/Hochladen nötig – Dokploy zieht das Repo direkt per Git und baut das Image +selbst aus `docker/Dockerfile.api`. + +1. Neue **Compose-Application** anlegen, Quelle „Git" (Custom Git Provider), Repo-URL + `https://git.science-teaching.de/admin/LehrerApp.git`, Branch `main`. Bei privatem Repo einen + SSH-Deploy-Key in Dokploy hinterlegen und im Git-Server eintragen. +2. **Compose Path**: `docker/docker-compose.yml`. Der Build-Context (`context: ..`) und das + Dockerfile sind darin bereits korrekt referenziert – Dokploy checkt das ganze Repo aus, das + passt ohne Anpassung. +3. **Umgebungsvariable** `JWT_SECRET` im Dokploy-UI unter „Environment" setzen (nicht als `.env` + einchecken) – wird als `${JWT_SECRET}` in die Compose-Datei injiziert, wie beim lokalen Start. +4. **Domain/Port**: Domain auf Container-Port `5000` mappen, HTTPS über Dokploys eingebauten + Reverse-Proxy aktivieren. +5. **Auto-Deploy**: Webhook-URL aus Dokploy als Push-Hook im Git-Server eintragen (falls + unterstützt, z. B. Gitea) – dann löst jeder `git push` automatisch ein Rebuild aus. +6. **Nutzer anlegen** nach dem ersten Deploy: über Dokploys Terminal/Exec-Tab am laufenden + Container `dotnet LehrerApp.Api.dll create-user ` ausführen (siehe oben). + +Der `./data`-Bind-Mount bleibt unverändert – Dokploy hält das Checkout-Verzeichnis der +Compose-App über Redeploys hinweg stabil, `backup.sh` funktioniert damit unverändert weiter. +Nach dem ersten echten Deploy einmal gegenprüfen: Redeploy anstoßen und verifizieren, dass +Daten (z. B. ein testweise angelegter Nutzer) erhalten bleiben.