KI-Bildkennzeichnung 5/6: imagor Docker-Stack + Traefik-Routing (separates Repo: Docker-Stacks/docker-imagor-media) #8

Closed
opened 2026-08-02 06:52:43 +00:00 by csaeum · 1 comment
Owner

Teil 5 von 6 der Serie "KI-Bildkennzeichnung" (Art. 50 Abs. 4 KI-VO). Betrifft ein anderes Repo — dieses Issue dient hier nur der Nachvollziehbarkeit der Gesamt-Serie; die eigentliche Umsetzung/das PR gehört in einen neuen Stack Docker-Stacks/docker-imagor-media.

Ziel

Neuer, eigenständiger imagor-Stack, der öffentlich per Traefik erreichbar ist (Storefront-Browser laden Bilder direkt von dort), analog zu den bestehenden Zusatz-Stacks (docker-traefik-proxy, docker-ofelia-cronjobs, docker-zabbix-agent2-monitoring — jeweils eigene Concern, eigener Ordner unter Docker-Stacks/). Nicht in projekt-sw6/docker-compose.yml eingebettet.

Vorschlag

~/Entwicklungsumgebung/Forgejo/Docker-Stacks/docker-imagor-media/docker-compose.yml mit Traefik-Labels 1:1 nach dem verifizierten Muster aus projekt-sw6/docker-compose.yml:

  • traefik.enable=true
  • traefik.docker.network=${PROXY_NETWORK}
  • HTTP→HTTPS-Redirect-Router (entrypoints=web-http, middlewares=redirect-to-https@file)
  • HTTPS-Router (entrypoints=websecure-https, tls.certresolver=letsEncrypt)
  • traefik.http.services.${COMPOSE_PROJECT_NAME}.loadbalancer.server.port=<imagor-Port>
  • eigenes .env mit COMPOSE_PROJECT_NAME/HOSTRULE/PROXY_NETWORK/TIMEZONE

imagor liest die Quellbilder per HTTP direkt von der bestehenden öffentlichen Shop-Domain (kein Shared-Volume zwischen den Stacks nötig — der Shop speichert Medien lokal im www-data-Volume, ausgeliefert über nginx im app-Container von projekt-sw6).

Result-Storage aktivieren (Caching der fertigen Overlay-Varianten), damit imagor nicht bei jedem Request neu rendert.

Akzeptanzkriterien

  • imagor unter eigener Subdomain per HTTPS erreichbar
  • Result-Storage-Cache funktioniert (zweiter Request auf gleiche URL kommt aus dem Cache)
  • imagorBaseUrl in der Plugin-Config (#6) auf diese Domain gesetzt
Teil 5 von 6 der Serie "KI-Bildkennzeichnung" (Art. 50 Abs. 4 KI-VO). **Betrifft ein anderes Repo** — dieses Issue dient hier nur der Nachvollziehbarkeit der Gesamt-Serie; die eigentliche Umsetzung/das PR gehört in einen neuen Stack `Docker-Stacks/docker-imagor-media`. ## Ziel Neuer, eigenständiger imagor-Stack, der öffentlich per Traefik erreichbar ist (Storefront-Browser laden Bilder direkt von dort), analog zu den bestehenden Zusatz-Stacks (`docker-traefik-proxy`, `docker-ofelia-cronjobs`, `docker-zabbix-agent2-monitoring` — jeweils eigene Concern, eigener Ordner unter `Docker-Stacks/`). **Nicht** in `projekt-sw6/docker-compose.yml` eingebettet. ## Vorschlag `~/Entwicklungsumgebung/Forgejo/Docker-Stacks/docker-imagor-media/docker-compose.yml` mit Traefik-Labels 1:1 nach dem verifizierten Muster aus `projekt-sw6/docker-compose.yml`: - `traefik.enable=true` - `traefik.docker.network=${PROXY_NETWORK}` - HTTP→HTTPS-Redirect-Router (`entrypoints=web-http`, `middlewares=redirect-to-https@file`) - HTTPS-Router (`entrypoints=websecure-https`, `tls.certresolver=letsEncrypt`) - `traefik.http.services.${COMPOSE_PROJECT_NAME}.loadbalancer.server.port=<imagor-Port>` - eigenes `.env` mit `COMPOSE_PROJECT_NAME`/`HOSTRULE`/`PROXY_NETWORK`/`TIMEZONE` imagor liest die Quellbilder per HTTP direkt von der bestehenden öffentlichen Shop-Domain (kein Shared-Volume zwischen den Stacks nötig — der Shop speichert Medien lokal im `www-data`-Volume, ausgeliefert über nginx im `app`-Container von `projekt-sw6`). Result-Storage aktivieren (Caching der fertigen Overlay-Varianten), damit imagor nicht bei jedem Request neu rendert. ## Akzeptanzkriterien - [x] imagor unter eigener Subdomain per HTTPS erreichbar - [x] Result-Storage-Cache funktioniert (zweiter Request auf gleiche URL kommt aus dem Cache) - [x] `imagorBaseUrl` in der Plugin-Config (#6) auf diese Domain gesetzt
Author
Owner

Alle Akzeptanzkriterien erfüllt und live verifiziert (2026-08-09):

  • imagor läuft unter img.clicklocal.de per HTTPS (Traefik-Routing, eigener Stack Docker-Stacks/docker-imagor-media) — durchgängig für alle Tests in dieser Session genutzt.
  • Result-Storage-Cache funktioniert: Der Host-Bind-Mount des Result-Storage-Volumes wurde initial mit root-Ownership angelegt, der imagor-Container läuft aber als 65534:65534 (nobody) → mkdir permission denied, kein Caching möglich. Nach chown -R 65534:65534 auf das Host-Verzeichnis + Neustart legt imagor jetzt Cache-Dateien an.
  • imagorBaseUrl ist in der Plugin-Konfiguration auf diese Domain gesetzt (siehe Issue #6, Live-Tests seit v1.7.x).

Schließe das Issue.

Alle Akzeptanzkriterien erfüllt und live verifiziert (2026-08-09): - imagor läuft unter `img.clicklocal.de` per HTTPS (Traefik-Routing, eigener Stack `Docker-Stacks/docker-imagor-media`) — durchgängig für alle Tests in dieser Session genutzt. - Result-Storage-Cache funktioniert: Der Host-Bind-Mount des Result-Storage-Volumes wurde initial mit `root`-Ownership angelegt, der imagor-Container läuft aber als `65534:65534` (nobody) → `mkdir permission denied`, kein Caching möglich. Nach `chown -R 65534:65534` auf das Host-Verzeichnis + Neustart legt imagor jetzt Cache-Dateien an. - `imagorBaseUrl` ist in der Plugin-Konfiguration auf diese Domain gesetzt (siehe Issue #6, Live-Tests seit v1.7.x). Schließe das Issue.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
SW-Plugins/wsc_swplugin_aiseotools#8
No description provided.