Skip to content

The Astropath & Observability — Monitoring Services

Overview of surveillance mechanisms across the Forge.

All daemons on clochette with the label friloux.me/health-watch = "true" are automatically watched by the notify-docker pattern.

Two mechanisms:

MechanismTriggerAction
notify-failure@systemd service → failed statentfy.sh notification
docker-health-watch@ (30s timer)docker inspect returns unhealthydocker kill → systemd restart → ntfy.sh

Notifications arrive on the topic in services/ntfy/topic.

Terminal window
# Quick view — all containers
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.RunningFor}}"
# Detailed health of a container
docker inspect --format='{{.Name}} : {{.State.Health.Status}}' traefik
# Health of all watched daemons
for c in traefik crowdsec immich-server immich-postgres immich-redis; do
echo "$c : $(docker inspect --format='{{.State.Health.Status}}' $c 2>/dev/null || echo 'not found')"
done
ServiceTest Command
traefikcurl -s http://127.0.0.1:8080/ping
crowdseccurl -s http://localhost:8080/health
immichcurl -s http://localhost:2283/api/server/ping
postgresdocker exec immich-postgres pg_isready -U immich -d immich
redisdocker exec immich-redis redis-cli ping
Terminal window
# List all timers and next trigger
systemctl list-timers --all
# Specific timers to watch
systemctl list-timers | grep -E "borg|health-watch|logrotate"
Terminal window
# Status of last backup
systemctl status borgbackup-job-remote
# Journal of last backup
journalctl -u borgbackup-job-remote --since today
# List available archives
BORG_PASSPHRASE=$(cat /run/secrets/services/borg/passphrase) \
BORG_RSH="ssh -i /run/secrets/services/borg/key/private" \
borg list ssh://backup@storage2.friloux.me/~/clochette.friloux.me
# Manual integrity check
systemctl start borgbackup-check
Terminal window
# Docker service logs via journald
journalctl -u docker-traefik -f
journalctl -u docker-immich-server --since "1 hour ago"
# Traefik application logs (rotated file)
tail -f /srv/docker/traefik/logs/traefik.log
# Logrotate — verify last run
journalctl -u logrotate --since today

Uptime Kuma will be installed on a future NixOS shrine to provide external monitoring independent of clochette.

See Design & Prerequisites — RogueLeader.