Nachdem es wohl immer mal Probleme mit dem NPM zu geben scheint, habe ich mal eine Testinstallation mit Caddy anstelle von NPM aufgesetzt.
Der Caddy Server hat den Vorteil, dass er sich selbst um die Zertifikate kümmert.
Anstelle des docker-compose.yml aus der Installationsanleitung (Anleitung) verwendet man folgendes File:
version: '3.0'
networks:
alarmiator-network:
name: alarmiator-network
driver: bridge
services:
alarmiator_service:
networks:
- alarmiator-network
restart: always
image: alarmiator/alarmiator
ports:
- '5000:5000'
- '5010:5010'
- '5020:5020'
healthcheck:
test: curl --fail http://localhost:5000 || exit 1
interval: 20s
retries: 5
start_period: 15s
timeout: 10s
volumes:
- alarm-db:/alarmiatorserver/store
- alarm-katsys:/alarmiatorserver/plugins/inbound/katsys
- alarm-public-img:/alarmiatorserver/public/assets/img
- alarm-uploads:/alarmiatorserver/uploads
- alarm-logs:/alarmiatorserver/logs
caddy:
networks:
- alarmiator-network
image: caddy:2.6.4-alpine
restart: always
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
volumes:
alarm-db:
alarm-katsys:
alarm-public-img:
alarm-uploads:
alarm-logs:
caddy_data:
caddy_config:
gleichzeitg erstellt man im gleichen Verzeichnis eine Datei mit dem Namen Caddyfile
mit folgendem Inhalt:
(proxy_options) {
header_up Host {host}
header_up X-Forwarded-Scheme {scheme}
header_up X-Real-IP {remote_host}
}
alarmiator.example.com {
handle_path /api/* {
reverse_proxy alarmiator_service:5010 {
import proxy_options
}
}
handle /socket.io/* {
reverse_proxy alarmiator_service:5020 {
import proxy_options
}
}
handle /spaceport/socket.io/* {
reverse_proxy alarmiator_service:5555 {
import proxy_options
}
}
handle {
reverse_proxy alarmiator_service:5000 {
import proxy_options
}
}
}
wobei man alarmiator.example.com
durch den passenden Domainnamen ersetzt.
Danach startet man die Konfig, wie in der Anleitung beschrieben:
docker compose up -d
Die Konfiguration von Caddy erfolgt durch das Caddyfile. Eine grafische Oberfläche wie der NPM besitzt der Caddy Server nicht.
Anmerkung: Im Gegensatz zur offiziellen Anleitung werden die Ports 5000, 5010 und 5020 durchgereicht. Leider haben einige Router Probleme, eine auf sie selbst gemappte Domain anzusprechen, und so hat man dann die Möglichkeit, Wallboards und GUI über die internen IP Adressen anzusprechen.