46 lines
1.6 KiB
YAML
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:
|