[serve] interval_secs = 300 prune_days = 30 listen = "0.0.0.0:9100" peer_heartbeat_secs = 60 route_check_interval_secs = 300 dashboard = false # api_token loaded from POM_API_TOKEN env var [instance] name = "hetzner" [targets.mnw] label = "Makenotwork Production" expected_routes = ["/", "/discover", "/login", "/docs"] [[targets.mnw.dns]] name = "makenot.work" record_type = "A" expected = [] [[targets.mnw.dns]] name = "forums.makenot.work" record_type = "A" expected = [] [[targets.mnw.dns]] name = "git.makenot.work" record_type = "A" expected = [] [[targets.mnw.cors]] url = "https://fsn1.your-objectstorage.com/makenotwork-files/cors-probe" origin = "https://makenot.work" method = "PUT" [targets.mnw.whois] domain = "makenot.work" warn_days = 30 [targets.mnw.health] url = "https://makenot.work/api/health" timeout_secs = 10 [targets.mnw.health.expect] status_code = 200 json_fields = { "status" = "operational", "checks.database" = "true" } [targets.mnw.health.trending] baseline_window_hours = 168 spike_threshold = 2.0 [targets.mnw.tls] host = "makenot.work" [targets.mnw.tests] ssh = "max@100.106.221.39" command = "/home/max/staging/run-ci.sh" timeout_secs = 600 staleness_days = 7 [targets.mnw.backups] directory = "/opt/makenotwork/backups" databases = ["makenotwork"] max_age_hours = 25 interval_secs = 3600 [targets.mnw.scan_pipeline] # Polls /admin/uploads/health.json for queue depth, stuck-scan count, # held backlog, and per-layer error rates. Thresholds per # scan-pipeline-audit.md § 6. Localhost on the makenotwork port to # skip the Caddy + Cloudflare path — internal-only signal. base_url = "http://127.0.0.1:3000" interval_secs = 300 timeout_secs = 10 [targets.mnw-cli] label = "MNW CLI SSH Server" [[targets.mnw-cli.dns]] name = "cli.makenot.work" record_type = "A" expected = [] [targets.mnw-cli.ssh_banner] host = "127.0.0.1" port = 22 timeout_secs = 5 [targets.mt] label = "Multithreaded Forum" expected_routes = ["/"] [targets.mt.health] url = "http://127.0.0.1:3400/api/health" timeout_secs = 5 [targets.mt.health.expect] status_code = 200 json_fields = { "status" = "operational", "database" = "true" } [targets.mt.tls] host = "forums.makenot.work" [targets.mt.tests] ssh = "max@100.106.221.39" command = "cd /home/max/staging/multithreaded && cargo test --workspace 2>&1" timeout_secs = 300 staleness_days = 7 [targets.htpy] label = "htpy.app" [[targets.htpy.dns]] name = "htpy.app" record_type = "A" expected = [] [targets.htpy.whois] domain = "htpy.app" warn_days = 30 [targets.htpy.health] url = "http://100.99.153.68:8080/archive/S_2" timeout_secs = 10 [targets.htpy.health.expect] status_code = 200 body_contains = "htpy" [targets.htpy.tls] host = "htpy.app" [peers.astra] address = "100.106.221.39:9100" on_missing = "alert" # token = "" [peers.macbook] address = "100.100.246.136:9100" on_missing = "log" # token = "" [alerts] # postmark_token loaded from POM_POSTMARK_TOKEN env var to = "pom-alerts@makenot.work"