0fad44fb68
chore(vpn): do not restart VPN if startup check fails and HEALTH_RESTART_VPN=off - Note you still should not set HEALTH_RESTART_VPN=off this is for debugging only
Quentin McGaw
2025-11-22 15:21:40 +00:00
4f9dcff3f4
hotfix(ci): verify-private requirement for publish, not itself
Quentin McGaw
2025-11-21 20:16:57 +00:00
1abc90970d
chore(health): add ip address to error messages for small checks
Quentin McGaw
2025-11-20 20:03:02 +00:00
a445ba072c
chore(health): log out duration of tries in milliseconds
Quentin McGaw
2025-11-20 15:08:41 +00:00
9e5624d32b
feat(healthcheck): add HEALTH_SMALL_CHECK_TYPE option which can be dns or icmp (default) Note if icmp is not permitted, it fallsback to dns anyway
Quentin McGaw
2025-11-20 15:05:38 +00:00
815fcdb711
chore(healthcheck/icmp): log what IP is being pinged when timing out
Quentin McGaw
2025-11-20 14:46:31 +00:00
0bb9f62755
hotfix(ci): require verify-private to pass for publish job to trigger
Quentin McGaw
2025-11-19 19:58:58 +00:00
93567a7804
hotfix(ci): bump container run timeout from 15s to 30s
Quentin McGaw
2025-11-19 19:57:57 +00:00
0afbb71634
feat(main): add ascii logo at exit
Quentin McGaw
2025-11-19 18:08:10 +00:00
9f39d47150
feat(healthcheck): HEALTH_ICMP_TARGET_IP -> HEALTH_ICMP_TARGET_IPS - Specify fallback ICMP IP addresses - Defaults changed from 1.1.1.1 to 1.1.1.1,8.8.8.8 - Small periodic check cycles through addresses as it fails and moves to retry
Quentin McGaw
2025-11-19 16:00:20 +00:00
f9490656eb
chore(healthcheck): mirror default icmp ip set in Dockerfile in the Go code
Quentin McGaw
2025-11-19 15:45:04 +00:00
482421dda3
feat(healthcheck): HEALTH_TARGET_ADDRESS -> HEALTH_TARGET_ADDRESSES - Specify fallback addresses - Defaults changed from cloudflare:443 to cloudflare:443,github.com:443 - Startup check runs a parallel dial to each of the addresses specified with a global 6s timeout - Full periodic check cycles through addresses as it fails and moves to retry
Quentin McGaw
2025-11-19 15:41:21 +00:00
7450424849
fix(wireguard): WIREGUARD_ENDPOINT_IP overrides the IP address of a picked connection - Regression introduced in v3.39.0 - Fix#2759
v3.40
Quentin McGaw
2025-11-19 13:11:00 +00:00
16bc27bf9f
feat(expressvpn): update hardcoded servers data (#2888)
Matthew Bennett
2025-10-06 04:33:36 -07:00
31284542a2
fix(wireguard): WIREGUARD_ENDPOINT_IP overrides the IP address of a picked connection - Regression introduced in v3.39.0 - Fix#2759
Quentin McGaw
2025-11-19 13:11:00 +00:00
35b6b709b2DNS_UPSTREAM_PLAIN_ADDRESSES option - New CSV format with port, for example ip1:port1,ip2:port2 - retrocompatibility with DNS_ADDRESS. If set, force upstream type to plain and empty user-picked providers. 127.0.0.1 is now ignored since it's always set to this value internally. - requires DNS_UPSTREAM_TYPE=plain must be set to use DNS_UPSTREAM_PLAIN_ADDRESSES (unless using retro DNS_ADDRESS) - Warning log on using private upstream resolvers updated
Quentin McGaw
2025-11-17 15:04:06 +00:00
64bfbaa45d
fix(cli): fix openvpnconfig command panic due to missing SetDefaults call
Quentin McGaw
2024-12-27 09:30:58 +00:00
4712d0cf79
change(healthcheck): bump tries and timeouts - small periodic check from 10s+20s+30s to 5s+5s+5s+10s+10s+10s+15s+15s+15s+30s - full periodic check from 10s+20s to 10s+15s+30s
Quentin McGaw
2025-11-15 16:47:38 +00:00
113c113615
feat(healthcheck): log duration for each failed attempt
Quentin McGaw
2025-11-15 16:45:03 +00:00
843bf08aa1
chore(deps): bump dns to 248acd2833
Quentin McGaw
2025-11-14 16:13:59 +00:00
5b25cc95a9
chore(docker): clear DNS_BLOCK_IP_PREFIXES values since DNS rebinding protection is built-in the filter middleware
Quentin McGaw
2025-11-14 15:04:56 +00:00
0fddbc54a2
Chore(deps): Bump github.com/cloudflare/circl from 1.6.0 to 1.6.1 (#2977)
dependabot[bot]
2025-11-13 23:27:51 +01:00
11fcfb7d19
Chore(deps): Bump golang.org/x/net from 0.46.0 to 0.47.0 (#2976)
dependabot[bot]
2025-11-13 23:27:10 +01:00
3cd7d7edcb
Chore(deps): Bump golang.org/x/text from 0.30.0 to 0.31.0 (#2975)
dependabot[bot]
2025-11-13 23:26:55 +01:00
30609b6fe9
hotfix(configuration/settings): fix requirement for proton username and password
Quentin McGaw
2025-11-13 21:58:46 +00:00
3fac02a82a
feat(server/auth): HTTP_CONTROL_SERVER_AUTH_DEFAULT_ROLE option (JSON encoded) - For example: {"auth":"basic","username":"me","password":"pass"} - For example{"auth":"apiKey","apikey":"xyz"} - For example{"auth":"none"} (I don't recommend)
Quentin McGaw
2025-11-13 18:24:34 +00:00
f11f142bee
feat(settings/wireguard): precise WIREGUARD_ENDPOINT_IP must be an IP address for now
Quentin McGaw
2025-11-13 16:20:00 +00:00
596faef8f2
Chore(deps): Bump golang.org/x/sys from 0.37.0 to 0.38.0 (#2973)
dependabot[bot]
2025-11-13 16:47:26 +01:00
3d1b6bc861
feat(server/portforward): change route from /v1/openvpn/portforwarded to /v1/portforward - This route has nothing to do with openvpn specifically - Remove the ed in portforwarded to accomodate future routes such as changing the state of port forwarding - maintaining retrocompatibility with /v1/openvpn/portforwarded - maintaining retrocompatibility with /openvpn/portforwarded - Moved to its own handler /v1/portforward instead of /v1/vpn/portforward to reduce the complexity of the vpn handler
Quentin McGaw
2025-11-13 14:50:36 +00:00
46ad576233
fix(server/log): log out full URL path not just bottom request URI
Quentin McGaw
2025-11-13 14:29:58 +00:00
46beaac34b
hotfix(server/auth): add old route /openvpn/portforwarded as valid
Quentin McGaw
2025-11-13 14:21:50 +00:00
3025476e8b
chore(portforward): remove double log when clearing port forward file
Quentin McGaw
2025-11-13 14:10:13 +00:00
cd6f9493a4
docs(Dockerfile): specify default PUID and PGID to avoid confusion - Both of these already defaulted to 1000 in the Go code
Quentin McGaw
2025-11-13 13:06:21 +00:00
5ca13021e7
feat(netlink): detect IPv6 using query to address - If a default IPv6 route is found, query the ip:port defined by IPV6_CHECK_ADDRESS to check for internet access
Quentin McGaw
2024-12-12 06:48:43 +00:00
dae44051f6
feat(netlink): detect ipv6 support level - 'supported' if one ipv6 route is found that is not loopback and not a default route - 'internet' if one default ipv6 route is found
Quentin McGaw
2024-10-14 16:44:05 +00:00
d4831ad4a6
chore(dns): replace DOT_PRIVATE_ADDRESS with DNS_BLOCK_IPS and DNS_BLOCK_IP_PREFIXES
Quentin McGaw
2025-11-07 14:31:09 +00:00
9e1b53a732
feat(server): log number of roles read from auth file
Quentin McGaw
2025-11-05 23:05:10 +00:00
d0113849d6
feat(dns): support doh upstream type
Quentin McGaw
2025-11-05 21:21:16 +00:00
7b25fdfee8
chore(deps): bump dns to v2.0.0-rc9
Quentin McGaw
2025-11-05 20:55:28 +00:00
5ed6e82922
feat(dns): DNS_UPSTREAM_RESOLVER_TYPE option which can be plain or DoT - Migrate DOT to DNS_SERVER - Migrate DOT_PROVIDERS to DNS_UPSTREAM_RESOLVERS - Migrate DOT_PRIVATE_ADDRESS to DNS_PRIVATE_ADDRESSES - Migrate DOT_CACHING to DNS_CACHING - Migrate DOT_IPV6 to DNS_UPSTREAM_IPV6
Quentin McGaw
2025-11-05 20:41:19 +00:00
7dbd14df27
chore(dns): merge DoT settings with DNS settings
Quentin McGaw
2025-11-05 20:14:25 +00:00
96d8b53338
Chore(deps): Bump github.com/breml/rootcerts from 0.3.2 to 0.3.3 (#2964)
dependabot[bot]
2025-11-04 20:34:22 -05:00
2bd19640d9
feat(health/dns): try another DNS server if one fails
Quentin McGaw
2025-11-04 15:51:04 +00:00
eb49306b80
hotfix(health): change default icmp target to 1.1.1.1 - Cloudflare's 1.1.1.1 seems more reliable than the VPN server public IP address you connect to - This can still be changed back to 0.0.0.0 to use the VPN server IP address if needed
Quentin McGaw
2025-11-04 14:47:24 +00:00
7fbc5c3c07
feat(cyberghost): update servers data
Quentin McGaw
2025-11-04 14:38:25 +00:00
e03f545e07
Chore(deps): Bump github.com/stretchr/testify from 1.10.0 to 1.11.1 (#2959)
dependabot[bot]
2025-11-04 15:33:12 +01:00
942f1f2c0f
Chore(deps): Bump github.com/pelletier/go-toml/v2 from 2.2.3 to 2.2.4 (#2958)
dependabot[bot]
2025-11-04 15:33:00 +01:00
baf566d7a5
Chore(deps): Bump github.com/klauspost/compress from 1.17.11 to 1.18.1 (#2957)
dependabot[bot]
2025-11-04 15:32:46 +01:00
6712adfe6b
hotfix(firewall): handle textual values for protocols - Alpine / iptables-legacy bug introduced in Alpine 3.22 - Alpine: what the hell? Stop introducing breaking changes in iptables on every god damn release!
Quentin McGaw
2025-11-04 14:16:11 +00:00