# 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: