irin observability
Infrastructure Topology
Outbound-push architecture. Zero inbound ports on customer hosts. Two independent backends (primary + replica), each running its own Prometheus, Grafana, and Loki.
Dev-01 mirrors the production stack on a single bare-metal box for staging and pre-prod validation — no replication, daily snapshot to PBS.
Irin service
Cloudflare edge
Infra · external
TLS push (outbound)
Postgres streaming repl.
Backup / failover path
Why outbound-push
Customer hosts open 0 inbound ports. Alloy initiates a TLS connection through a per-tenant Cloudflare Tunnel to either edge. Compromise of an Irin backend cannot pivot back into a customer network.
Two independent backends
Primary and Replica each run a full Prometheus / Grafana / Loki / MinIO stack. Postgres uses streaming replication for portal state. Failover is a CF Tunnel redirect plus a Postgres promotion — no replay or backfill.
Backup posture
Proxmox Backup Server keeps three rotating copies of Postgres, Grafana state, the knowledge base, and the monitoring stack itself. The Web VM and Dev server back up to PBS on the same schedule.