Files
2026-10-16 18:42:18 +00:00

46 lines
1.6 KiB
YAML

# Plugin- und Theme-Webseite im Docker-Container, erreichbar auf Port 3040.
#
# docker compose up -d -> http://SERVER:3040 (Image "deskhub-plugins" muss vorher gebaut sein, siehe docker-build.sh)
#
# DeskHub lädt Plugins und Themes NUR über https. Die Webseite selbst spricht auf Port 3040 nur http; davor muss also ein
# HTTPS-Proxy stehen, der die öffentliche Adresse (BASE_URL beim Bauen) auf Port 3040 weiterleitet. Entweder euer vorhandener
# Proxy (nginx, Traefik, ...) oder der mitgelieferte Caddy, der das Zertifikat automatisch besorgt:
#
# PLUGINS_DOMAIN=plugins.example.de docker compose --profile https up -d
#
# Die Daten (Pakete, Datenbank) liegen im Volume "plugin_daten" und überleben Updates des Images.
services:
webseite:
image: deskhub-plugins:latest
restart: unless-stopped
read_only: true # Dateisystem schreibgeschützt, nur /data und /tmp sind beschreibbar
tmpfs:
- /tmp
- /var/run/apache2
- /var/lock/apache2
cap_drop: [ALL]
cap_add: [CHOWN, SETUID, SETGID, DAC_OVERRIDE, NET_BIND_SERVICE]
security_opt: ["no-new-privileges:true"]
volumes:
- plugin_daten:/data
ports:
- "3040:80"
caddy:
image: caddy:2
profiles: ["https"] # nur mit --profile https
restart: unless-stopped
depends_on: [webseite]
ports: ["80:80", "443:443"]
environment:
PLUGINS_DOMAIN: ${PLUGINS_DOMAIN:-localhost}
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_daten:/data
- caddy_config:/config
volumes:
plugin_daten:
caddy_daten:
caddy_config: