Quick Setup
- Go to Settings > Network > Trusted Proxies.
- Paste your load balancer’s internal IP or CIDR range.
- Save.
https://www.cloudflare.com/ips/):
Verify it works
After saving, check that Observal resolves the correct client IP:Field Reference
Trusted Proxy IPs
A list of IP addresses or CIDR ranges that Observal trusts to set forwarding headers (X-Forwarded-For, X-Real-IP, X-Forwarded-Proto).
Affects: IP resolution for rate limiting, audit logs, and access controls. Only IPs in this list are trusted to pass X-Forwarded-For. Traffic from unlisted IPs uses the TCP source address directly, ignoring forwarding headers.
Default: 172.16.0.0/12, 10.0.0.0/8, 192.168.0.0/16, 127.0.0.1 (private networks and localhost)
Format: Comma-separated IPs or CIDR blocks.
Values:
When to set: When deploying behind any load balancer, reverse proxy, or CDN. Without correct configuration, all users appear as the proxy’s IP in audit logs and share one rate-limit bucket.
Security best practice: Never add
0.0.0.0/0 (trust everything). This allows any client to spoof their apparent IP address.
Symptom-to-fix:
SSRF Protection
Server-Side Request Forgery (SSRF) protection prevents Observal from making outbound requests to internal/private networks when processing user-supplied URLs (webhook destinations, IdP metadata URLs, custom API base URLs). Settings:
Default blocked ranges:
10.0.0.0/8172.16.0.0/12192.168.0.0/16169.254.0.0/16(link-local / cloud metadata)127.0.0.0/8(loopback)::1/128,fc00::/7,fe80::/10(IPv6 equivalents)
- Your IdP metadata URL is on an internal hostname (e.g.,
idp.internal.yourcompany.com). - Webhooks need to reach an internal service (e.g.,
slack-gateway.internal:8080).
Warning: Never disable SSRF protection in production. Use the allow-list for legitimate internal targets.Symptom-to-fix:
Allow Internal Git URLs
Whether agent and component definitions can reference Git repositories on private/internal networks. Affects: Agent scaffolding and component installation from Git sources. Whenfalse, Git URLs that resolve to private IP ranges (RFC 1918) are blocked by SSRF protection. When true, internal Git repos are permitted.
Values:
When to set: Your deployment hosts agent source code on an internal GitLab/Gitea/GitHub Enterprise instance that resolves to a private IP. Enable this so
observal publish and component installs can clone from internal repos.
