release 1.8.0: simplified mon pages + surface nmap + mail hosts

Public layout: only taler-monitoring-surface(+_err) for ecosystem
software/versions; nine landing stacks keep /monitoring(+_err).
Fold mail (firefly.gnunet.org, anastasis.taler-systems.com) and
mattermost into the surface job; deprecate separate mon pages/timers.
nmap OS fingerprinting; package-behind defaults to ERROR.
This commit is contained in:
Hernâni Marques 2026-07-19 00:29:49 +02:00
parent 2b846dab7a
commit e7a3cd558f
No known key found for this signature in database
GPG key ID: CB5738652768F7E9
15 changed files with 263 additions and 154 deletions

View file

@ -1,26 +1,33 @@
#!/usr/bin/env bash
# run-surface-monitoring.sh — hourly remote-only ecosystem surface scan
# Public only on taler.hacktivism.ch:
# run-surface-monitoring.sh — ecosystem surface report (v1.8.0+ simplified)
#
# Public HTML only on taler.hacktivism.ch:
# https://taler.hacktivism.ch/taler-monitoring-surface/
# https://taler.hacktivism.ch/taler-monitoring-surface_err/
#
# This single page covers remote ecosystem inventory: host/port probes, nmap OS
# fingerprint, Mattermost, mail (firefly + anastasis), package/version signals.
# There are NO separate public pages for mail / mattermost / aptdeploy.
#
# Landing-stack reports stay on each of the 9 fronts as /monitoring(/_err).
#
set -uo pipefail
AGENT_DIR=$(cd "$(dirname "$0")" && pwd)
export AGENT_LABEL="${AGENT_LABEL:-surface-host-agent}"
export STATE_NAME="${STATE_NAME:-taler-surface-monitoring}"
export TALER_DOMAIN="${TALER_DOMAIN:-hacktivism.ch}"
# surface is remote-only — force flags (ignore shared env)
export INSIDE_PODMAN=0
export LOCAL_STACK=0
export SKIP_SSH=1
export INSIDE_MODE="${INSIDE_MODE:-none}"
# surface is primarily remote; versions may use host podman when available
export INSIDE_PODMAN="${INSIDE_PODMAN:-1}"
export LOCAL_STACK="${LOCAL_STACK:-0}"
export SKIP_SSH="${SKIP_SSH:-1}"
export INSIDE_MODE="${INSIDE_MODE:-local-podman}"
export CONTINUE_ON_ERROR="${CONTINUE_ON_ERROR:-1}"
# many hosts; allow up to 45 min wall (phase also has RUN_TIMEOUT)
export RUN_TIMEOUT="${RUN_TIMEOUT:-2400}"
# dedicated job: always surface only (never inherit PHASES from shared env)
export PHASES="${PHASES:-surface monpages}"
# Only merchant public front — not bank/exchange
# All ecosystem checks → one surface HTML report
export PHASES="${PHASES:-surface mattermost mail versions monpages}"
export MON_HOSTS="${MON_HOSTS:-taler.hacktivism.ch}"
export HTML_OUT="${HTML_OUT:-$HOME/monitoring-sites-staging}"
export DEPLOY_WWW_ROOT="${DEPLOY_WWW_ROOT:-/var/www/monitoring-sites}"
@ -31,11 +38,12 @@ export HTML_URL_OK="/taler-monitoring-surface/"
export HTML_URL_ERR="/taler-monitoring-surface_err/"
export PAGE_LABEL="taler-monitoring-surface"
# ecosystem catalog by default (not domain-only)
export SURFACE_SCOPE="${SURFACE_SCOPE:-ecosystem}"
export TALER_DOMAIN_FROM_CLI=0
# Do not run apt-deploy ensure for surface-only jobs
export APT_DEPLOY_ENSURE=0
# monpages job-only for this path (surface HTML); not the 9 landings
export MONPAGES_INVENTORY="${MONPAGES_INVENTORY:-job}"
# package behind → ERROR (v1.8.0)
export TALER_PKG_BEHIND="${TALER_PKG_BEHIND:-error}"
exec bash "$AGENT_DIR/run-host-report.sh" "$@"