taler-monitoring/site-gen
Hernâni Marques d5213adb7a
release 1.13.3: sticky generated time in Europe/Zurich (CEST)
Display wall-clock like local `date` (CEST/CET), not UTC …Z. ISO datetime
keeps +02:00 offset so the live age counter stays correct.
2026-07-19 02:43:17 +02:00
..
caddy-monitoring-handles.snippet release 1.11.0: sticky error/warn log filter 2026-07-19 02:16:39 +02:00
com.hacktivism.taler-monitoring-sites.plist taler-monitoring v1.0: standalone suite 2026-07-18 13:56:54 +02:00
console_to_html.py release 1.13.3: sticky generated time in Europe/Zurich (CEST) 2026-07-19 02:43:17 +02:00
deploy-monitoring-sites.sh taler-monitoring v1.0: standalone suite 2026-07-18 13:56:54 +02:00
generate-monitoring-sites.sh taler-monitoring v1.0: standalone suite 2026-07-18 13:56:54 +02:00
install-firecuda-timer.sh release 1.4.1: generic docs and canonical install path 2026-07-19 00:58:07 +02:00
pull-firecuda-to-koopa.sh release 1.4.1: generic docs and canonical install path 2026-07-19 00:58:07 +02:00
README.md release 1.4.1: generic docs and canonical install path 2026-07-19 00:58:07 +02:00
ROOT-ON-KOOPA.md release 1.9.3: monpages code 21 always ERROR; suite apply script + absolute paths 2026-07-19 01:09:52 +02:00
run-on-firecuda.sh release 1.4.1: generic docs and canonical install path 2026-07-19 00:58:07 +02:00
settings.conf.example release 1.4.1: generic docs and canonical install path 2026-07-19 00:58:07 +02:00

monitoring site-gen

Build console-style HTML from taler-monitoring runs and stage them for host Caddy (/monitoring, /monitoring_err).

Same global reporting defaults as host-agents (run-host-report.sh):

  • RUN_TIMEOUT=600 on each suite run
  • line-buffered logs (continuous write)
  • always write HTML (first run / empty logs too)
  • Forgejo commit link in the page header

Applies to all nine fronts (GOA + FP stage + FP prod) in the default SITES list.

Host Role
optional outside runner (SSH alias via FIRECUDA_SSH) optional runner (public DNS)
koopa-external deploy staging + Caddy (root service)
host-agents primary: GOA + FP on-box (../host-agent/)

No secrets in settings.conf — only hosts, paths, site list.

Optional outside runner (outside-only) — disabled for now

An optional outside runner could run public-only monitoring (SKIP_SSH=1, phases urls versions) on a schedule (launchd every 4h) and write HTML under ~/var/taler-monitoring-sites-work/html/. Scripts for that still live here (install-firecuda-timer.sh, run-on-firecuda.sh, plist template).

Current policy: do not run a real launchd job on the outside runner.
Primary GOA monitoring is koopa host-agent (host-agent/, user hernani, local podman exec). Re-enable the outside runner only if you explicitly want a second, outside-only view.

# optional one-shot (no timer):
# ssh "$FIRECUDA_SSH"  # e.g. your outside-runner alias
# ssh "$FIRECUDA_SSH" '~/taler-monitoring-site-gen/site-gen/run-on-firecuda.sh'

# if a timer was installed earlier, ensure it is off:
# ssh "$FIRECUDA_SSH"  # e.g. your outside-runner alias
# ssh 'launchctl list | grep taler-monitoring || echo off  # macOS outside runner'

Disabled plists may remain as *.plist.disabled-* under ~/Library/LaunchAgents/.

Quick start (ops workstation)

cd site-gen
cp settings.conf.example settings.conf   # optional
chmod +x generate-monitoring-sites.sh deploy-monitoring-sites.sh console_to_html.py

ONLY_HOSTS="bank.hacktivism.ch exchange.hacktivism.ch taler.hacktivism.ch" \
  SKIP_SSH=1 RUNNER_SSH= \
  ./generate-monitoring-sites.sh

./deploy-monitoring-sites.sh

Then on koopa as root: see ROOT-ON-KOOPA.md.

URL rules

Path When
/monitoring_err/ always: full console log + error list on top (CONTINUE_ON_ERROR run)
/monitoring/ clean full log if last strict run exit 0; else stub linking to /monitoring_err/

Footer links Forgejo commit of the taler-monitoring suite used for that run.

Layout

site-gen/
  settings.conf.example
  generate-monitoring-sites.sh
  deploy-monitoring-sites.sh
  console_to_html.py
  caddy-monitoring-handles.snippet
  ROOT-ON-KOOPA.md
  README.md