| 172.28.0.10 | PostgreSQL 16 | 5432 | WAL enabled, max_connections=100, shared_buffers=1 GB |
| 172.28.0.11 | Redis 7 | 6379 | 512 MB allkeys-lru |
| 172.28.0.12 | pgBouncer | 5432 | Transaction mode, 40 pool, 500 clients |
| 172.28.0.13 | Nginx | 80 / 443 | HTTPS termination, /grafana/ proxy, SSE buffering off |
| 172.28.0.15 | Kamailio 5.8 | 5060 / 5061 | SIP UDP+TCP, TLS on :5061, XMLRPC :8080 |
| 172.28.0.30 | GoPBX API | 8080 | Go/Gin, JWT, Vultr provisioner |
| 172.28.0.40 | Prometheus | 9090 | 30-day retention |
| 172.28.0.41 | Grafana | 3000 | Served at /grafana/ |
| 172.28.0.42 | node-exporter | 9100 | Host metrics |
| 172.28.0.43 | postgres-exporter | 9187 | |
| 172.28.0.44 | redis-exporter | 9121 | |
| host | RTPEngine | 2223 (ng) · 16384–32768/udp (RTP) | Host network — binds public IP directly |