You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 92f0f3e
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: CHANGELOG.md
+6-1Lines changed: 6 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,14 +22,19 @@ Since this is not a library, this changelog focuses on the changes that are rele
22
22
23
23
### ⚠️ Breaking Changes
24
24
25
-
- Client IP detection now defaults to `X-Forwarded-For` from IPv4 and IPv6 loopback proxies only. Other headers and proxies must be configured with the `trusted_headers` and `trusted_proxies` options. See the [configuration reference](https://liwan.dev/reference/configuration/) for details.
25
+
Client IP detection now defaults to `X-Forwarded-For` from IPv4 and IPv6 loopback proxies only. Use `trusted_headers` (`LIWAN_TRUSTED_HEADERS`) to configure different headers and `trusted_proxies` (`LIWAN_TRUSTED_PROXIES`) to configure other proxy addresses or networks.
26
+
27
+
For Docker deployments where the reverse proxy connects to Liwan through a Docker bridge, add the bridge subnet to `trusted_proxies`, for example `trusted_proxies = ["172.17.0.0/16"]`. If only trusted systems can connect to Liwan over an isolated network, you can set `trusted_proxies = "*"` instead.
28
+
29
+
Without this configuration, forwarded client addresses from these proxies are ignored. This affects visitor grouping, GeoIP lookup, and rate limits for login and event requests. See the [configuration reference](https://liwan.dev/reference/configuration/) for details.
26
30
27
31
### Features
28
32
29
33
- Added external authentication with OpenID Connect, Google, and Microsoft Entra ID, including optional user creation and provider access restrictions
30
34
- Improved visit duration accuracy by tracking page exits
31
35
- Added client IP header presets for Akamai, Cloudflare, CloudFront, Fastly, and Fly
32
36
- Added GeoIP header mappings and presets for Akamai, Cloudflare, CloudFront, Netlify, and Vercel, with MaxMind results taking precedence when available
37
+
- Added `*` support for `trusted_proxies` to trust forwarding headers from any direct peer
33
38
- Tracker requests now avoid CORS preflight requests by sending JSON as `text/plain` and the event API accepts tracker JSON regardless of content type
peer_ip = %peer_ip.expect("private peer IP is present"),
137
+
"Ignoring client IP headers from an untrusted private proxy. Add its address or network to `trusted_proxies` or `LIWAN_TRUSTED_PROXIES` if it should be trusted"
0 commit comments