Quentin McGaw
7f22fb3276
fix(protonvpn): support port 51820 for UDP OpenVPN
2026-02-11 14:13:34 +00:00
Quentin McGaw
6909a0c123
fix(healthcheck): prevent race condition and fix #3096 ( #3123 )
2026-02-11 14:12:20 +00:00
Quentin McGaw
3e1f48932a
fix(openvpn): only log openvpn version corresponding to OPENVPN_VERSION
2026-02-11 14:12:08 +00:00
Chris Duck
50744852c5
fix(protonvpn): update OpenVPN settings ( #3120 )
2026-02-11 14:11:57 +00:00
Quentin McGaw
09e52bc685
fix(httpproxy): remove info log when no Proxy-Authorization header is present
2026-02-11 14:11:46 +00:00
Quentin McGaw
857fe425ec
fix(wireguard): fix detection of kernelspace wireguard
2026-02-11 14:11:36 +00:00
Quentin McGaw
a10349e378
fix(slickvpn): add missing servers found online
2025-12-24 20:29:05 +00:00
Marcin Łapaj
983330266a
fix(purevpn/updater): parse country and city from hostname and merges with ip address information ( #2991 )
2025-12-24 05:02:57 +01:00
Jeremy Lin
6eb511fb2a
fix(publicip/api/cloudflare): add Referer header ( #3058 )
2025-12-24 04:52:25 +01:00
Quentin McGaw
666f55767b
hotfix(autoheal): monitor health errors asynchronously with other setup steps
...
- May resolve #3021
- no need to wait for dns, port forwarding etc. to setup to monitor health errors
2025-12-24 02:58:42 +00:00
Quentin McGaw
0a0bb4cf71
hotfix(healthcheck): only fallback to plain dns if icmp is not permitted on the very first try
2025-12-24 02:58:42 +00:00
Quentin McGaw
2b0719225d
fix(purevpn): update openvpn configuration
...
- Credits to @mlapaj
- Taken and verified from #2991
2025-12-23 17:34:25 +00:00
Quentin McGaw
c97bd1bb7c
fix(publicip/api/ip2location): rename countries to match standard country names
2025-12-23 17:34:25 +00:00
Quentin McGaw
10a7c75aa6
feat(publicip/api): query all fetchers in parallel and pick most popular result
2025-12-23 17:34:25 +00:00
Quentin McGaw
617f1b764f
chore(storage): ignore persisted servers data with a timestamp in the future
...
- force users to set a timestamp as the current one if manually editing servers.json which they should not do anyway
- favor future servers data updates through a container image pull to override older user-defined data
2025-12-23 15:38:17 +00:00
Quentin McGaw
600f2ab643
chore(storage): fix comment for ServersAreEqual
2025-12-23 15:36:08 +00:00
Quentin McGaw
7052d5490b
hotfix(pia): revert port changes
...
- This reverts commit fd6e5e4e90 .
- Port changes are more involved and require cipher, auth and certificate changes as well
2025-12-23 14:02:47 +00:00
Quentin McGaw
6a5a836cb6
feat(pia): update servers data
2025-12-23 13:51:34 +00:00
Quentin McGaw
a649b0adc1
hotfix(slickvpn): remove unused code
2025-12-23 13:45:41 +00:00
Quentin McGaw
beaa8b5589
fix(slickvpn/updater): only keep 11 servers
...
- this reverts most of commit e806fe02db .
2025-12-23 03:03:47 +00:00
Quentin McGaw
e806fe02db
fix(slickvpn/updater): update existing hostnames from servers.json
...
- SlickVPN location website is now total garbage which cannot be parsed
2025-12-23 02:50:15 +00:00
Quentin McGaw
92237658c3
chore(wevpn): removed since it is now decomissioned
2025-12-23 02:12:02 +00:00
Quentin McGaw
e627504fb5
fix(vpnunlimited/updater): remove no longer valid hosts
2025-12-23 02:02:26 +00:00
Quentin McGaw
cc1c253bad
feat(vpnsecure): update servers data
2025-12-23 01:59:34 +00:00
Quentin McGaw
c27dac10fe
fix(vpnsecure/updater): allow region and city to be set to N/A
2025-12-23 01:59:23 +00:00
Quentin McGaw
7d1e2eb226
feat(torguard): servers data update
2025-12-23 01:54:48 +00:00
Quentin McGaw
5b5aa5e014
feat(surfshark): update servers data
2025-12-23 01:54:15 +00:00
Quentin McGaw
9ee3ed754d
chore(cyberghost/updater): do not log warnings for "no such host"
2025-12-23 01:51:59 +00:00
Quentin McGaw
0ca466fbd5
feat(cyberghost): update servers data
2025-12-23 01:51:11 +00:00
Quentin McGaw
1c1d271967
fix(dns): retry on next period the blocklists update after a failed update
...
- Fix #3053
2025-12-23 01:40:29 +00:00
Quentin McGaw
cc89b35b63
chore(pia): add test to ensure default ports are within ports from their API
2025-12-22 23:24:13 +00:00
Quentin McGaw
fd6e5e4e90
fix(pia): update default openvpn ports and possible ports to choose
...
- Fix #3046
2025-12-22 22:47:17 +00:00
Quentin McGaw
d702ed4122
fix(dns): dns over tls re-uses TCP connections
...
- Bump dns to v2.0.0-rc10
- DNS over HTTPs not affected since it did re-use connections already
2025-12-22 21:09:22 +00:00
Quentin McGaw
2d00f3fe25
hotfix(server/auth): case sensitivity for HTTP_CONTROL_SERVER_AUTH_DEFAULT_ROLE
2025-12-05 17:03:42 +00:00
Quentin McGaw
56db5a83c0
chore(healthcheck): log one error per line on failure for readability
2025-12-05 17:03:04 +00:00
Quentin McGaw
f5206375c0
docs(readme): add star history graph because it's fun
2025-11-26 14:08:46 +00:00
Quentin McGaw
c25c9f6f0e
feat(healthcheck/icmp): use the same id and increasing sequence number
...
- easier debug logs flow
- MAY cost less conntrack-ed slots on the VPN server
- resets id and sequence to 1 when reconnecting VPN
- resets id and sequence to 1 after 5 minutes
- resets id and sequence to 1 if sequence is complete (65535)
2025-11-26 13:41:55 +00:00
Quentin McGaw
08a7aae5f1
chore(ci): use qdm12/log library to have timed logs for tests
2025-11-26 13:41:55 +00:00
dependabot[bot]
57d8eb03c5
Chore(deps): Bump golang.org/x/crypto from 0.44.0 to 0.45.0 ( #2999 )
2025-11-26 00:29:02 +01:00
dependabot[bot]
2b55161fbb
Chore(deps): Bump actions/checkout from 5 to 6 ( #3001 )
2025-11-26 00:27:44 +01:00
Quentin McGaw
c4f2a224d4
change(dns): log filtered requests at the debug level
2025-11-25 16:50:17 +00:00
Quentin McGaw
8bb0cc324b
fix(dns): prevent dns restart crash if DOT=off and DNS_KEEP_NAMESERVER=off
2025-11-24 16:45:53 +00:00
Quentin McGaw
2afa988174
hotfix(dns): resolve .site and .network domain names as non-local
2025-11-23 21:39:49 +00:00
Quentin McGaw
a35c994bc8
feat(port-forwarding): add {{VPN_INTERFACE}} template variable
2025-11-22 23:32:26 +00:00
Quentin McGaw
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
2025-11-22 15:21:40 +00:00
Quentin McGaw
4f9dcff3f4
hotfix(ci): verify-private requirement for publish, not itself
2025-11-21 20:16:57 +00:00
Quentin McGaw
1abc90970d
chore(health): add ip address to error messages for small checks
2025-11-20 20:03:02 +00:00
Quentin McGaw
a445ba072c
chore(health): log out duration of tries in milliseconds
2025-11-20 15:14:00 +00:00
Quentin McGaw
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
2025-11-20 15:13:50 +00:00
Quentin McGaw
815fcdb711
chore(healthcheck/icmp): log what IP is being pinged when timing out
2025-11-20 14:46:31 +00:00
Quentin McGaw
0bb9f62755
hotfix(ci): require verify-private to pass for publish job to trigger
2025-11-19 19:58:58 +00:00
Quentin McGaw
93567a7804
hotfix(ci): bump container run timeout from 15s to 30s
2025-11-19 19:57:57 +00:00
Quentin McGaw
0afbb71634
feat(main): add ascii logo at exit
2025-11-19 18:08:10 +00:00
Quentin McGaw
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
2025-11-19 16:03:09 +00:00
Quentin McGaw
f9490656eb
chore(healthcheck): mirror default icmp ip set in Dockerfile in the Go code
2025-11-19 16:02:19 +00:00
Quentin McGaw
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
2025-11-19 16:01:50 +00:00
Quentin McGaw
03f1fea123
hotfix(healthcheck): update outdated function comment
2025-11-19 15:34:22 +00:00
Quentin McGaw
31284542a2
fix(wireguard): WIREGUARD_ENDPOINT_IP overrides the IP address of a picked connection
...
- Regression introduced in v3.39.0
- Fix #2759
2025-11-19 13:11:43 +00:00
Quentin McGaw
5ff5fc4a5e
chore(ci): run protonvpn config container
2025-11-18 22:08:25 +00:00
Quentin McGaw
5b93464fef
fix(proton): giving proton password is not mandatory
2025-11-18 21:36:38 +00:00
Quentin McGaw
debf3474e7
hotfix(protonvpn): fix retro-compatibility with UPDATER_PROTONVPN_USERNAME
2025-11-18 13:40:55 +00:00
Quentin McGaw
2853ca9033
feat(protonvpn): update servers data including paid data
2025-11-18 13:36:05 +00:00
Quentin McGaw
74d059dd77
fix(protonvpn/updater): API authentification fix using email
...
- `UPDATER_PROTONVPN_USERNAME` -> `UPDATER_PROTONVPN_EMAIL`
- `-proton-username` -> `-proton-email`
- fix authentication flow to use email or username when appropriate
- fix #2985
2025-11-18 13:35:04 +00:00
Quentin McGaw
9963e18a8a
fix(storage): do not write updated servers to file if file path is empty
2025-11-18 13:28:03 +00:00
Quentin McGaw
41cd8fb30d
fix(storage): only log warning if flushing merged servers to file fails
2025-11-17 19:04:19 +00:00
dependabot[bot]
9ed6cd978d
Chore(deps): Bump DavidAnson/markdownlint-cli2-action from 20 to 21 ( #2984 )
2025-11-17 19:57:57 +01:00
Quentin McGaw
c4b9d459ed
fix(dns): fix panic when using DNS_KEEP_NAMESERVER
2025-11-17 17:59:18 +00:00
Quentin McGaw
6e99ca573e
chore(storage): do not read/write to user file when updating in maintainer mode
2025-11-17 15:31:40 +00:00
Quentin McGaw
2cf4d6b469
fix(protonvpn/updater): ignore casing when comparing received username
2025-11-17 15:23:02 +00:00
Quentin McGaw
a17776673b
docs(readme): warning on "official" websites
2025-11-17 12:46:45 +00:00
Quentin McGaw
fcdba0a3cc
feat(portforward): support {{PORT}} template variable
2025-11-16 00:18:01 +00:00
Quentin McGaw
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
2025-11-15 16:47:38 +00:00
Quentin McGaw
113c113615
feat(healthcheck): log duration for each failed attempt
2025-11-15 16:45:03 +00:00
Quentin McGaw
6023eb1878
hotfix(dns): compilation error due to dns package upgrade on master
2025-11-14 21:24:40 +00:00
Quentin McGaw
a1ece20617
feat(dns): resolve network-local names ( #2970 )
2025-11-14 17:30:05 +01:00
Quentin McGaw
0bc67b73a8
feat(dns): info log all requests filtered out
2025-11-14 16:19:07 +00:00
Quentin McGaw
c7ab5bd34c
feat(dns): DNS_REBINDING_PROTECTION_EXEMPT_HOSTNAMES option
2025-11-14 16:14:46 +00:00
Quentin McGaw
843bf08aa1
chore(deps): bump dns to https://github.com/qdm12/dns/commit/248acd28339f329b0f51c7da987f8f7c72e59e45
2025-11-14 16:14:46 +00:00
Quentin McGaw
5b25cc95a9
chore(docker): clear DNS_BLOCK_IP_PREFIXES values since DNS rebinding protection is built-in the filter middleware
2025-11-14 16:14:46 +00:00
dependabot[bot]
0fddbc54a2
Chore(deps): Bump github.com/cloudflare/circl from 1.6.0 to 1.6.1 ( #2977 )
2025-11-13 23:27:51 +01:00
dependabot[bot]
11fcfb7d19
Chore(deps): Bump golang.org/x/net from 0.46.0 to 0.47.0 ( #2976 )
2025-11-13 23:27:10 +01:00
dependabot[bot]
3cd7d7edcb
Chore(deps): Bump golang.org/x/text from 0.30.0 to 0.31.0 ( #2975 )
2025-11-13 23:26:55 +01:00
Quentin McGaw
30609b6fe9
hotfix(configuration/settings): fix requirement for proton username and password
2025-11-13 21:58:46 +00:00
Quentin McGaw
8a0921748b
fix(protonvpn): authenticated servers data updating ( #2878 )
...
- `-proton-username` flag for cli update
- `-proton-password` flag for cli update
- `UPDATER_PROTONVPN_USERNAME` option for periodic updates
- `UPDATER_PROTONVPN_PASSWORD` option for periodic updates
2025-11-13 20:05:26 +01:00
Quentin McGaw
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)
2025-11-13 18:24:41 +00:00
Quentin McGaw
f11f142bee
feat(settings/wireguard): precise WIREGUARD_ENDPOINT_IP must be an IP address for now
2025-11-13 18:24:41 +00:00
dependabot[bot]
596faef8f2
Chore(deps): Bump golang.org/x/sys from 0.37.0 to 0.38.0 ( #2973 )
2025-11-13 16:47:26 +01:00
Quentin McGaw
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
2025-11-13 14:50:36 +00:00
Quentin McGaw
46ad576233
fix(server/log): log out full URL path not just bottom request URI
2025-11-13 14:29:58 +00:00
Quentin McGaw
46beaac34b
hotfix(server/auth): add old route /openvpn/portforwarded as valid
2025-11-13 14:21:50 +00:00
Quentin McGaw
3025476e8b
chore(portforward): remove double log when clearing port forward file
2025-11-13 14:10:13 +00:00
Quentin McGaw
cd6f9493a4
docs(Dockerfile): specify default PUID and PGID to avoid confusion
...
- Both of these already defaulted to 1000 in the Go code
2025-11-13 13:06:21 +00:00
Quentin McGaw
9984ad22d7
chore(settings/health): remove unneeded health fields
2025-11-13 12:27:33 +00:00
Quentin McGaw
3565ba67c4
hotfix(healthcheck/dns): use dns address tring with port
2025-11-12 01:45:10 +00:00
Quentin McGaw
ffb0bec4da
chore(vpn): rename openvpn* to vpn* variables
2025-11-07 15:26:24 +00:00
Quentin McGaw
4d2b8787e0
chore(dns): replace UNBLOCK with DNS_UNBLOCK_HOSTNAMES
2025-11-07 14:36:10 +00:00
Quentin McGaw
d4831ad4a6
chore(dns): replace DOT_PRIVATE_ADDRESS with DNS_BLOCK_IPS and DNS_BLOCK_IP_PREFIXES
2025-11-07 14:31:09 +00:00
Quentin McGaw
9e1b53a732
feat(server): log number of roles read from auth file
2025-11-05 23:05:10 +00:00
Quentin McGaw
d0113849d6
feat(dns): support doh upstream type
2025-11-05 21:21:16 +00:00
Quentin McGaw
7b25fdfee8
chore(deps): bump dns to v2.0.0-rc9
2025-11-05 20:56:37 +00:00
Quentin McGaw
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`
2025-11-05 20:47:21 +00:00
Quentin McGaw
7dbd14df27
chore(dns): merge DoT settings with DNS settings
2025-11-05 20:47:21 +00:00
dependabot[bot]
96d8b53338
Chore(deps): Bump github.com/breml/rootcerts from 0.3.2 to 0.3.3 ( #2964 )
2025-11-04 20:34:22 -05:00
Quentin McGaw
2bd19640d9
feat(health/dns): try another DNS server if one fails
2025-11-04 15:51:04 +00:00
Quentin McGaw
1047508bd7
docs(github): update provider issue template
2025-11-04 15:07:16 +00:00
Quentin McGaw
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
2025-11-04 14:47:24 +00:00
Quentin McGaw
43da9ddbb3
fix(cyberghost): log warnings from updater resolver
2025-11-04 14:43:02 +00:00
Quentin McGaw
7fbc5c3c07
feat(cyberghost): update servers data
2025-11-04 14:43:02 +00:00
dependabot[bot]
e03f545e07
Chore(deps): Bump github.com/stretchr/testify from 1.10.0 to 1.11.1 ( #2959 )
2025-11-04 15:33:12 +01:00
dependabot[bot]
942f1f2c0f
Chore(deps): Bump github.com/pelletier/go-toml/v2 from 2.2.3 to 2.2.4 ( #2958 )
2025-11-04 15:33:00 +01:00
dependabot[bot]
baf566d7a5
Chore(deps): Bump github.com/klauspost/compress from 1.17.11 to 1.18.1 ( #2957 )
2025-11-04 15:32:46 +01:00
Quentin McGaw
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!
2025-11-04 14:16:11 +00:00
Quentin McGaw
2e2e5f9df5
fix(firewall): parse "all" protocol from iptables chains
2025-11-03 16:09:24 +00:00
Quentin McGaw
35e9b2365d
fix(ci): consider 429 as valid status code for markdown links
2025-11-03 16:00:42 +00:00
Quentin McGaw
b0b769d2c1
ci(markdown): fix config file path
2025-10-31 20:02:55 +00:00
Quentin McGaw
d3c7d3c7bc
docs(readme): update Alpine version and image size
2025-10-30 16:15:44 +00:00
Quentin McGaw
65f49ea012
fix(wireguard): specify IP family for new route ( #2629 )
2025-10-30 17:14:45 +01:00
Quentin McGaw
5687555921
chore(container): bump Alpine from 3.20 to 3.22
2025-10-30 16:08:40 +00:00
Quentin McGaw
0fb75036a0
chore(build): bump Go from 1.24 to 1.25
2025-10-30 16:04:10 +00:00
dependabot[bot]
2b513dd43d
Chore(deps): Bump github.com/vishvananda/netlink from 1.2.1 to 1.3.1 ( #2932 )
2025-10-30 17:02:32 +01:00
Quentin McGaw
687d9b4736
hotfix(tests): fix unit test for healthcheck
2025-10-30 16:01:25 +00:00
dependabot[bot]
c70c2ef932
Chore(deps): Bump golang.org/x/net from 0.34.0 to 0.46.0 ( #2937 )
2025-10-30 17:00:30 +01:00
dependabot[bot]
af3ada109b
Chore(deps): Bump actions/setup-go from 5 to 6 ( #2929 )
2025-10-30 17:00:15 +01:00
Quentin McGaw
9d40564734
chore(deps): bump breml/rootcerts from v0.2.20 to v0.3.2
2025-10-30 15:59:20 +00:00
Quentin McGaw
3734815ada
hotfix(health): debug log failed attempts and warn log all attempt errors if all failed
...
- Reduce "worrying" noise of icmp attempt failing
- Only log when an action (restart the VPN) is taken
2025-10-30 15:57:40 +00:00
Quentin McGaw
b9cc5c1fdc
fix(port-forward): clear port file instead of removing it
...
- Prevent port forwarding loop crash when trying to delete a directly bind mounted file
- See https://github.com/qdm12/gluetun/issues/2942#issuecomment-3468510402
2025-10-30 15:45:01 +00:00
dependabot[bot]
c646ca5766
Chore(deps): Bump peter-evans/create-or-update-comment from 4 to 5 ( #2931 )
2025-10-30 03:45:31 +01:00
dependabot[bot]
1394be5143
Chore(deps): Bump golang.org/x/sys from 0.29.0 to 0.37.0 ( #2939 )
2025-10-30 03:45:16 +01:00
Quentin McGaw
93442526f8
chore(ci): run container and wait for it to connect ( #2956 )
...
- Added safety to prevent panics/errors when skipping CI checks (shame on me, sometimes)
- Opens new possibilities for end to end integration tests. PRs accepted!
2025-10-30 03:44:31 +01:00
dependabot[bot]
d85402050b
Chore(deps): Bump github.com/ulikunitz/xz from 0.5.11 to 0.5.15 ( #2955 )
2025-10-30 01:57:18 +01:00
dependabot[bot]
b1c62cb525
Chore(deps): Bump golang.org/x/text from 0.21.0 to 0.30.0 ( #2938 )
2025-10-30 01:56:53 +01:00
dependabot[bot]
fae64a297a
Chore(deps): Bump github/codeql-action from 3 to 4 ( #2935 )
2025-10-30 01:56:41 +01:00
Quentin McGaw
6e2682a9ce
docs(readme): remove no longer valid LoC badge
2025-10-30 00:55:39 +00:00
Quentin McGaw
555049f09c
feat(privado): update servers data
2025-10-29 12:30:48 +00:00
Quentin McGaw
712f7c3d35
chore(build): bump Go from 1.23 to 1.24
2025-10-29 02:34:22 +00:00
Quentin McGaw
7a51c211cd
fix(publicip): respect PUBLICIP_ENABLED
2025-10-23 19:49:21 +00:00
Quentin McGaw
c48189c1c4
feat(health/icmp): log out return address on errors
2025-10-23 19:22:31 +00:00
Quentin McGaw
9803fa1cfd
hotfix(health): info log on healthcheck passing after failure
2025-10-23 18:58:19 +00:00
Quentin McGaw
cf756f561a
feat(health): info log when healthcheck passes after failure for the case of HEALTH_VPN_RESTART=off
2025-10-21 18:42:33 +00:00
Quentin McGaw
a4021fedc3
feat(health): HEALTH_RESTART_VPN option
...
- You should really leave it to `on` ⚠️
- Turn it to `off` if you have trust issues with the healthcheck. Don't then report issues if the connection is dead though.
2025-10-21 15:36:15 +00:00
Quentin McGaw
31a36a9250
hotfix(health): increase timeout values and periods
...
- run small check every 60s, from 15s
- small check (icmp/dns) initial timeout from 3s to 10s
- small check (icmp/dns) timeout increase from 1s to 10s
- full check initial timeout increased from 10s to 20s
- full check extra timeout increase from 3s to 10s
2025-10-19 23:27:02 +00:00
Quentin McGaw
36fe349b70
chore(ci): ignore .github/pull_request_template.md with markdown linter
2025-10-19 23:23:41 +00:00
shwoop
3ef1cfd97c
docs(github): add pull request template ( #2918 )
2025-10-17 20:34:05 +02:00
Quentin McGaw
669feb45f1
hotfix(healthcheck): correct error string for DNS plain lookup fallback
2025-10-17 18:08:24 +00:00
Quentin McGaw
85890520ab
feat(healthcheck): combination of ICMP and TCP+TLS checks ( #2923 )
...
- New option: `HEALTH_ICMP_TARGET_IP` defaults to `0.0.0.0` meaning use the VPN server public IP address.
- Options removed: `HEALTH_VPN_INITIAL_DURATION` and `HEALTH_VPN_ADDITIONAL_DURATION` - times and retries are handpicked and hardcoded.
- Less aggressive checks and less false positive detection
2025-10-17 01:45:50 +02:00
dependabot[bot]
340016521e
Chore(deps): Bump github.com/breml/rootcerts from 0.2.19 to 0.2.20 ( #2683 )
2025-10-06 13:36:00 +02:00
Matthew Bennett
ef523df42c
feat(expressvpn): update hardcoded servers data ( #2888 )
2025-10-06 13:33:36 +02:00
Quentin McGaw
5306e3bab1
feat(mullvad): update servers data
2025-10-03 15:25:12 +00:00
Vahin M
72a49afd2b
docs(healthcheck): fix grammar issue in log ( #2773 )
2025-09-26 18:58:08 +02:00
Quentin McGaw
9b8edbb81e
hotfix(vpnunlimited): fix formatting of certificates
2025-09-24 12:55:45 +00:00
Quentin McGaw
a1554feb3f
chore(dev): add vscode git remote add task
2025-09-24 12:54:16 +00:00
Quentin McGaw
490410bf09
chore(dev): convert .vscode/launch.json to tasks.json
2025-09-24 12:54:16 +00:00
mutschler
8c113f5268
fix(vpnunlimited): update certificate values ( #2835 )
2025-09-11 21:15:20 +02:00
shwoop
075cbd5a0f
chore(ci): bump github actions and use go.mod Go version ( #2880 )
...
- actions/checkout from v4 to v5
- actions/setup-go uses go-version from go.mod file
- DavidAnson/markdownlint-cli2-action from v19 to v20
2025-09-11 21:14:19 +02:00
Quentin McGaw
d82df2b431
hotfix(build): bump xcputranslate so it's available on ghcr.io
...
- v0.7.0 is a broken build
- v0.9.0 is the version available on ghcr.io
2025-08-16 20:34:07 +00:00
Quentin McGaw
a09f8214d9
hotfix(build): bump xcputranslate so it's available on ghcr.io
2025-08-16 20:29:40 +00:00
Quentin McGaw
396e9c003e
chore(ci): pull container images at build time from ghcr.io when possible
...
- Reduce silly image pull rate limiting from docker hub registry
- still rely on docker hub registry to pull golang and alpine images since these are not on ghcr.io
2025-08-16 20:12:21 +00:00
Quentin McGaw
b0c4a28be6
chore(lint): upgrade linter to v2.4.0
...
- migrate configuration file
- fix existing code issues
- add exclusion rules
- update linter names
2025-08-16 20:10:19 +00:00
Quentin McGaw
85325e4a31
chore(dev): upgrade dev container to v0.21
...
See [release notes](https://github.com/qdm12/godevcontainer/releases/tag/v0.21.0 )
Notably:
- Go upgraded from 1.23 to 1.25
- golangci-lint upgraded to v2.4.0
- Alpine upgraded from 3.20 to 3.22
- Disable package comment requirement by gopls' staticcheck
- Pull container image from ghcr.io
2025-08-16 20:10:14 +00:00
dependabot[bot]
9933dd3ec5
Chore(deps): Bump DavidAnson/markdownlint-cli2-action from 18 to 19 ( #2632 )
2025-01-22 09:27:10 +01:00
dependabot[bot]
13532c8b4b
Chore(deps): Bump golang.org/x/net from 0.31.0 to 0.34.0 ( #2648 )
2025-01-22 09:26:57 +01:00
Leroy
3926797295
docs(readme): remove docker-compose example version field ( #2663 )
2025-01-22 09:26:39 +01:00
K1
febd3f784f
docs(readme): "swiss-knife-like" -> "swiss-army-knife-like" ( #2652 )
2025-01-22 09:25:46 +01:00
dependabot[bot]
61b053f0e1
Chore(deps): Bump golang.org/x/crypto from 0.29.0 to 0.31.0 ( #2619 )
2024-12-27 21:15:31 +01:00
Quentin McGaw
8dae352ccc
fix(cli): fix openvpnconfig command panic due to missing SetDefaults call
2024-12-27 09:31:04 +00:00
Quentin McGaw
e890c50da6
feat(firewall): support icmp rules
2024-12-25 20:05:55 +00:00
Quentin McGaw
ddd9f4d021
chore(natpmp): fix determinism for test Test_Client_ExternalAddress
2024-12-14 21:04:07 +00:00
dependabot[bot]
7e58b4baee
Chore(deps): Bump github.com/stretchr/testify from 1.9.0 to 1.10.0 ( #2600 )
2024-12-14 21:19:30 +01:00
dependabot[bot]
a21fbb9a4f
Chore(deps): Bump github.com/breml/rootcerts from 0.2.18 to 0.2.19 ( #2601 )
2024-12-14 21:19:11 +01:00
Quentin McGaw
3b7d27c919
hotfix(ci): use --device /dev/net/tun for test container
2024-12-14 20:15:42 +00:00
dependabot[bot]
68ddbfc0fe
Chore(deps): Bump golang.org/x/net from 0.30.0 to 0.31.0 ( #2578 )
2024-11-18 10:46:04 +01:00
dependabot[bot]
a2047cb800
Chore(deps): Bump DavidAnson/markdownlint-cli2-action from 16 to 18 ( #2588 )
2024-11-18 10:45:49 +01:00
Quentin McGaw
fdd499146c
fix(wireguard): point to Kubernetes wiki page when encountering IP rule add file exists error ( #2526 )
2024-11-15 18:47:06 +01:00
Quentin McGaw
37900341cf
hotfix(firewall): fix unit test for previous PR
2024-11-15 17:46:10 +00:00
Jean-François Roy
36bb368cad
fix(firewall): iptables list uses -n flag for testing iptables path ( #2574 )
...
Signed-off-by: Jean-Francois Roy <jf@devklog.net >
2024-11-15 16:47:08 +01:00
Quentin McGaw
f9bdb219d0
chore(deps): update gosettings to v0.4.4
...
- Better support for quote expressions especially for commands such as VPN_PORT_FORWARDING_UP_COMMAND
2024-11-12 09:11:48 +00:00
Quentin McGaw
0374c14e42
feat(portforwarding): VPN_PORT_FORWARDING_DOWN_COMMAND option
2024-11-10 10:18:29 +00:00
Alex Lavallee
a035a151bd
feat(portforwarding): allow running script upon port forwarding success ( #2399 )
2024-11-10 09:49:02 +01:00
Quentin McGaw
e69966381d
feat(fastestvpn): add aes-256-gcm to ciphers list
2024-11-09 15:44:05 +00:00
Quentin McGaw
94dfb2b1f2
fix(ipvanish): fix openvpn configuration
...
- update CA value
- add `comp-lzo` option
2024-11-09 15:43:51 +00:00
Quentin McGaw
92011205be
feat(publicip): support custom API url echoip#https://... ( #2529 )
2024-11-08 17:37:08 +01:00
dependabot[bot]
c9707646bd
Chore(deps): Bump golang.org/x/sys from 0.26.0 to 0.27.0 ( #2573 )
2024-11-08 17:33:30 +01:00
dependabot[bot]
c50705736b
Chore(deps): Bump github.com/pelletier/go-toml/v2 from 2.2.2 to 2.2.3 ( #2549 )
2024-11-08 17:33:18 +01:00
dependabot[bot]
ec284c17f4
Chore(deps): Bump github.com/klauspost/compress from 1.17.9 to 1.17.11 ( #2550 )
2024-11-07 12:28:04 -08:00
Quentin McGaw
ad6c52dc4c
feat(ipvanish): update servers data
2024-11-07 20:21:12 +00:00
Quentin McGaw
5f182febae
fix(ipvanish): update openvpn zip file url for updater
2024-11-07 20:21:10 +00:00
Quentin McGaw
86d82c1098
chore(main): let system handle OS signals after first one to stop program
2024-11-07 20:19:24 +00:00
Quentin McGaw
842b9004da
chore(routing): remove redundant rule ip rule in error messages
2024-11-07 20:19:24 +00:00
Quentin McGaw
6ac7ca4f0f
feat(healthcheck): log out last error when auto healing VPN
2024-11-05 13:35:58 +00:00
Quentin McGaw
ddfcbe1bee
feat(healthcheck): run TLS handshake after TCP dial if address has 443 port
2024-11-05 13:35:58 +00:00
Quentin McGaw
88fd9388e4
chore(lint): remove canonicalheader since it's not reliable
2024-11-05 13:35:58 +00:00
Quentin McGaw
69aafa53c9
fix(server/auth): fix wiki link to authentication section
2024-11-05 13:35:58 +00:00
Quentin McGaw
3473fe9c15
fix(openvpn): set default mssfix to 1320 for all providers with no default
...
- Partially address #2533
2024-11-05 13:35:54 +00:00
Quentin McGaw
c655500045
fix(wireguard): change default WIREGUARD_MTU from 1400 to 1320
...
- Partially address #2533
2024-11-05 09:57:03 +00:00
Quentin McGaw
96a8015af6
feat(netlink): debug rule logs contain the ip family
2024-11-03 20:14:41 +00:00
Quentin McGaw
ddd3876f92
chore(dns): upgrade dependency from v2.0.0-rc7 to v2.0.0-rc8
...
- do not log dial error twice
- DNS subserver shuts down without waiting for connections to finish (UDP server would hang sometimes)
- DNS over TLS dialer uses tls.Dialer instead of wrapping connection with tls.Client
- connection type is just `tls` instead of `dns over tls` to reduce repetition in logs
- exchange errors contain the request question in their context
2024-11-03 12:35:01 +00:00
Quentin McGaw
f1f34722ee
feat(tun): mention in 'operation not permitted' error the user should specify --device /dev/net/tun
2024-10-28 09:22:08 +00:00
Quentin McGaw
937c667ca8
hotfix(perfectprivacy): fix formatting from previous commit
2024-10-27 17:20:30 +00:00
Christoph Kehl
3c45f57aaa
fix(perfectprivacy): update openvpn expired certificates ( #2542 )
2024-10-27 11:45:25 +01:00
Quentin McGaw
30640eefe2
chore(deps): upgrade dns to v2.0.0-cr7
2024-10-25 14:01:29 +00:00
Quentin McGaw
8567522594
chore(dev): pin godevcontainer image to tag v0.20-alpine
2024-10-20 16:18:52 +00:00
Quentin McGaw
bd8214e648
docs(dev): minor fixes to devcontainer readme
2024-10-20 12:57:58 +00:00
Quentin McGaw
a61302f135
feat(publicip): resilient public ip fetcher ( #2518 )
...
- `PUBLICIP_API` accepts a comma separated list of ip data sources, where the first one is the base default one, and sources after it are backup sources used if we are rate limited.
- `PUBLICIP_API` defaults to `ipinfo,ifconfigco,ip2location,cloudflare` such that it now has `ifconfigco,ip2location,cloudflare` as backup ip data sources.
- `PUBLICIP_API_TOKEN` accepts a comma separated list of ip data source tokens, each corresponding by position to the APIs listed in `PUBLICIP_API`.
- logs ip data source when logging public ip information
- assume a rate limiting error is for 30 days (no persistence)
- ready for future live settings updates
- consider an ip data source no longer banned if the token changes
- keeps track of ban times when updating the list of fetchers
2024-10-19 15:21:14 +02:00
Quentin McGaw
3dfb43e117
chore(netlink): debug log ip rule commands in netlink instead of routing package
2024-10-19 12:43:26 +00:00
Quentin McGaw
2388e0550b
hotfix(publicip): return an error if trying to use cloudflare as ip provider for updating servers data
2024-10-11 21:57:25 +00:00
Quentin McGaw
a7d70dd9a3
fix(publicip): lock settings during entire update
...
- to prevent race conditions when data is cleared when vpn goes down
2024-10-11 21:24:18 +00:00
Quentin McGaw
76a4bb5dc3
chore: use gofumpt for code formatting
2024-10-11 19:27:29 +00:00
Quentin McGaw
3daf15a612
chore(lint): fix gopls govet errors
2024-10-11 19:14:50 +00:00
Quentin McGaw
81ffbaf057
feat(build): upgrade Go from 1.22 to 1.23
2024-10-11 18:58:10 +00:00
Quentin McGaw
abe9dcbe33
chore(lint): add new linters and update codebase
...
- add canonicalheader
- add copyloopvar
- add fatcontext
- add intrange
2024-10-11 18:28:00 +00:00
Quentin McGaw
3c8e80a1a4
chore(lint): upgrade linter from v1.56.2 to v1.61.0
...
- Remove no longer needed exclude rules
- Add new exclude rules for printf govet errors
- Remove deprecated linters `execinquery` and `exportloopref`
- Rename linter `goerr113` to `err113`
- Rename linter `gomnd` to `mnd`
2024-10-11 18:05:54 +00:00
Quentin McGaw
694988b32f
chore(devcontainer): drop requirement for docker-compose and use devcontainer.json settings directly
2024-10-10 08:34:56 +00:00
Quentin McGaw
ea31886299
docs(devcontainer): update readme
...
- remove Windows without WSL step
- update 'remote containers extension' to 'dev containers extension'
- remove invalid warning on directories creation
- simplify customizations section
- remove "publish a port" since it can be done at runtime now
- remove "run other services" since it's rather unneeded in this case
- expand documentation on custom welcome script and where to specify the bind mount
- use bullet points instead of subsections headings
2024-10-10 08:33:33 +00:00
Quentin McGaw
5b2923ca65
feat(publicip): add ifconfigco option
2024-10-08 19:03:10 +00:00
Quentin McGaw
432eaa6c04
feat(vpn): run WaitForDNS before querying the public ip address
...
- Fix #2325 better
2024-10-08 11:30:35 +00:00
Quentin McGaw
5fd0af9395
feat(publicip): retry fetching information when connection refused error is encountered
...
- Fix #2325
2024-10-08 11:30:35 +00:00
Quentin McGaw
03deb9aed0
feat(publicip): PUBLICIP_ENABLED replaces PUBLICIP_PERIOD
...
- No point periodically fetch the public IP address. Could not find anything mentioning why this was added.
- Simplification of the publicip loop code
- `PUBLICIP_ENABLED` (on, off) can be set to enable or not public ip data fetching on VPN connection
- `PUBLICIP_PERIOD=0` still works to indicate to disable public ip fetching
- `PUBLICIP_PERIOD` != 0 means to enable public ip fetching
- Warnings logged when using `PUBLICIP_PERIOD`
2024-10-08 11:30:31 +00:00
Jeremy Lin
cbdd1a933c
feat(publicip): cloudflare API support ( #2502 )
2024-10-06 15:30:33 +02:00
Quentin McGaw
99e9bc87cf
fix(firewall): deduplicate VPN address accept rule for multiple default routes with the same network interface
2024-10-06 09:48:07 +00:00
Quentin McGaw
9ef14ee070
fix(firewall): deduplicate ipv6 multicast output accept rules
2024-10-06 09:46:47 +00:00
Quentin McGaw
7842ff4cdc
fix(firewall): ipv6 multicast output address value
2024-10-06 09:28:39 +00:00
Quentin McGaw
3d6d03b327
fix(firewall): log warning if ipv6 nat filter not supported instead of returning an error
...
- Allow to port forward redirect for IPv4 and not IPv6 if IPv6 NAT is not supported
- Fix #2503
2024-10-05 07:52:30 +00:00
Quentin McGaw
7ebbaf4351
docs(Dockerfile): add OPENVPN_MSSFIX environment variable
2024-09-29 18:01:20 +00:00
Quentin McGaw
c665b13cec
fix(settings): prevent using FREE_ONLY and PORT_FORWARD_ONLY together with protonvpn (see #2470 )
2024-09-28 17:51:47 +00:00
Quentin McGaw
970b21a6eb
docs(Dockerfile): add missing option definitions
...
- `STREAM_ONLY`
- `FREE_ONLY`
- Document `PORT_FORWARD_ONLY` is for both PIA and ProtonVPN
2024-09-28 17:49:03 +00:00
Quentin McGaw
62747f1eb8
fix(storage): add missing selection fields to build noServerFoundError
...
- `STREAM_ONLY`, `PORT_FORWARD_ONLY`, `SECURE_CORE_ONLY`, `TOR_ONLY` and target ip options affected
- Refers to issue #2470
2024-09-28 17:47:56 +00:00
Quentin McGaw
a2e76e1683
feat(server): role based authentication system ( #2434 )
...
- Parse toml configuration file, see https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md#authentication
- Retro-compatible with existing AND documented routes, until after v3.41 release
- Log a warning if an unprotected-by-default route is accessed unprotected
- Authentication methods: none, apikey, basic
- `genkey` command to generate API keys
Co-authored-by: Joe Jose <45399349+joejose97@users.noreply.github.com >
2024-09-18 13:29:36 +02:00
Quentin McGaw
07651683f9
feat(providers): add giganews support ( #2479 )
2024-09-18 13:01:37 +02:00
Quentin McGaw
429aea8e0f
docs(github): change and add labels
...
- change "config problem" to "user error"
- add "performance" category
- add "investigation" category
2024-08-25 07:06:33 +00:00
Quentin McGaw
01fa9934bc
hotfix(routing): detect vpn local gateway with new routes listing
2024-08-25 07:01:33 +00:00
Quentin McGaw
ff7cadb43b
chore(server): move log middleware to internal/server/middlewares/log
2024-08-23 13:46:52 +00:00
Quentin McGaw
540acc915d
chore(deps): upgrade vishvananda/netlink from v1.2.1-beta.2 to v1.2.1
2024-08-23 13:46:09 +00:00
dependabot[bot]
703a546c1d
Chore(deps): Bump google.golang.org/protobuf from 1.30.0 to 1.33.0 ( #2428 )
2024-08-22 17:24:39 +02:00
Quentin McGaw
4851bd70da
chore(deps): remove qdm12/golibs dependency
...
- Implement friendly duration formatting locally
2024-08-21 13:27:30 +00:00
Quentin McGaw
a2b3d7e30c
chore(deps): implement github.com/qdm12/golibs/command locally ( #2418 )
2024-08-21 15:21:31 +02:00
Quentin McGaw
4d60b71583
feat(dns): replace unbound with qdm12/dns@v2.0.0-beta-rc6 ( #1742 )
...
- Faster start up
- Clearer error messages
- Allow for more Gluetun-specific customization
- DNSSEC validation is dropped for now (it's sort of unneeded)
- Fix #137
2024-08-21 14:35:41 +02:00
Quentin McGaw
3f130931d2
hotfix(firewall): fix ip prefix parsing for ipv6 (again)
2024-08-19 17:06:45 +00:00
Quentin McGaw
946f055fed
hotfix(firewall): handle iptables CIDR ranges with 3 digits for IPv6
2024-08-19 14:02:53 +00:00
Quentin McGaw
eaece0cb8e
fix(ivpn): split city into city and region
...
- Fix bad city values containing a comma
- update ivpn servers data
2024-08-19 03:10:53 +00:00
Quentin McGaw
4203f4fabf
fix(nordvpn): remove commas from region values
2024-08-19 03:08:14 +00:00
Quentin McGaw
c39edb6378
fix(pia): support port forwarding using Wireguard ( #2420 )
...
- Build API IP address using the first 2 bytes of the gateway IP and adding `128.1` to it
- API IP address is valid for both OpenVPN and Wireguard
- Fix #2320
2024-08-19 03:19:16 +02:00
Quentin McGaw
b3cc2781ff
hotfix(config): fix missing test lines for previous commit
2024-08-19 01:00:30 +00:00
Jean-François Roy
12c411e203
feat(storage): STORAGE_FILEPATH option ( #2416 )
...
- `STORAGE_FILEPATH=` disables storing to and reading from a local servers.json file
- `STORAGE_FILEPATH` defaults to `/gluetun/servers.json`
- Fix #2074
2024-08-19 02:26:46 +02:00
Quentin McGaw
3bf937d705
feat(privado): update servers data
2024-08-18 23:29:10 +00:00
Quentin McGaw
bc55c25e73
fix(firewall): delete chain rules by line number ( #2411 )
...
- Fix #2334
- Parsing of iptables chains, contributing to progress for #1856
2024-08-17 20:12:22 +02:00
Quentin McGaw
897a9d7f57
feat(config): allow invalid server filters ( #2419 )
...
- Disallow setting a server filter when there is no choice available
- Allow setting an invalid server filter when there is at least one choice available
- Log at warn level when an invalid server filter is set
- Fix #2337
2024-08-17 12:01:26 +02:00
Quentin McGaw
4a128677dd
chore(github): add 2 labels
...
- servers storage category
- nearly resolved status
2024-08-17 10:00:23 +00:00
Quentin McGaw
9233f3f5ba
feat(pia/updater): use v6 API to get servers data
2024-08-16 12:40:22 +00:00
Quentin McGaw
11c2354408
feat(privatevpn): native port forwarding support ( #2285 )
2024-08-16 14:20:00 +02:00
Quentin McGaw
1f2882434a
feat(format-servers): add json format option
2024-08-16 10:14:06 +00:00
dependabot[bot]
01aaf2c86a
Chore(deps): Bump golang.org/x/net from 0.25.0 to 0.28.0 ( #2401 )
2024-08-09 11:35:01 +02:00
dependabot[bot]
d260ac7a49
Chore(deps): Bump golang.org/x/text from 0.15.0 to 0.17.0 ( #2400 )
2024-08-09 11:34:47 +02:00
dependabot[bot]
0bea0d4ecd
Chore(deps): Bump docker/build-push-action from 5 to 6 ( #2324 )
2024-08-09 11:34:19 +02:00
dependabot[bot]
59994bd6e7
Chore(deps): Bump github.com/klauspost/compress from 1.17.8 to 1.17.9 ( #2319 )
2024-08-09 11:34:02 +02:00
dependabot[bot]
62799d2449
Chore(deps): Bump golang.org/x/sys from 0.20.0 to 0.24.0 ( #2404 )
2024-08-09 11:33:22 +02:00
Quentin McGaw
09c47c740c
fix(version): log last release by tag name alphabetically instead of date
2024-08-09 07:43:48 +00:00
dependabot[bot]
ecbfc02713
Chore(deps): Bump github.com/breml/rootcerts from 0.2.16 to 0.2.17 ( #2316 )
2024-08-09 09:07:35 +02:00
Quentin McGaw
7be9288685
fix(privatevpn): set openvpn vpn type for no hostname server
2024-08-09 06:24:06 +00:00
Quentin McGaw
d1f57d0e36
chore(deps): bump gosplash to v0.2.0
...
- Merge same links in the same line
- Add `/choose` suffix to github links
2024-08-05 17:46:31 +00:00
Quentin McGaw
74ea1a0f5a
hotfix(firewall): prefer ip6tables (nft) instead of ip6tables-legacy
2024-08-05 14:01:27 +00:00
Quentin McGaw
2a9ab29e7d
fix(firewall): VPN_PORT_FORWARDING_LISTENING_PORT behavior fixed again
...
- allow redirection destination port in INPUT table
2024-08-05 13:57:30 +00:00
Quentin McGaw
8be78a5741
chore(github): add /choose suffix to issue and discussion links
2024-08-05 13:39:32 +00:00
Quentin McGaw
4a669c3458
chore(dev): upgrade organizeImports vscode setting from true to explicit
2024-08-05 13:39:01 +00:00
Quentin McGaw
ae5b71a864
chore(lint): remove now invalid skip-dirs configuration block
2024-08-05 13:38:32 +00:00
Quentin McGaw
6fff2ce1a4
chore(deps): tidy Go modules dependencies
2024-08-05 13:38:15 +00:00
Quentin McGaw
f6165d206a
fix(firewall): VPN_PORT_FORWARDING_LISTENING_PORT behavior fixed
...
by not restricting the destination address to 127.0.0.1
2024-08-05 13:37:49 +00:00
Quentin McGaw
8dbe7b8888
hotfix(readme): add perfect privacy as port forwarding natively supported
2024-08-04 09:00:06 +00:00
Quentin McGaw
10f43d7a70
chore(github): add before next release github label
2024-08-04 08:35:57 +00:00
Quentin McGaw
01283def17
fix(format-servers): add missing vpn type column for natively supported providers
...
- nordvpn
- surfshark
2024-08-04 08:33:24 +00:00
Quentin McGaw
b32e085354
docs(readme): update list of providers supporting Wireguard with the custom provider
2024-08-03 14:32:41 +00:00
Quentin McGaw
ac9446e296
feat(protonvpn): Wireguard support ( #2390 )
2024-08-03 16:10:35 +02:00
Quentin McGaw
dea4080a7b
fix(custom-openvpn): remove comments before parsing file
2024-08-03 13:37:57 +00:00
Quentin McGaw
2e63dba817
docs(readme): add protonvpn as custom port forwarding implementation
2024-08-03 09:54:14 +00:00
Quentin McGaw
10384c9e37
chore(github): add labels "Custom" and "Category: logs"
2024-08-01 12:20:55 +00:00
Quentin McGaw
34e8f5f3a9
hotfix(custom): assume all custom servers support port forwarding
...
- Fix custom wireguard with the protonvpn port forwarding implementation
- Might fix #2389
2024-08-01 11:52:38 +00:00
Quentin McGaw
ceb6ff4ca4
hotfix(protonvpn): fix free detection and update p2p->port_forward
2024-07-31 21:04:05 +00:00
Quentin McGaw
4c3da54303
chore(example/updater): simplify update code for openvpn+wireguard servers
2024-07-31 16:08:49 +00:00
Quentin McGaw
5d75bbc869
feat(config): only use port forwarding servers when port forwarding is enabled for ProtonVPN and PIA
2024-07-31 14:49:33 +00:00
Quentin McGaw
72e227f87d
fix(config): log out if port forwarding only servers is enabled
2024-07-31 14:44:19 +00:00
Quentin McGaw
c5c37e7f96
hotfix(protonvpn): port forward only option
...
- Allow to use with Protonvpn (not just PIA)
- Update code comments
- Check server supports port forwarding when invoking port forward code
2024-07-31 14:43:59 +00:00
Quentin McGaw
aaf3019d8c
hotfix(protonvpn): add markdown headers for servers
2024-07-31 14:33:24 +00:00
Quentin McGaw
5191f3558f
hotfix(protonvpn): drop P2P_ONLY in favor of PORT_FORWARD_ONLY
2024-07-31 14:29:31 +00:00
Quentin McGaw
13ffffb157
feat(fastestvpn): Wireguard support ( #2383 )
...
Credits to @Zerauskire for the initial investigation and @jvanderzande for an initial implementation as well as reviewing the pull request
2024-07-31 16:16:50 +02:00
Quentin McGaw
7bc2972b27
feat(perfectprivacy): port forwarding support ( #2378 )
2024-07-30 22:00:26 +02:00
Quentin McGaw
ab08a5e666
feat(fastestvpn): update servers data using API instead of zip file
...
- Add city filter
- More dynamic to servers updates on fastestvpn's end
- Update servers data
2024-07-30 14:50:32 +00:00
Quentin McGaw
8c730a6e4a
chore(port-forward): support multiple port forwarded
2024-07-29 13:55:28 +00:00
Quentin McGaw
4c47b6f142
feat(protonvpn): determine free status with tier value
2024-07-29 13:55:27 +00:00
Quentin McGaw
264480b659
hotfix(pia): remove crl verify
...
- Refers to issue #2376
2024-07-29 08:23:39 +00:00
Koen van Zuijlen
cb99f90bb5
feat(protonvpn): feature filters ( #2182 )
...
- `SECURE_CORE_ONLY`
- `TOR_ONLY`
- `P2P_ONLY`
2024-07-29 08:57:31 +02:00
Quentin McGaw
2bf2525bc5
chore(config): split server filter validation for features and subscription tier
...
- `validateSubscriptionTierFilters` function
- `validateFeatureFilters` function
- idea introduced in #2182
2024-07-29 06:18:28 +00:00
Quentin McGaw
26705f5a23
hotfix(firewall): re-add iptables-legacy for setups with nft kernel support
2024-07-29 05:43:34 +00:00
Quentin McGaw
ddbfdc9f14
feat(firewall): prefer using iptables nft instead of legacy
2024-07-28 14:29:00 +00:00
Quentin McGaw
9807d5f8f5
feat(docker): bump Alpine from 3.19 to 3.20
...
- Fix iptables and iptables-nft behavior
- Address systems not supporting iptables-legacy, see #2304
2024-07-28 12:43:33 +00:00
Quentin McGaw
921992ebc7
chore(build): do not upgrade busybox since vulnerabilities are fixed now
2024-07-28 12:41:54 +00:00
Quentin McGaw
8331ce6010
chore(github): disable blank issues
2024-07-27 11:44:23 +00:00
Quentin McGaw
36c8da7ea7
hotfix(config): split common VPN options per VPN type
...
- Split `VPN_ENDPOINT_IP` in `OPENVPN_ENDPOINT_IP` and `WIREGUARD_ENDPOINT_IP`
- Split `VPN_ENDPOINT_PORT` in `OPENVPN_ENDPOINT_PORT` and `WIREGUARD_ENDPOINT_PORT`
- Fixes bad usage of Wireguard config file endpoint for OpenVPN #2347
2024-07-27 10:42:01 +00:00
Quentin McGaw
73832d8b49
hotfix(firewall): add iptables -m flag for input port instructions
2024-07-26 11:40:12 +00:00
Quentin McGaw
a03041cfea
hotfix(config): do not log retro-compat warning when using OPENVPN_USER or OPENVPN_PASSWORD
2024-07-26 08:42:32 +00:00
Quentin McGaw
e7381b3800
chore(config): rename FIREWALL to FIREWALL_ENABLED_DISABLING_IT_SHOOTS_YOU_IN_YOUR_FOOT
2024-07-26 08:25:05 +00:00
Quentin McGaw
9d50c23532
hotfix(config): upgrade gosettings to v0.4.2
...
- Fix handling of retro-compatible keys
2024-07-12 19:54:17 +00:00
Quentin McGaw
0501743814
feat(pia): port forwarding options VPN_PORT_FORWARDING_USERNAME and VPN_PORT_FORWARDING_PASSWORD
...
- Retro-compatible with `OPENVPN_USER` + `OPENVPN_PASSWORD`
- No more reading for the OpenVPN auth file
- Allow to use PIA port forwarding with Wireguard
2024-07-09 14:44:46 +00:00
Quentin McGaw
06c9bc55d3
hotfix(firewall): prefer using ip6tables-legacy
...
- Fixes issue #2334
2024-07-08 08:57:57 +00:00
Quentin McGaw
fe05521f2b
feat(config): read wireguard config file without case sensitivity
2024-06-28 20:57:57 +00:00
Quentin McGaw
93ed87d12b
hotfix(pia): allow one value in SERVER_NAMES for the custom provider
2024-06-17 22:34:59 +00:00
Quentin McGaw
4218dba177
fix(publicip): abort ip data fetch if vpn context is canceled
...
- Prevents requesting the public IP address N times after N VPN failures
- Fetching runs with a context local to the 'single run'
- Single run writes single run result to a channel back to the caller, RunOnce is now blocking
2024-05-18 18:06:01 +00:00
Quentin McGaw
7872ab91dc
chore(pia): return an error to pf loop if server cannot port forward
2024-05-18 12:00:57 +00:00
dependabot[bot]
c9e75bd697
Chore(deps): Bump golang.org/x/net from 0.24.0 to 0.25.0 ( #2269 )
2024-05-18 12:10:58 +02:00
dependabot[bot]
7453f7f59a
Chore(deps): Bump github.com/fatih/color from 1.16.0 to 1.17.0 ( #2279 )
2024-05-18 12:10:49 +02:00
Quentin McGaw
19a9ac9fd7
hotfix(torguard): remove second certificate
2024-05-16 18:50:36 +00:00
Quentin McGaw
ecb06836b5
chore(deps): bump wireguard go dependencies
2024-05-10 14:38:18 +00:00
Quentin McGaw
1e25372189
fix(health): docker healthcheck has 3 retries
2024-05-10 14:31:01 +00:00
Quentin McGaw
6042a9e3c2
feat(health): change timeout mechanism
...
- Healthcheck timeout is no longer fixed to 3 seconds
- Healthcheck timeout increases from 2s to 4s, 6s, 8s, 10s
- No 1 second wait time between check retries after failure
- VPN internal restart may be delayed by a maximum of 10 seconds
2024-05-10 14:15:03 +00:00
Quentin McGaw
fd4689ee70
fix(ipv6): detect ignoring loopback route destinations
2024-05-10 14:15:03 +00:00
Quentin McGaw
4bd16373f2
fix(torguard): update OpenVPN configuration
...
- add aes-128-gcm and aes-128-cbc ciphers
- add extra CA certificate value
- remove mssfix option
- remove sndbuf and rcvbuf ption
- remove ping option
- remove reneg option
2024-05-10 14:14:42 +00:00
Quentin McGaw
ce642a6d8b
hotfix(firewall): prefer using iptables-legacy over nf_tables
...
- due to nf_tables bugs I discovered and reported
2024-05-09 14:33:34 +00:00
Quentin McGaw
ef6874fe57
fix(firewall): query iptables version for iptables found
2024-05-04 16:19:30 +00:00
Quentin McGaw
29bc60bc35
chore(github): add labels
...
- Popularity extreme and high
- Closed cannot be done
- Categories kernel and public IP service
2024-05-02 17:07:38 +00:00
Quentin McGaw
fb145d68a0
hotfix(firewall): support iptables-legacy for older kernels
2024-05-02 16:54:29 +00:00
Quentin McGaw
6dd27e53d4
chore(portforward): remove PIA dependency on storage package
2024-05-02 09:18:35 +00:00
Quentin McGaw
e0a977cf83
change(openvpn): default upgraded from 2.5 to 2.6
2024-05-02 08:13:51 +00:00
Quentin McGaw
4d002a3ad6
feat(docker): bump Alpine from 3.18 to 3.19
2024-05-02 07:43:05 +00:00
dependabot[bot]
4206859cad
Chore(deps): Bump peter-evans/dockerhub-description from 3 to 4 ( #2075 )
2024-05-02 09:25:48 +02:00
wanshuangcheng
5dacbb994f
chore(all): fix typos in code comments ( #2216 )
2024-05-02 09:24:49 +02:00
dependabot[bot]
ebf4bf9ea8
Chore(deps): Bump golang.org/x/net from 0.22.0 to 0.24.0 ( #2208 )
2024-05-02 09:20:22 +02:00
dependabot[bot]
241a9930c9
Chore(deps): Bump github.com/klauspost/compress from 1.17.7 to 1.17.8 ( #2218 )
2024-05-02 09:20:02 +02:00
Quentin McGaw
f1e8200cfc
chore(deps): tidy go modules
2024-05-02 07:02:51 +00:00
dependabot[bot]
03eddb1698
Chore(deps): Bump DavidAnson/markdownlint-cli2-action from 14 to 16 ( #2214 )
2024-05-02 08:42:17 +02:00
Quentin McGaw
b25ee21e3e
fix(custom): do not set server name if it does not exist
2024-05-01 19:35:40 +00:00
Quentin McGaw
7e0738d113
fix(vpnunlimited): allow OpenVPN TCP on port 1197
2024-04-30 08:05:22 +00:00
Quentin McGaw
0b078e5f5e
fix(vpnunlimited): change UDP port from 1194 to 1197
2024-04-30 08:04:02 +00:00
Quentin McGaw
45fe38e670
fix(custom): parse port option line for OpenVPN
2024-04-30 08:02:28 +00:00
Quentin McGaw
72e2e4b82c
fix(custom): set server name if names filter is not empty
...
- fix PIA port forwarding code usage
- refers to #2147
2024-04-29 19:23:34 +00:00
Quentin McGaw
bdc594c297
feat(airvpn): set default mssfix to 1320-28
2024-04-29 13:43:28 +00:00
Quentin McGaw
1afe01d8cd
feat(vpnsecure): update servers data
2024-04-29 09:46:48 +00:00
Quentin McGaw
234e54ac5c
chore(vpnsecure): associate "N / A" with no data for servers
2024-04-29 09:46:40 +00:00
Quentin McGaw
49b8f8b443
feat(surfshark): update servers data
2024-04-29 09:38:31 +00:00
Quentin McGaw
ce75c5ca21
fix(surfshark): remove outdated hardcoded retro servers
2024-04-29 09:37:58 +00:00
Quentin McGaw
e07966f71e
fix(tun): only create tun device if it does not exist
...
- do not create if it exists and is problematic
- wrap errors with a better context
2024-04-29 09:29:06 +00:00
Quentin McGaw
c5395adfea
hotfix(ci): skip console dead link check
2024-04-28 19:42:39 +00:00
Quentin McGaw
9d1ec69b73
chore(github): remove from_name in labels configuration
2024-04-28 19:28:04 +00:00
Quentin McGaw
ee8802ee86
docs(readme): clarify shadowsocks proxy is a server
...
- Fixes issue #2191
2024-04-28 19:27:14 +00:00
Quentin McGaw
0d7115c832
chore(github): review all labels
...
- add closed labels
- add category labels
- rename labels
- add label category prefix
- add emojis for each label
2024-04-28 19:24:46 +00:00
Quentin McGaw
08fb049f63
chore(github): remove empty label description fields
2024-04-28 13:43:35 +00:00
Quentin McGaw
c87c0e12fe
feat(wireguard): WIREGUARD_PERSISTENT_KEEPALIVE_INTERVAL option
2024-04-25 10:44:13 +00:00
Quentin McGaw
7b4befce61
hotfix(settings): openvpn encrypted key reading from file
2024-04-08 07:40:14 +00:00
Quentin McGaw
6709a248d6
hotfix(settings): HTTPPROXY_LOG reading fixed
2024-04-08 07:35:24 +00:00
Quentin McGaw
bf4cc0dabf
fix(server): /openvpn route status get and put
...
- get status return stopped if running wireguard
- put status changes vpn type if running wireguard
2024-04-08 07:28:56 +00:00
Quentin McGaw
982100782c
hotfix(config/nordvpn): do not initialize wg addresses to an empty slice
2024-04-02 14:48:40 +00:00
Quentin McGaw
4afbe9332f
hotfix(settings): trim space for each wireguard address
2024-04-01 13:04:00 +00:00
Quentin McGaw
4019ee3ea1
hotfix(settings): fix retro-compatible key message
2024-04-01 12:59:47 +00:00
Quentin McGaw
e859c60343
hotfix(config/wireguard): add /32 to address without bits specified
2024-03-29 15:06:34 +00:00
Quentin McGaw
8454123cae
fix(publicip/api): ip2location parsing for latitude and longitude
2024-03-29 14:54:45 +00:00
Quentin McGaw
6b2f350ec9
hotfix(config): update to gosettings v0.4.1
...
- fix bad reading of files and secret files
2024-03-26 07:24:45 +00:00
Quentin McGaw
e01ce9c6d8
hotfix(config): read wireguard config from /gluetun/wireguard/wg0.conf
2024-03-26 07:04:26 +00:00
Quentin McGaw
ecc80a5a9e
chore(config): upgrade to gosettings v0.4.0
...
- drop qdm12/govalid dependency
- upgrade qdm12/ss-server to v0.6.0
- do not unset sensitive config settings (makes no sense to me)
2024-03-25 19:14:20 +00:00
Quentin McGaw
23b0320cfb
chore(tun): fix unit test for unprivileged user
2024-03-25 18:44:47 +00:00
Quentin McGaw
3e79509c97
chore(build): bump Go from 1.21 to 1.22
2024-03-25 18:44:44 +00:00
Quentin McGaw
2185f347ce
chore(deps): bump github.com/stretchr/testify to v1.9.0
2024-03-25 18:29:55 +00:00
dependabot[bot]
aa3ef5a1c2
Chore(deps): Bump golang.org/x/net from 0.19.0 to 0.22.0 ( #2138 )
2024-03-25 18:29:55 +00:00
dependabot[bot]
acec050b95
Chore(deps): Bump golang.org/x/sys from 0.15.0 to 0.18.0 ( #2139 )
2024-03-25 18:29:55 +00:00
dependabot[bot]
9ca97fb04f
Chore(deps): Bump github.com/klauspost/compress from 1.17.4 to 1.17.7 ( #2178 )
2024-03-25 18:29:55 +00:00
Quentin McGaw
4776948af6
chore(dev): fix source.organizeImports vscode setting value
2024-03-25 18:29:55 +00:00
Quentin McGaw
4d9c619b24
chore(config): use openvpn protocol string field instead of TCP bool
2024-03-25 18:29:51 +00:00
Quentin McGaw
62007bf1a1
chore(config): provider name field as string instead of string pointer
2024-03-23 09:41:25 +00:00
Quentin McGaw
7674efe8d7
chore(config): remove bad retro-compatiblity for HTTP_CONTROL_SERVER_ADDRESS
...
- Retro-compatible variable key CONTROL_SERVER_ADDRESS was never defined
- Old variable key CONTROL_SERVER_PORT was removed in v3.28.0 and no complain so far
2024-03-23 09:37:54 +00:00
Adam Hebden
b3ceece779
feat(nordvpn): filter with SERVER_CATEGORIES ( #1806 )
...
- update NordVPN servers data built-in
2024-03-22 10:02:31 +01:00
Quentin McGaw
c74e4178bb
feat(nordvpn): update mechanism uses v2 API
2024-03-21 17:02:25 +00:00
Quentin McGaw
c0621bf381
chore(lint): upgrade linter to v1.56.2
2024-03-21 17:02:11 +00:00
Dennis Gaida
fb00fb16c2
feat(settings): load wireguard individual fields as secret files ( #1348 )
...
- Private key from `/run/secrets/wireguard_private_key` (path configurable with `WIREGUARD_PRIVATE_KEY_SECRETFILE`)
- Preshared key from `/run/secrets/wireguard_preshared_key` (path configurable with `WIREGUARD_PRESHARED_KEY_SECRETFILE`)
- Addresses from `/run/secrets/wireguard_addresses` (path configurable with `WIREGUARD_ADDRESSES_SECRETFILE`)
2024-03-21 10:08:41 +01:00
Quentin McGaw
6096b7ad4b
feat(config): read Wireguard config from secret
...
- defaults to `/run/secrets/wg0.conf`
- can be changed with variable `WIREGUARD_CONF_SECRETFILE`
2024-03-21 08:18:14 +00:00
Quentin McGaw
9cb4c74493
chore(ci): pin docker/build-push-action to v5
2024-03-21 07:36:56 +00:00
Quentin McGaw
e470dc8a12
chore(ci): add opened issue workflow
2024-03-21 07:33:47 +00:00
dependabot[bot]
ab49f1f733
Chore(deps): Bump github.com/breml/rootcerts from 0.2.14 to 0.2.16 ( #2094 )
2024-03-21 08:33:38 +01:00
Quentin McGaw
62158a1739
hotfix(settings): copy port forward only field
2024-03-19 15:20:04 +00:00
Quentin McGaw
3d16798544
fix(torguard): set user agent to download zip files
2024-03-18 17:46:49 +00:00
Anton Nesterov
b51aa0c6b9
feat(pia): PORT_FORWARD_ONLY variable ( #2070 )
2024-03-18 18:40:09 +01:00
Anton Nesterov
84d00b42f1
fix(config): STREAM_ONLY should set StreamOnly flag for server selection ( #2126 )
2024-03-18 16:01:00 +01:00
Quentin McGaw
e201856667
fix(ci): set issue number correctly for closed issue workflow
2024-03-07 12:33:09 +00:00
Quentin McGaw
3254fc8aa6
feat(servers): update vyprnvpn data
2024-03-07 12:29:15 +00:00
Quentin McGaw
4bca4ca932
chore(github): add closed issue workflow
2024-02-21 17:41:41 +00:00
Quentin McGaw
a20695ffb3
feat(servers): update vpn unlimited data
2024-02-21 16:58:12 +00:00
Quentin McGaw
d01cfef039
feat(servers): update pia data
2024-02-21 16:54:49 +00:00
Quentin McGaw
0eed558b10
feat(log): change unhealthy log to debug level
2024-02-21 16:44:35 +00:00
Quentin McGaw
423a5c37e0
feat(publicip): PUBLICIP_API variable supporting ipinfo and ip2location
2024-02-14 07:36:45 +00:00
Quentin McGaw
cfca026621
chore(publicip): less coupling with ipinfo.io
2024-02-14 07:30:02 +00:00
Quentin McGaw
6a6337b98f
feat(publicip/ipinfo): add PUBLICIP_API_TOKEN variable
2024-02-13 10:55:06 +00:00
Quentin McGaw
72b5afc771
fix(privado): update Zip file URL and update servers data
...
- Fix Bug: privado update url outdated #2104
2024-02-13 10:22:49 +00:00
Quentin McGaw
659bc0c9cb
fix(surfshark): remove no longer valid multi hop regions
2024-02-07 08:36:33 +00:00
Quentin McGaw
827e591174
chore(settings): clearer error message for surfshark regions
...
- only log possible 'new' server regions
- do not log old retro-compatible server regions
- maintains compatibility with older names
2024-02-06 20:39:00 +00:00
Quentin McGaw
a369745101
chore(surfshark): fail validation for empty string region
2024-02-06 20:36:30 +00:00
Quentin McGaw
586b0e17a0
chore(health): more obvious log to see the health guide and to reduce issues
2024-02-03 20:13:05 +00:00
Quentin McGaw
b5f1055682
hotfix(settings): allow public IP outbound subnets but not the unspecified address
2024-02-03 20:02:43 +00:00
Quentin McGaw
6b9c775055
feat(settings): prevent public firewall outbound subnets
2024-01-29 18:26:23 +00:00
Quentin McGaw
d8b9b2a85b
feat(natpmp): rpc error contain all failed attempt messages
2024-01-19 16:44:45 +00:00
Quentin McGaw
c826707d42
fix(vpnunlimited): specify OpenVPN cipher and auth
2024-01-01 18:21:24 +00:00
Quentin McGaw
8a17cd87c3
feat(windscribe): update servers data
2024-01-01 18:09:05 +00:00
Quentin McGaw
f8da1e79bc
fix(vpnunlimited): remove DEFAULT:@SECLEVEL=0
2023-12-22 09:39:34 +00:00
Quentin McGaw
cfc29d6a6b
feat(vpnunlimited): add second CA certificate for OpenVPN
2023-12-19 18:21:57 +00:00
Quentin McGaw
5467652b8b
chore(openvpn): support multiple CAs in generated config
2023-12-19 18:21:03 +00:00
Quentin McGaw
daa63c276d
fix(vpnunlimited): update CA certificate
2023-12-19 18:15:56 +00:00
dependabot[bot]
ab96acdc5b
Chore(deps): Bump golang.org/x/crypto from 0.16.0 to 0.17.0 ( #2012 )
2023-12-19 19:07:14 +01:00
dependabot[bot]
6e108706a1
Chore(deps): Bump docker/build-push-action from 5.0.0 to 5.1.0 ( #1969 )
2023-12-19 19:07:03 +01:00
Quentin McGaw
4a6c229504
fix(settings): add VPN Unlimited warning for OpenSSL 3
2023-12-15 10:32:53 +00:00
dependabot[bot]
ed3a72790a
Chore(deps): Bump DavidAnson/markdownlint-cli2-action from 13 to 14 ( #1982 )
2023-12-14 17:08:12 +01:00
dependabot[bot]
4bf5777f23
Chore(deps): Bump golang.org/x/net from 0.18.0 to 0.19.0 ( #1985 )
2023-12-14 17:07:43 +01:00
dependabot[bot]
f0f9bdb883
Chore(deps): Bump github.com/klauspost/compress from 1.17.2 to 1.17.4 ( #1993 )
2023-12-14 17:07:33 +01:00
dependabot[bot]
4984d90b5a
Chore(deps): Bump github/codeql-action from 2 to 3 ( #2002 )
2023-12-14 17:07:20 +01:00
dependabot[bot]
b5e648d13a
Chore(deps): Bump github.com/breml/rootcerts from 0.2.13 to 0.2.14 ( #1981 )
2023-12-14 16:18:49 +01:00
yifangd
f71a1b083b
fix(purevpn): fix update url and update servers ( #1992 )
...
See https://support.purevpn.com/purevpn/openvpn-files
2023-12-14 16:18:32 +01:00
Quentin McGaw
75fd869625
fix(firewall): handle OpenVPN tcp-client as tcp
2023-12-14 15:10:33 +00:00
Quentin McGaw
657b4b787f
fix(custom): read wireguard presharedkey from peer section
2023-12-09 17:26:01 +00:00
Quentin McGaw
32d6453918
fix(custom): default TCP port for any tcp proto
2023-11-28 07:51:29 +00:00
Quentin McGaw
c326b616b4
feat(custom): support tcp-client proto for OpenVPN
2023-11-28 07:48:55 +00:00
Quentin McGaw
d5376629df
fix(format-servers): add server name header for PIA
2023-11-28 07:31:36 +00:00
Quentin McGaw
3e825d7a08
fix(format-servers): for providers with dashes
2023-11-28 07:27:29 +00:00
dependabot[bot]
059b12883f
Chore(deps): Bump golang.org/x/text from 0.13.0 to 0.14.0 ( #1946 )
2023-11-23 08:37:45 +00:00
dependabot[bot]
74aa509644
Chore(deps): Bump golang.org/x/net from 0.17.0 to 0.18.0 ( #1953 )
2023-11-23 08:37:45 +00:00
Quentin McGaw
4105f74ce1
feat(portforward): port redirection with VPN_PORT_FORWARDING_LISTENING_PORT
2023-11-23 08:37:43 +00:00
Quentin McGaw
8318be3159
feat(nordvpn): add access token warning if used as wireguard private key
2023-11-08 10:07:02 +00:00
Quentin McGaw
de196490db
fix(settings): wireguard preshared key from toml file
2023-11-08 10:06:57 +00:00
dependabot[bot]
ab7d1ccf3d
Chore(deps): Bump github.com/fatih/color from 1.15.0 to 1.16.0 ( #1950 )
2023-11-08 10:36:05 +01:00
dependabot[bot]
ed49a7a7c0
Chore(deps): Bump docker/login-action from 2 to 3 ( #1936 )
2023-11-01 14:39:03 +01:00
dependabot[bot]
135832d985
Chore(deps): Bump docker/metadata-action from 4 to 5 ( #1937 )
2023-11-01 14:38:54 +01:00
dependabot[bot]
1adbd9f692
Chore(deps): Bump docker/setup-buildx-action from 2 to 3 ( #1938 )
2023-11-01 14:38:46 +01:00
Quentin McGaw
26e1c92841
fix(shadowsocks): bump from v0.5.0-rc1 to v0.5.0
...
- treat udp read error as non critical
- log out crash error for tcpudp combined server
2023-11-01 13:38:30 +00:00
dependabot[bot]
3c5b3514fb
Chore(deps): Bump actions/checkout from 3 to 4 ( #1847 )
2023-10-31 16:04:29 +01:00
dependabot[bot]
f884293f6e
Chore(deps): Bump github.com/breml/rootcerts from 0.2.11 to 0.2.13 ( #1800 )
2023-10-31 16:03:28 +01:00
dependabot[bot]
c67bd1aa2a
Chore(deps): Bump golang.org/x/text from 0.11.0 to 0.13.0 ( #1845 )
2023-10-31 16:03:16 +01:00
dependabot[bot]
77ace9377d
Chore(deps): Bump golang.org/x/net from 0.12.0 to 0.17.0 ( #1907 )
2023-10-31 16:02:46 +01:00
dependabot[bot]
6e676209ff
Chore(deps): Bump docker/setup-qemu-action from 2 to 3 ( #1861 )
2023-10-31 14:08:18 +01:00
dependabot[bot]
80917d58b2
Chore(deps): Bump docker/build-push-action from 4.1.1 to 5.0.0 ( #1860 )
2023-10-31 14:08:08 +01:00
dependabot[bot]
fa49f13f19
Chore(deps): Bump crazy-max/ghaction-github-labeler from 4 to 5 ( #1858 )
2023-10-31 14:07:35 +01:00
dependabot[bot]
1fcabd152f
Chore(deps): Bump DavidAnson/markdownlint-cli2-action from 11 to 13 ( #1871 )
2023-10-31 14:07:25 +01:00
dependabot[bot]
385879c297
Chore(deps): Bump github.com/klauspost/compress from 1.16.7 to 1.17.2 ( #1922 )
2023-10-31 14:06:59 +01:00
dependabot[bot]
e0515cb458
Chore(deps): Bump golang.org/x/sys from 0.11.0 to 0.13.0 ( #1897 )
2023-10-31 14:06:48 +01:00
Quentin McGaw
1c43a1d55b
fix(portforward): service start error not treated as critical
...
A service start error can happen if the service is started after the Wireguard VPN tunnel is up, but the tunnel does not work. The VPN is then internally restarted, causing the service start error, so it should not be treated as a critical error.
2023-10-07 13:21:32 +00:00
Quentin McGaw
6c639fcf7f
fix(publicip): do not retry on too many requests
2023-10-07 12:59:43 +00:00
Quentin McGaw
ec1f252528
fix(portforward): different validation when vpn is up or not
2023-10-07 12:43:36 +00:00
Quentin McGaw
ee413f59a2
fix(protonvpn): set natpmp external port to 1
2023-10-06 16:09:05 +00:00
Quentin McGaw
d4df87286e
fix(portforward): trigger after VPN restart
2023-09-28 14:00:58 +00:00
Quentin McGaw
a194906bdd
chore(protonvpn): add debug logs for keeping port forwarded
2023-09-28 07:08:07 +00:00
Quentin McGaw
9b00763a69
feat(config): add /32 if not present for Wireguard addresses
2023-09-24 16:50:34 +00:00
Quentin McGaw
4d627bb7b1
feat(protonvpn): port forwarding connection refused error points to add +pmp to OpenVPN user
2023-09-24 15:15:05 +00:00
Quentin McGaw
dc8fc5f81f
feat(updater): log warning about using -minratio
2023-09-24 15:05:39 +00:00
Quentin McGaw
b787e12e25
feat(surfshark): update servers data
2023-09-24 15:02:08 +00:00
Quentin McGaw
f96448947f
fix(publicip): rework run loop and fix restarts
...
- Clearing IP data on VPN disconnection clears file
- More efficient partial updates
- Fix loop exit
- Validate settings before updating
2023-09-24 14:55:51 +00:00
Quentin McGaw
e64e5af4c3
chore(portforward): improve loop reliability
...
- handle settings update within run function
- signal back start result to update call
- update loop settings only when service is started
2023-09-24 10:28:10 +00:00
Quentin McGaw
aa6dc786a4
chore(provider): use type assertion for port forwarders
2023-09-23 13:02:09 +00:00
Quentin McGaw
84300db7c1
fix(portforward): restart service on run error
...
- fix when port assigned changes
2023-09-23 12:39:49 +00:00
Quentin McGaw
2ac0f35060
fix(protonvpn): crash service if port assigned changes
2023-09-23 12:36:13 +00:00
Quentin McGaw
1a865f56d5
chore(vpn): fix typo portForwader
2023-09-23 12:03:56 +00:00
Quentin McGaw
0406de399d
chore(portforward): move vpn gateway obtention within port forwarding service
2023-09-23 12:03:06 +00:00
Quentin McGaw
71201411f4
fix(portforward): rework run loop and fix deadlocks ( #1874 )
2023-09-23 12:57:12 +02:00
Quentin McGaw
c435bbb32c
docs(issue): provide minimum requirements for an issue
...
- title must be filled
- at least 10 lines of log provided
- Gluetun version must be provided
2023-09-22 09:22:13 +00:00
Quentin McGaw
4cbfea41f2
docs(issues): add Unraid as option in bug template
2023-09-22 09:16:44 +00:00
Quentin McGaw
f9c9ad34f7
feat(protonvpn): check udp vs tcp port forwarded
2023-09-22 08:50:19 +00:00
Quentin McGaw
4ea474b896
fix(routing): change firewall only for matching ip families
2023-09-20 10:45:13 +00:00
Quentin McGaw
6aa4a93665
change(format): use dashes instead of spaces for provider names
...
- `-private\ internet\ access` -> `private-internet-access`
- `-perfect\ privacy` -> `-perfect-privacy`
- `-vpn\ unlimited` -> `-vpn-unlimited`
2023-09-20 10:24:32 +00:00
Quentin McGaw
ea25a0ff89
fix(protonvpn): natpmp assigned ports logs removed
2023-09-20 09:51:13 +00:00
Quentin McGaw
659da67ed5
feat(cyberghost): update servers data
2023-09-20 09:35:28 +00:00
Quentin McGaw
ffc6d2e593
chore(lint): upgrade linter to v1.54.1
2023-09-20 09:34:32 +00:00
Quentin McGaw
03ce08e23d
chore(build): upgrade Go to 1.21
2023-09-20 09:34:29 +00:00
Aleksa Siriški
3449e7a0e1
fix(publicip): IPv6 endpoint for ipinfo ( #1853 )
2023-09-13 16:37:39 +02:00
Quentin McGaw
c0062fb807
fix(protonvpn): natpmp check for assigned internal port
2023-09-13 14:18:35 +00:00
dependabot[bot]
1ac031e78c
Chore(deps): Bump golang.org/x/sys from 0.10.0 to 0.11.0 ( #1786 )
2023-08-24 02:04:07 -07:00
Quentin McGaw
e556871e8b
change(dns): DNS_KEEP_NAMESERVER leaves DNS fully untouched
2023-08-11 11:03:40 +00:00
Quentin McGaw
082a38b769
fix(netlink): try loading Wireguard module if not found ( #1741 )
2023-08-04 13:09:56 +02:00
Quentin McGaw
39ae57f49d
fix(routing): add outbound subnets routes only for matching ip families
2023-07-28 07:24:26 +00:00
Quentin McGaw
9024912e17
fix(custom): allow custom endpoint port setting
2023-07-27 10:32:08 +00:00
Quentin McGaw
eecfb3952f
chore(settings): change source precedence order
...
1. Secret files (program scope)
2. Files (program scope)
3. Environment variables (OS scope)
Fix #1759
2023-07-22 16:02:32 +00:00
Quentin McGaw
0ebfe534d3
feat(settings): parse Wireguard settings from /gluetun/wireguard/wg0.conf ( #1120 )
2023-07-22 17:25:30 +02:00
eiqnepm
c5cc240a6c
feat(surfshark): update API endpoint and servers data ( #1560 )
2023-07-21 20:21:46 +02:00
Quentin McGaw
1a5a0148ea
feat(torguard): update severs data
2023-07-18 16:02:06 +00:00
Quentin McGaw
abe2aceb18
feat(wireguard): clarify wireguard is up message
2023-07-18 15:53:39 +00:00
Quentin McGaw
fa541b8fc2
chore(deps): bump gosettings to v0.4.0-rc1
2023-07-11 13:26:55 +00:00
dependabot[bot]
a681d38dfb
Chore(deps): Bump golang.org/x/net from 0.10.0 to 0.12.0 ( #1729 )
2023-07-09 14:22:14 +02:00
dependabot[bot]
a7b96e3f4d
Chore(deps): Bump golang.org/x/sys from 0.8.0 to 0.10.0 ( #1732 )
2023-07-07 15:32:23 +02:00
dependabot[bot]
04ef92edab
Chore(deps): Bump golang.org/x/text from 0.10.0 to 0.11.0 ( #1726 )
2023-07-07 12:56:47 +02:00
Quentin McGaw
919b55c3aa
feat(wireguard): WIREGUARD_ALLOWED_IPS variable ( #1291 )
2023-07-06 09:08:59 +02:00
Quentin McGaw
9c0f187a12
chore(natpmp): more robust tests with longer connection durations
2023-07-06 06:54:01 +00:00
Quentin McGaw
075a1e2a80
chore(natpmp): initialRetry -> initialConnectionDuration
2023-07-06 06:50:17 +00:00
Quentin McGaw
f31a846cda
chore(ci): add markdown-skip workflow
2023-07-05 15:45:46 +00:00
Quentin McGaw
9bef46db77
chore(ci): trigger markdown on pull requests
...
- Verification steps
- Publishing step to Docker Hub is reserved for pushes to the master branch
2023-07-05 15:44:33 +00:00
Quentin McGaw
d83217f7ac
chore(ci): add markdown dead link checking
2023-07-05 14:47:52 +00:00
Quentin McGaw
1cd2fec796
chore(ci): add markdown linting to markdown workflow
2023-07-05 14:31:09 +00:00
Quentin McGaw
235f24ee5b
chore(ci): add misspell action to markdown job
2023-07-05 14:28:56 +00:00
Quentin McGaw
2e34c6009e
chore(ci): Markdown workflow triggers on *.md files
2023-07-05 14:28:50 +00:00
Quentin McGaw
c0eb2f2315
chore(ci): rename workflow to Markdown
2023-07-05 14:27:14 +00:00
Quentin McGaw
8ad16cdc12
feat(protonvpn): port forwarding support with NAT-PMP ( #1543 )
...
Co-authored-by: Nicholas Xavier <nicho@nicho.dev >
2023-06-30 20:09:44 +02:00
Quentin McGaw
fae6544431
feat(pf): VPN_PORT_FORWARDING_PROVIDER variable ( #1616 )
2023-06-30 19:24:01 +02:00
Quentin McGaw
f8a41b2133
fix(protonvpn): add aes-256-gcm cipher for openvpn
2023-06-30 17:14:44 +00:00
Quentin McGaw
ff9b56d6d8
docs(all): update to use newer wiki repository
...
- Update URLs logged by program
- Update README.md links
- Update contributing guide link
- Update issue templates links
- Replace Wiki issue template by link to Gluetun Wiki repository issue creation
- Set program announcement about Github wiki new location
2023-06-30 10:31:26 +00:00
Quentin McGaw
99d5a591b9
docs(readme): fixes and small changes
...
- remove `UPDATER_VPN_SERVICE_PROVIDERS` in docker-compose config
- remove Slack channel link (don't have time to check it)
- Update Wireguard native integrations support list
2023-06-29 16:28:24 +00:00
Quentin McGaw
fbe252a9b6
chore(Docker): add missing environment variables
...
- `OPENVPN_PROCESS_USER` defaults to `root`
- Add `HTTPPROXY_STEALTH=off`
- Add `HTTP_CONTROL_SERVER_LOG=on`
2023-06-29 16:20:25 +00:00
Quentin McGaw
76a92b90e3
fix(routing): VPNLocalGatewayIP Wireguard support
2023-06-28 14:23:34 +00:00
Quentin McGaw
2873b06275
fix(wireguard): wrap setupIPv6 rule error correctly
2023-06-28 13:08:23 +00:00
Quentin McGaw
9cdd6294d2
feat(mullvad): update servers data
2023-06-28 13:06:40 +00:00
dependabot[bot]
44bc60b00d
Chore(deps): Bump docker/build-push-action from 4.0.0 to 4.1.1 ( #1684 )
2023-06-28 14:28:59 +02:00
dependabot[bot]
6f0be57860
Chore(deps): Bump golang.org/x/text from 0.9.0 to 0.10.0 ( #1681 )
2023-06-28 14:28:44 +02:00
Quentin McGaw
d3d8484b8e
hotfix(env): case sensitivity for OPENVPN_CUSTOM_CONFIG
2023-06-28 12:27:13 +00:00
Quentin McGaw
515ae8efb3
hotfix(nordvpn): update url
2023-06-18 11:00:36 +00:00
Quentin McGaw
83826e1253
hotfix(settings): fix godot lint error
2023-06-12 13:51:50 +00:00
Quentin McGaw
4292a500ae
fix(wireguard): delete existing Wireguard link before adding it
2023-06-10 20:23:21 +00:00
Quentin McGaw
4a0f9c36ba
hotfix(nordvpn): accept countries in SERVER_REGIONS
2023-06-10 16:29:30 +00:00
Quentin McGaw
ea1991496e
hotfix(routing): remove debug prints
2023-06-08 22:44:08 +00:00
Quentin McGaw
4675572328
hotfix(routing): change main table from 0 to 254
2023-06-08 20:03:07 +00:00
Quentin McGaw
412921fc1f
hotfix(routing): ignore non-main table for routes
...
- When searching for default routes
- When searching for local networks
2023-06-08 19:50:42 +00:00
Quentin McGaw
1c905d0e6f
chore(labels): add problem category labels
...
- Config problem
- Routing
- IPv6
- Port forwarding
2023-06-08 10:04:09 +00:00
Quentin McGaw
2ec9293324
feat(wireguard): MTU defaults to 1400 instead of 1420
2023-06-08 09:50:21 +00:00
Quentin McGaw
9b39a301a8
chore(routing): remove unused VPNDestinationIP
2023-06-08 09:17:27 +00:00
Quentin McGaw
cade2b99bf
chore(routing): unexport IPIsPrivate as ipIsPrivate
2023-06-08 09:14:17 +00:00
Quentin McGaw
40cdb4f662
fix(netlink): RouteList list routes from all tables
...
- Do not filter by link anymore
- IPv6 detection simplified
2023-06-08 09:12:46 +00:00
Quentin McGaw
c58d6d4de2
chore(lint): upgrade to v1.53.2 and add linters
...
- gosmopolitan
- mirror
- tagalign
- zerologlint
2023-06-08 07:43:30 +00:00
Quentin McGaw
0da2b6ad0b
chore(lint): add musttag linter and fix lint errors
...
Breaking change: JSON fields changed in the server API
2023-06-08 07:43:26 +00:00
Quentin McGaw
37f0e5c73b
chore(lint): add linters dupword, paralleltest and gocheckcompilerdirectives
2023-06-08 07:40:37 +00:00
Quentin McGaw
a9cd7be3f9
chore(sources/env): bump gosettings to v0.3.0-rc13
...
- Use `RetroKeys` option with env.* method calls
- Use `CSV*` typed methods
- Inject `handleDeprecatedKey` function
2023-06-08 07:40:37 +00:00
Julio Gutierrez
07459ee854
feat(nordvpn): new API endpoint and wireguard support ( #1380 )
...
Co-authored-by: Quentin McGaw <quentin.mcgaw@gmail.com >
2023-06-08 09:39:07 +02:00
Quentin McGaw
943943e8d1
fix(settings): MergeWithSlice for both elements nil
2023-06-01 10:00:44 +00:00
Quentin McGaw
5927ee9dec
chore(ci): trigger for PR to other branches
2023-06-01 09:09:01 +00:00
Quentin McGaw
3b136e02db
chore(secrets): add test for readSecretFileAsStringPtr
2023-06-01 09:07:25 +00:00
Quentin McGaw
482447c151
chore(env): bump qdm12/gosettings to v0.3.0-rc11
2023-06-01 09:07:22 +00:00
Quentin McGaw
5d8fbf8006
fix(sources/secrets): do not lowercase env secret file paths
2023-06-01 08:20:13 +00:00
Quentin McGaw
2ab80771d9
feat(shadowsocks): bump from v0.4.0 to v0.5.0-rc1
2023-05-31 14:31:56 +00:00
Quentin McGaw
7399c00508
chore(sources/env): bump gosettings to v0.3.0-rc9
2023-05-31 14:31:56 +00:00
Leeroy Ding
2d2f657851
docs(readme): fix Alpine version from 3.17 to 3.18 ( #1636 )
2023-05-31 16:27:10 +02:00
dependabot[bot]
0e21fdc9de
Chore(deps): Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 ( #1633 )
2023-05-31 16:24:49 +02:00
Quentin McGaw
b87b2109b1
chore(settings): use gosettings/sources/env functions
2023-05-30 13:02:10 +00:00
Quentin McGaw
2c30984a10
hotfix(env): read some settings with case sensitivity
2023-05-30 12:46:10 +00:00
Quentin McGaw
47593928f9
fix(settings): use qdm12/gosettings env.Get
2023-05-29 20:43:06 +00:00
Quentin McGaw
b961284845
feat(dev): specify vscode recommendations
2023-05-29 16:42:00 +00:00
Quentin McGaw
b5d230d47a
chore(dev): set build tag as linux for cross development
2023-05-29 16:40:10 +00:00
Quentin McGaw
c2972f7bf6
chore(dev): update devcontainer definitions
2023-05-29 15:57:09 +00:00
Quentin McGaw
aed235f52d
chore(httpproxy): add Test_returnRedirect to prevent error wrap of ErrUseLastResponse
2023-05-29 09:44:49 +00:00
Quentin McGaw
bfe5e4380f
fix(httpproxy): redirect from http to https
2023-05-29 09:39:48 +00:00
Quentin McGaw
eca182a32f
chore(tun): not linux or not darwin tagged files
2023-05-29 09:36:29 +00:00
Quentin McGaw
caabaf918e
feat(dev): support development on darwin (OSX)
...
- Netlink linux tagged files
- Netlink linux || darwin tagged files
- Create non-implemented files for NOT linux
- Create non-implemented files for NOT linux and NOT darwin
- Specify wireguard netlink integration test as for linux only
2023-05-29 07:26:59 +00:00
Quentin McGaw
d6924597dd
chore(netlink): separate linux only and OS independent code
...
- Move `Addr` and its `String` method to `types.go`
- Move `IsWireguardSupported` to `wireguard.go` to have `family.go` OS independant
- Remove dependency on vishvananda/netlink in `ipv6.go`
- Move `Link` to `types.go`
- Move `Route` to `types.go`
- Move `Rule` and its `String` method to `types.go`
2023-05-29 06:56:55 +00:00
Quentin McGaw
c26476a2fd
chore(netlink): remove unused link fields
2023-05-29 06:56:52 +00:00
Quentin McGaw
5be0d0bbba
feat(wireguard): debug logs log obfuscated keys
2023-05-29 06:45:12 +00:00
Quentin McGaw
38ddcfa756
chore(netlink): define own types with minimal fields
...
- Allow to swap `github.com/vishvananda/netlink`
- Allow to add build tags for each platform
- One step closer to development on non-Linux platforms
2023-05-29 06:44:58 +00:00
Quentin McGaw
163ac48ce4
chore(wireguard): fix netlink integration test
...
- Broken since recent commit 9d1a0b60a2
2023-05-29 05:54:01 +00:00
Quentin McGaw
def407d610
chore(settings): use qdm12/gosettings functions
...
- use: FileExists, ObfuscateKey, BoolToYesNo
- remove local functions moved to gosettings
2023-05-28 10:33:36 +00:00
Quentin McGaw
22b2e2cc6e
chore(deps): bump qdm12/gosettings to v0.3.0-rc4
2023-05-28 10:29:15 +00:00
Quentin McGaw
c92962e97c
chore(deps): tidy Go dependencies
2023-05-28 10:26:25 +00:00
Quentin McGaw
9d1a0b60a2
fix(netlink): use AddrReplace instead of AddrAdd
2023-05-28 10:22:51 +00:00
Quentin McGaw
9cf2c9c4d2
chore(settings): remove now unused helpers/messages.go
2023-05-28 10:22:51 +00:00
Quentin McGaw
e7150ba254
chore(settings): remove unused settings helpers
2023-05-28 10:22:51 +00:00
Filippo Buletto
7ba70f19ef
fix(settings): fix httpproxy.go error message ( #1596 )
2023-05-27 20:01:55 +02:00
dependabot[bot]
9488a9f88a
Chore(deps): Bump github.com/breml/rootcerts from 0.2.10 to 0.2.11 ( #1567 )
2023-05-27 20:01:17 +02:00
dependabot[bot]
020196f1c3
Chore(deps): Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 ( #1575 )
2023-05-27 20:01:08 +02:00
Quentin McGaw
7e325715c7
hotfix(settings): case insensitivity for server filters
2023-05-27 08:53:18 +00:00
Quentin McGaw
75670a80b8
chore(deps): bump gosettings and govalid
2023-05-27 08:52:41 +00:00
Quentin McGaw
a43973c093
chore(settings): use github.com/qdm12/gosettings
2023-05-25 12:08:43 +00:00
Quentin McGaw
1827a03afd
fix(airvpn): allow Airvpn as Wireguard provider
2023-05-24 21:47:31 +00:00
Quentin McGaw
3100cc1e5e
hotfix(routing): unmap ipv4-in-ipv6 when converting
2023-05-22 08:03:52 +00:00
Quentin McGaw
eed62fdc6d
fix(routing): ip family match function
...
- ipv4-in-ipv6 should match ipv6
2023-05-22 06:01:52 +00:00
Quentin McGaw
d2b8dbcb10
chore(routing): remove old assigned ip debug log
2023-05-22 06:01:07 +00:00
Quentin McGaw
90d43856ef
fix(routing): net.IPNet to netip.Prefix conversion
2023-05-22 06:00:24 +00:00
Quentin McGaw
86f95cb390
chore(docker): bump Alpine from 3.17 to 3.18
2023-05-21 13:25:01 +00:00
Quentin McGaw
3b807e2ca9
feat(openvpn): add support for openvpn 2.6
2023-05-21 13:23:51 +00:00
Quentin McGaw
e8f2296a0d
change(openvpn): Openvpn 2.4 no longer supported
2023-05-21 13:20:02 +00:00
Lars Haalck
1dd38bc658
feat(wireguard): WIREGUARD_MTU enviromnent variable ( #1571 )
2023-05-21 15:11:07 +02:00
Quentin McGaw
63303bc311
fix(mullvad): add aes-256-gcm cipher
2023-05-21 12:33:27 +00:00
Julio Gutierrez
5200ee5722
chore(settings): use generics for helping functions ( #1427 )
2023-05-20 22:37:23 +02:00
Quentin McGaw
86ec75722a
chore(wireguard): use netip.AddrPort instead of *net.UDPAddr
2023-05-20 20:06:12 +00:00
Quentin McGaw
0a29337c3b
chore(all): replace net.IP with netip.Addr
2023-05-20 20:06:12 +00:00
Quentin McGaw
00ee6ff9a7
chore(wireguard): fix netlink integration tests
2023-05-20 20:06:12 +00:00
Quentin McGaw
6d0a2a968f
chore(settings): remove unneeded CopyNetipPrefix
2023-05-20 20:06:12 +00:00
dependabot[bot]
4bb77ebcc5
Chore(deps): Bump golang.org/x/net from 0.9.0 to 0.10.0 ( #1561 )
2023-05-10 11:00:50 +02:00
dependabot[bot]
56ecfcb9f4
Chore(deps): Bump golang.org/x/sys from 0.7.0 to 0.8.0 ( #1557 )
2023-05-10 10:58:31 +02:00
15ky3
9a0fcbc011
fix(perfectprivacy): update cert and key ( #1549 )
...
Credits to @Thamos88 and @15ky3
2023-05-10 10:56:32 +02:00
Quentin McGaw
b6c8399c3b
feat(health): HEALTH_SUCCESS_WAIT_DURATION
2023-05-07 09:35:51 +00:00
Quentin McGaw
7a88a09341
chore(healthcheck): prefer Go dialer
2023-05-06 07:14:34 +00:00
Quentin McGaw
912b31cfc6
fix(settings): clarify Wireguard provider error
2023-05-01 08:00:25 +00:00
Quentin McGaw
d21a943779
chore(all): use netip.Prefix for ip networks
...
- remove usage of `net.IPNet`
- remove usage of `netaddr.IPPrefix`
2023-04-27 13:42:50 +00:00
Quentin McGaw
801a7fd6fe
chore(routing): simplify default routes for loop
2023-04-27 10:41:18 +00:00
Quentin McGaw
80053f6b7d
feat(routing): log default route family as string
2023-04-27 10:41:03 +00:00
Quentin McGaw
e165bb6870
chore(dev): do not bind mount ~/.gitconfig
2023-04-27 10:27:40 +00:00
Quentin McGaw
67bd1171ae
feat(env): rename vpn port forwarding variables
...
- `VPN_PORT_FORWARDING_STATUS_FILE`
- `VPN_PORT_FORWARDING`
- Deprecate PIA specific variables for VPN port forwarding
2023-04-27 10:23:55 +00:00
Quentin McGaw
4e2e46014d
chore(settings): inet.af/netaddr -> net/netip
2023-04-23 11:43:50 +00:00
Quentin McGaw
1693c59e0d
chore(lint): fix issues
...
- sources/env: remove unused `envToInt`
- fix `ireturn` error for `newCipherDESCBCBlock`
2023-04-22 11:02:53 +00:00
Quentin McGaw
9d4105ee59
chore(settings): remove unneeded pointers.go
2023-04-22 11:02:53 +00:00
Quentin McGaw
19585da3bc
chore(deps): bump inet.af/netaddr
2023-04-20 23:25:41 +00:00
Quentin McGaw
51f830cfc1
chore(wireguard): bump dependencies
2023-04-20 23:24:58 +00:00
Quentin McGaw
804ea7ebd6
feat(surfshark): update servers data
2023-04-20 23:22:27 +00:00
Quentin McGaw
3294b8df60
feat(perfectprivacy): update servers data
2023-04-20 23:10:57 +00:00
Quentin McGaw
d77ec7a6cb
fix(perfectprivacy): remove check for hostname in servers
2023-04-20 23:10:06 +00:00
Quentin McGaw
219d1f371c
chore(all): wrap all sentinel errors
...
- Force to use `errors.Is` instead of `==` to compare errors
2023-04-20 23:10:06 +00:00
Quentin McGaw
fa7fd5f076
fix(pprof): settings rates can be nil
2023-04-20 23:10:02 +00:00
dependabot[bot]
d4f8eea7bf
Chore(deps): Bump github.com/vishvananda/netlink from 1.1.1-0.20211129163951-9ada19101fc5 to 1.2.1-beta.2 ( #1414 )
2023-04-12 05:30:45 -07:00
Quentin McGaw
723d0f5e12
chore(lint): upgrade from v1.51.2 to v1.52.2
2023-04-12 09:40:00 +00:00
dependabot[bot]
20f4d8cc0b
Chore(deps): Bump github.com/fatih/color from 1.14.1 to 1.15.0 ( #1484 )
2023-04-11 09:04:35 -07:00
dependabot[bot]
64cca69bf3
Chore(deps): Bump golang.org/x/net from 0.0.0-20220418201149-a630d4f3e7a2 to 0.9.0 ( #1509 )
2023-04-11 09:04:11 -07:00
Kyle Manna
fc8a2abb8f
fix(routing): add policy rules for each destination local networks ( #1493 )
2023-04-11 09:03:07 -07:00
Quentin McGaw
16ecf48b89
fix(vpnunlimited): lower TLS security level to 0 ( #1476 )
2023-04-11 14:08:54 +02:00
Quentin McGaw
8fa4fd1b64
chore(labels): update labels
...
- remove issue category labels
- Add temporary status labels
- Add complexity labels
2023-04-03 11:58:12 +00:00
Quentin McGaw
4db6d1ecf9
chore(dev): add openssl to dev container
2023-04-03 10:41:37 +00:00
Quentin McGaw
3b86927ca7
fix(vpnsecure): upgrade Openvpn key encryption if needed ( #1471 )
2023-04-03 03:40:09 -07:00
Quentin McGaw
8bfa2f9b27
chore(docker): loosen pin for openssl 1.1
...
- Credits to @kylemanna
2023-04-03 08:21:58 +00:00
Quentin McGaw
fe2a3e4d11
chore(docker): remove no longer needed apk-tools
2023-04-03 08:20:08 +00:00
Quentin McGaw
b0451d8e50
feat(docker): install full-featured wget
...
- Fixes #1260 , #1494
- Does not spawn openssl zombie processes
2023-04-03 08:10:48 +00:00
Quentin McGaw
a0b9044fd3
fix(hidemyass): add warning of end of life
...
- Fixes #1498
- Credits to @Fukitsu
2023-04-03 07:58:04 +00:00
Quentin McGaw
c7a841f4b4
chore(openvpn/extract): simplify PEM extract
2023-04-01 16:57:18 +00:00
Quentin McGaw
4ba159e483
chore(all): review error wrappings
...
- remove repetitive `cannot` and `failed` prefixes
- rename `unmarshaling` to `decoding`
2023-04-01 16:57:18 +00:00
dependabot[bot]
63a696d7e7
Chore(deps): Bump docker/build-push-action from 3.2.0 to 4.0.0 ( #1378 )
2023-04-01 08:28:34 -07:00
Quentin McGaw
d457342b46
feat(log): warn Openvpn 2.4 is to be removed
2023-04-01 15:24:42 +00:00
Quentin McGaw
c246dae2cc
feat(log): log warnings about user settings
...
- Warn when using Openvpn 2.4 and SlickVPN
- Warn when using Openvpn 2.5 and SlickVPN
2023-04-01 15:22:32 +00:00
Quentin McGaw
0f4a2e5224
hotfix(deps): bump old openssl to 1.1.1t-r2
2023-03-31 09:34:33 +00:00
dependabot[bot]
db262050d5
Chore(deps): Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 ( #1483 )
2023-03-30 10:54:44 -07:00
Quentin McGaw
227cdea0c8
fix(slickvpn): allow AES-256-GCM
2023-03-26 12:38:55 +02:00
Quentin McGaw
33a6f1c01b
fix(slickvpn): lower TLS security level to 0
2023-03-26 12:38:55 +02:00
Quentin McGaw
f6f3c110f0
fix(slickvpn): all servers support TCP and UDP
2023-03-26 12:38:55 +02:00
Quentin McGaw
27a3f2c846
fix(slickvpn): precise default TCP port as 443
2023-03-26 12:38:55 +02:00
dependabot[bot]
62169baeea
Chore(deps): Bump golang.org/x/text from 0.5.0 to 0.8.0 ( #1436 )
2023-03-26 12:36:29 +02:00
dependabot[bot]
4b18636a91
Chore(deps): Bump golang.org/x/sys from 0.3.0 to 0.6.0 ( #1438 )
2023-03-25 22:11:01 +01:00
Quentin McGaw
51432ca05f
hotfix(health): remove previous err debug line
2023-03-25 17:34:56 +00:00
colereynolds
b5ebdcd040
docs(readme): add servers updater environment variables ( #1393 )
2023-03-25 16:14:07 +01:00
Quentin McGaw
416c1ee113
chore(deps): tidy dependencies
2023-03-25 15:09:27 +00:00
Quentin McGaw
fe97e28461
fix(health): log link to Wiki on VPN restart
2023-03-25 15:09:13 +00:00
Quentin McGaw
cbd8711a21
feat(airvpn): update servers data
2023-03-25 14:50:49 +00:00
stevenl4
7578e52ed5
fix(ipvanish): updater zip file url ( #1449 )
2023-03-25 15:36:44 +01:00
Quentin McGaw
0df68f76d5
fix(airvpn): remove commas from city names
2023-03-25 12:55:21 +00:00
Quentin McGaw
9a528c42f8
chore(settings): precise base64 DER for some OpenVPN fields
2023-03-25 12:10:01 +00:00
Quentin McGaw
5607916af6
hotfix: bump old openssl to 1.1.1t-r1
2023-03-23 16:36:14 +00:00
Quentin McGaw
4ad7a2a444
feat(mullvad): update servers data
2023-03-23 15:23:53 +00:00
Quentin McGaw
ab5dbdca97
feat(pia): update servers data
2023-03-01 13:00:18 +00:00
Quentin McGaw
a97fcda283
fix(version): add name in version check error
2023-02-27 20:16:55 +00:00
Quentin McGaw
e955adc1e1
hotfix: install older openssh for openvpn 2.4
2023-02-27 05:21:42 +00:00
Quentin McGaw
ac5141b411
Chore(deps): Bump github.com/breml/rootcerts from 0.2.8 to 0.2.10
2023-02-26 18:14:59 +00:00
dependabot[bot]
f8c189e48a
Chore(deps): Bump github.com/fatih/color from 1.13.0 to 1.14.1 ( #1369 )
2023-02-26 11:14:15 -08:00
Quentin McGaw
2f2a904c64
feat(mullvad): update servers data
2023-02-26 15:16:22 +00:00
Quentin McGaw
9261dca8ab
chore(lint): bump from v1.49.0 to v1.51.2
2023-02-26 15:15:34 +00:00
Quentin McGaw
7b5d5c3884
feat(alpine): bump from 3.16 to 3.17
2023-02-26 15:15:34 +00:00
Quentin McGaw
7c80d80904
chore(build): upgrade Go from 1.19 to 1.20
2023-02-26 15:15:30 +00:00
Quentin McGaw
ea40b84ec0
fix(settings): print outbound subnets correctly
2022-12-31 17:46:55 +00:00
Quentin McGaw
4e6ef649c4
fix(airvpn): remove commas from API locations
2022-12-31 17:30:31 +00:00
Quentin McGaw
dd40f1d2e6
chore(devcontainer): same ssh bind mount for all platforms
2022-12-31 17:30:31 +00:00
dependabot[bot]
490693bb26
Chore(deps): Bump golang.org/x/text from 0.4.0 to 0.5.0 ( #1275 )
2022-12-15 04:58:43 -05:00
Quentin McGaw
c8d33ca5f3
fix(surfshark): update location data
...
- Add 2 new 'HK' servers
- Remove 3 servers no longer resolving
2022-12-15 09:29:48 +00:00
Quentin McGaw
e6df026332
feat(surfshark): update servers data
2022-12-15 09:29:09 +00:00
Quentin McGaw
7a30343053
docs(readme): document alternative ghcr image name
2022-12-15 09:02:37 +00:00
ksurl
fc02ae9c13
feat(docker): ghcr.io/qdm12/gluetun image ( #1231 )
2022-12-14 16:04:41 -05:00
Quentin McGaw
f70f0aca9c
fix(settings): validate Wireguard addresses depending on IPv6 support
2022-12-14 11:52:03 +00:00
Quentin McGaw
16acd1b162
chore(netlink): log ipv6 support at debug level
2022-12-14 11:52:03 +00:00
Quentin McGaw
2e3eb1fd7b
fix(wireguard): ignore IPv6 addresses if IPv6 is not supported
2022-12-14 11:52:03 +00:00
Quentin McGaw
a4cf17f81e
fix(netlink): change logger level
2022-12-14 11:50:36 +00:00
Quentin McGaw
c0a301611d
fix(health): set config to default in healthcheck mode
2022-12-07 10:34:24 +00:00
Quentin McGaw
cc934f5c68
hotfix(netlink): ipv6 detection for nil src/dst in routes
2022-12-02 11:39:37 +00:00
Quentin McGaw
74426f6202
feat(netlink): add debug logger
2022-12-02 11:26:52 +00:00
Quentin McGaw
03ed3cb1c8
feat(wireguard): WIREGUARD_IMPLEMENTATION variable
...
- Can be `auto` (default), `userspace` or `kernelspace`
2022-12-02 11:16:27 +00:00
Quentin McGaw
1b1335835b
fix(netlink): inspect each route for IPv6 support
2022-12-01 12:18:46 +00:00
Quentin McGaw
5070dbcf7f
feat(fastestvpn): update servers data
2022-11-30 19:21:56 +00:00
rsquarev
90b9d85742
fix(fastesvpn): updater zip file url ( #1264 )
2022-11-30 14:19:14 -05:00
Quentin McGaw
7a3b9941aa
fix(exit): exit with 1 on runtime error
2022-11-18 09:46:31 +00:00
Quentin McGaw
698095f0a0
fix(pprof): do not run if disabled
2022-11-15 12:45:47 +00:00
Quentin McGaw
5a06d8e155
fix(firewall): iptables detection with permission denied
2022-11-15 12:34:25 +00:00
Quentin McGaw
7421dcb45f
feat(openvpn): explain ip route error in logs
...
- `RTNETLINK answers: File exists` changed to warning with explanation
- `Linux route add command failed:` changed to warning with explanation
2022-11-11 09:48:55 +00:00
Quentin McGaw
554a6cdb92
feat(healthcheck): add FAQ url on unhealthy log
2022-11-11 09:43:07 +00:00
Quentin McGaw
5aa39be973
fix(firewall): remove previously allowed input ports
2022-11-11 09:19:03 +00:00
Quentin McGaw
192a7a56a3
fix(httpproxy): lower shutdown wait from 2s to 100ms
2022-10-31 11:21:25 +00:00
Quentin McGaw
1d1657e9be
fix(pia): remove username+password from login bad http status code
2022-10-31 11:00:43 +00:00
Quentin McGaw
49b7301295
feat(mullvad): update servers data
2022-10-31 10:44:36 +00:00
dependabot[bot]
126804c15e
Chore(deps): Bump golang.org/x/text from 0.3.7 to 0.4.0 ( #1198 )
2022-10-28 07:24:35 -04:00
dependabot[bot]
a7643c6201
Chore(deps): Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 ( #1210 )
2022-10-28 07:24:20 -04:00
dependabot[bot]
db2de5fc84
Chore(deps): Bump docker/build-push-action from 3.1.1 to 3.2.0 ( #1193 )
2022-10-28 07:24:04 -04:00
dependabot[bot]
5c7b9aa6a1
Chore(deps): Bump github.com/breml/rootcerts from 0.2.6 to 0.2.8 ( #1173 )
2022-10-28 07:23:40 -04:00
Quentin McGaw
63890c159e
feat(servers): update FastestVPN servers
2022-10-28 11:02:39 +00:00
Quentin McGaw
e7d5ae5dc1
fix(fastestvpn): handle lowercase .ovpn filenames
2022-10-28 11:02:24 +00:00
Quentin McGaw
b275354a92
fix(env): trim space for wireguard addresses
2022-10-28 10:49:51 +00:00
Quentin McGaw
ac02a64d17
fix(ipinfo): handle 403 as too many requests
2022-10-28 10:35:29 +00:00
Quentin McGaw
9c80150e09
fix(publicip): no retry when too many requests to ipinfo.io
2022-10-28 10:35:09 +00:00
Quentin McGaw
31a8bc9062
feat(servers): update PureVPN
2022-10-28 09:11:33 +00:00
Quentin McGaw
f15dde6502
feat(providers): add AirVPN support ( #1145 )
2022-10-17 02:54:56 -04:00
Quentin McGaw
f70609c464
fix(wireguard): ignore IPv6 addresses if IPv6 disabled
2022-10-17 06:31:32 +00:00
Quentin McGaw
c954e6f231
fix: parse udp4, udp6, tcp4 or tcp6
2022-10-16 16:54:12 +00:00
Quentin McGaw
cb804577a9
feat(httpproxy): log credentials sent on mismatch
2022-10-02 09:31:03 +00:00
Quentin McGaw
e5be20d719
fix(exit): exit with 0 on successful shutdown
2022-09-14 13:23:31 +00:00
EkilDeew
875690ab18
feat(network): enable ipv6 connection and tunneling ( #1114 )
...
Co-authored-by: Quentin McGaw <quentin.mcgaw@gmail.com >
2022-09-13 17:18:10 -07:00
Quentin McGaw
6a5aa8eddb
fix(openvpn): do not set tun-ipv6
...
- Server should push `tun-ipv6` if it is available
- Add ignore filter for `tun-ipv6` if ipv6 is not supported on client
- Fixes #435
2022-09-14 00:03:31 +00:00
Quentin McGaw
7fdc7de210
feat(ipv6): use ipv6 endpoint IPs if supported
2022-09-12 21:31:37 +00:00
Quentin McGaw
dd7630997b
fix(vpnsecure): allow empty OpenVPN user+password
2022-09-10 14:46:17 +00:00
Quentin McGaw
aba5ca4536
fix(cyberghost): remove outdated server groups
...
- Remove `94-1` pemium udp usa
- Remove `95-1` premium udp asia
- Remove `93-1` pemium udp usa
- Remove `96-1` premium tcp asia
- Update servers data
2022-09-08 12:19:12 +00:00
Quentin McGaw
7506625f40
chore(tests): fix netlink test for previous crash
2022-09-06 12:17:51 +00:00
Quentin McGaw
5ddd703f6a
feat(vpn): auto detection of IPv6 support
...
- `OPENVPN_IPV6` removed
- Affects OpenVPN
- Use the same mechanism for OpenVPN and Wireguard
- Check only once at program start since this is unlikely to change at runtime
- Log if IPv6 is supported
- Remove `IPv6` boolean from settings structs
- Move IPv6 detection as a method on NetLinker
2022-09-06 12:16:29 +00:00
Quentin McGaw
71c51a7455
chore(provider/utils): do not check for empty wg keys
2022-09-05 15:50:02 +00:00
Quentin McGaw
284d4340b1
fix(tests): fix netlink wireguard test
2022-09-05 15:23:31 +00:00
Quentin McGaw
2c1281d0a2
hotfix(tests): panic tests for previous commit
2022-09-05 15:04:43 +00:00
Stijn Hoop
532df9f8d4
fix(privateinternetaccess): get token for port forwarding ( #1132 )
2022-09-05 08:01:48 -07:00
Quentin McGaw
45b7da1058
chore(dev): improve missing provider panic string
2022-09-05 14:51:30 +00:00
Quentin McGaw
907daff483
chore(build): tidy Go modules dependencies
2022-09-04 23:01:02 +00:00
Quentin McGaw
7757e8a114
chore(dev): improve update command launch config
...
- Run without `debug` mode
- Run from workspace folder so it writes to the right path
- Pick `-maintainer` or `-enduser` update mode
2022-09-04 18:40:08 +00:00
Quentin McGaw
e59e28152f
fix(ivpn): update mechanism for Wireguard servers
2022-09-02 00:36:13 +00:00
Quentin McGaw
2fe0594db7
feat(servers): update ProtonVPN servers data
2022-08-30 11:44:34 +00:00
Quentin McGaw
794e96b449
docs(readme): add ProtonVPN and PureVPN to Wireguard support
2022-08-29 00:31:38 +00:00
Quentin McGaw
07282f414c
chore(wireguard): upgrade wireguard depdencies
2022-08-27 18:37:24 +00:00
Quentin McGaw
e583f9de47
fix(codeql): fix integer parsing (false positive)
2022-08-27 16:45:29 +00:00
Quentin McGaw
8570e09eb9
chore(config): rename Reader to Source struct
2022-08-26 15:40:35 +00:00
Quentin McGaw
ae5cba519c
chore(config): define Source interface locally where needed
2022-08-26 15:03:59 +00:00
Quentin McGaw
26f3832187
chore(config): rename mux source to merge
2022-08-26 14:59:35 +00:00
Quentin McGaw
5989f29035
feat(surfshark): Wireguard support ( #587 )
2022-08-26 07:55:46 -07:00
Quentin McGaw
4ace99f318
chore(servers): remove "udp": true for Wireguard
2022-08-25 13:24:22 +00:00
Quentin McGaw
d1c5e00df8
fix(updater): error when server has not the minimal information
2022-08-25 13:23:27 +00:00
Quentin McGaw
5eacb46226
feat(servers): update servers data for Ivpn, Mullvad and Windscribe
2022-08-25 13:05:20 +00:00
Quentin McGaw
6c17612310
chore(filter): no network protocol filter for Wireguard
2022-08-25 13:03:58 +00:00
Quentin McGaw
fba73a0a0f
fix(settings): OPENVPN_CUSTOM_CONFIG precedence for custom provider only if VPN_SERVICE_PROVIDER is empty
2022-08-25 04:01:17 +00:00
Quentin McGaw
4faef87c03
chore(build): bump Go from 1.18 to 1.19
2022-08-24 21:54:49 +00:00
Quentin McGaw
5914cb0e37
chore(build): bump Go from 1.17 to 1.18
...
- Unneeded disabled linters are: `rowserrcheck`, `sqlclosecheck`
- Disabled linter is `wastedassign` which is tolerable
2022-08-24 21:54:08 +00:00
Quentin McGaw
aa53436e56
chore(lint): upgrade golangci-lint to v1.49.0
...
- Add linter `interfacebloat` and fix code issues
- Add linter `reassign`
- Remove deprecated linter `nosnakecase`
2022-08-24 21:48:24 +00:00
Quentin McGaw
8dfaebc737
chore(all): remove deprecated io/ioutil import
2022-08-24 21:43:37 +00:00
Quentin McGaw
062b6a276c
fix(settings): read PEM files but b64 env vars
...
- Extract base64 data from PEM files and secret files
- Environment variables are not PEM encoded and only the base64 data
- Affects OpenVPN certificate, key and encrypted key
2022-08-24 17:48:45 +00:00
Quentin McGaw
647cd07de7
feat(surfshark): update servers data
2022-08-24 13:04:34 +00:00
Quentin McGaw
a530c84c5f
fix(surshark): remove invalid retro-servers
2022-08-24 13:04:18 +00:00
Quentin McGaw
0bb320065e
feat(server): patch VPN settings
...
- `PUT` at `/v1/vpn/settings`
- Undocumented, experimental for now
2022-08-21 23:36:48 +00:00
Quentin McGaw
d685d78e74
feat(server): add vpn route to replace /openvpn
2022-08-21 23:29:25 +00:00
Quentin McGaw
48896176e5
chore(server): do not redact openvpn credentials from response
2022-08-21 22:04:04 +00:00
Quentin McGaw
54dcf28b31
chore(server): replace 404 with 401 for unsupported routes and methods
2022-08-21 22:02:06 +00:00
Quentin McGaw
f8bf32bb34
docs(readme): add slickvpn to list of providers
2022-08-16 00:02:34 +00:00
Quentin McGaw
748923021c
fix(ci): permissions for labels workflow
2022-08-15 23:58:33 +00:00
Quentin McGaw
a182e3503b
feat: add VPNsecure.me support ( #848 )
...
- `OPENVPN_ENCRYPTED_KEY` environment variable
- `OPENVPN_ENCRYPTED_KEY_SECRETFILE` environment variable
- `OPENVPN_KEY_PASSPHRASE` environment variable
- `OPENVPN_KEY_PASSPHRASE_SECRETFILE` environment variable
- `PREMIUM_ONLY` environment variable
- OpenVPN user and password not required for vpnsecure provider
2022-08-15 16:54:58 -07:00
Quentin McGaw
991cfb8659
chore(ci): limit labels workflow to not forked
2022-08-15 23:53:29 +00:00
Richard Hodgson
d0dfc21e2b
feat: SlickVPN Support ( #961 )
...
- `internal/updater/html` package
- Add unit tests for slickvpn updating code
- Change shared html package to be more share-able
- Split html utilities in multiple files
- Fix processing .ovpn files with prefix space
Authored by @Rohaq
Co-authored-by: Quentin McGaw <quentin.mcgaw@gmail.com >
2022-08-15 08:25:06 -07:00
dependabot[bot]
617bd0c600
Chore(deps): Bump github.com/stretchr/testify from 1.7.5 to 1.8.0 ( #1052 )
2022-08-13 12:16:57 -07:00
dependabot[bot]
349b5429ba
Chore(deps): Bump docker/build-push-action from 3.1.0 to 3.1.1 ( #1098 )
2022-08-13 12:16:44 -07:00
Quentin McGaw
8db2944749
chore(settings): OpenVPN ClientCrt -> Cert
2022-08-13 18:59:07 +00:00
Quentin McGaw
5986432a22
chore(settings): OpenVPN ClientKey -> Key
2022-08-13 18:58:09 +00:00
Quentin McGaw
652daec509
Change: OPENVPN_CLIENTKEY -> OPENVPN_KEY
...
- No breaking change since this was undocumented
2022-08-13 18:56:37 +00:00
Quentin McGaw
f94d4b761a
Change: OPENVPN_CLIENTCRT -> OPENVPN_CERT
...
- No breaking change since this was undocumented
2022-08-13 18:55:29 +00:00
Quentin McGaw
1ab74e6bb3
chore: OpenVPN user and password as nullable
...
- Username and password can be the empty string for custom provider
2022-08-13 18:01:26 +00:00
dependabot[bot]
8e101d49a1
Chore(deps): Bump github.com/breml/rootcerts from 0.2.4 to 0.2.6 ( #1058 )
2022-08-12 17:01:45 -07:00
Quentin McGaw
7c08e8f607
chore(lint): add asasalint and usestdlibvars
2022-08-12 23:54:20 +00:00
Quentin McGaw
a4caa61c47
chore(lint): add nosnakecase linter
2022-08-12 23:53:47 +00:00
Quentin McGaw
ebae167815
chore(lint): golangci-lint v1.47.2 -> v1.48.0
...
- Remove deprecated `ifshort` linter
- Fix bad `//nolint:gomnd` comment
2022-08-12 23:52:30 +00:00
Quentin McGaw
a6f00f2fb2
chore(lint): upgrade golangci-lint to v1.47.2
...
- Fix Slowloris attacks on HTTP servers
- Force set default of 5 minutes for pprof read timeout
- Change `ShutdownTimeout` to time.Duration since it cannot be set to 0
2022-08-01 21:09:16 +00:00
dependabot[bot]
877617cc53
Chore(deps): Bump docker/build-push-action from 3.0.0 to 3.1.0 ( #1073 )
2022-07-23 20:08:34 -07:00
Quentin McGaw
2800588ef7
feat(expressvpn): update servers data
2022-07-18 18:01:08 +00:00
Quentin McGaw
f5efa42aaf
chore(lint): remove some linters
...
- remove duplicate `predeclared`
- remove commented `varnamelen` and `wrapcheck`
2022-07-17 23:11:42 +00:00
Hey
10bd0e1505
fix(readme): typo sercice to service ( #1067 )
2022-07-15 19:52:04 -04:00
Quentin McGaw
a4c80b3045
chore(ci): add mocks check
...
- Check for missing `//go:generate` comments
- Check for outdated mocks
2022-07-04 00:39:01 +00:00
Quentin McGaw
dbb71bd695
chore(mocks): use common mocks for ivpn and ipvanish
2022-07-04 00:34:48 +00:00
dependabot[bot]
a544f6e604
Chore(deps): Bump github.com/breml/rootcerts from 0.2.3 to 0.2.4 ( #1033 )
2022-07-03 16:50:38 -07:00
dependabot[bot]
a18e026b70
Chore(deps): Bump github.com/stretchr/testify from 1.7.2 to 1.7.5 ( #1042 )
2022-07-03 16:50:27 -07:00
Quentin McGaw
0413a0a1ab
chore(ci): rework docker hub description workflow
...
- Run only on base repository
- Rename job from `dockerHubDescription` to `docker-hub-description`
- Limit permissions of job to read only
- Remove unneeded names for steps
2022-07-03 14:31:49 +00:00
Quentin McGaw
cb6e9cb761
docs(readme): add links to add a provider
2022-07-03 13:39:47 +00:00
Quentin McGaw
420ae40901
feat(dev): Add provider example package
2022-07-02 21:04:57 +00:00
Quentin McGaw
34e67f9f99
chore(markdown): alphabetically sorted headers
2022-07-02 20:58:43 +00:00
Quentin McGaw
18c53aa597
docs(readme): simplify heading description
2022-07-02 20:58:43 +00:00
Quentin McGaw
6d2f9b9508
chore(updater): check servers have minimal information
2022-07-02 20:58:43 +00:00
Quentin McGaw
6826b05d58
chore(all): remove all package comments
2022-07-02 20:58:43 +00:00
barino28
9f959dbc6a
fix(expressvpn): OpenVPN fragment option and add ciphers ( #1047 )
...
* Fragment was defined in `OpenVPNProviderSettings` but was not written to the OpenVPN configuration file.
* Added two additional ciphers to the configuration for ExpressVPN
Authored-by: barino86 <barino@mac.com >
2022-06-29 05:23:16 -07:00
Quentin McGaw
87dbae5745
hotfix(fastestvpn): re-fix Openvpn configuration
...
- add `auth sha256` option
- remove `remote-cert-tls server` option
2022-06-26 21:29:05 +00:00
Quentin McGaw
037f19e852
hotfix(publicip): revert back JSON to public_ip
2022-06-26 18:08:11 +00:00
Quentin McGaw
62ad8bcd8f
fix(pia): set port forward file owned with PUID and PGID
2022-06-25 15:44:29 +00:00
Quentin McGaw
2805c3388a
hotfix(fastestvpn): add remote-cert-tls server
2022-06-25 15:16:38 +00:00
Quentin McGaw
535297dcf5
chore: extract.PEM replaces PEM parse functions
2022-06-24 23:10:00 +00:00
Quentin McGaw
b3b6933ef4
chore(lint): review exclude rules
2022-06-20 13:36:24 +00:00
Quentin McGaw
edbbcc041a
fix(protonvpn): set free field for free servers
2022-06-18 18:30:27 +00:00
Quentin McGaw
d430ebc34f
feat(protonvpn): update servers data
2022-06-18 18:30:05 +00:00
Quentin McGaw
0e9abc6e1d
chore(tests): modify JSON tests to not need all providers listed
2022-06-18 15:08:59 +00:00
Quentin McGaw
0c0dd10766
chore(dev): add VSCode launch.json
...
- Credits to @Rohaq
2022-06-18 00:17:09 +00:00
Quentin McGaw
75454be6b6
fix(pprof): override operation in global settings
2022-06-18 00:16:14 +00:00
Quentin McGaw
4952e3b74e
docs(bug): fix render of logs to be plain text
2022-06-18 00:15:29 +00:00
Quentin McGaw
04b34a266c
chore(deps): update go4.org/unsafe/assume-no-moving-gc
...
- Allow development on Go 1.18 without `ASSUME_NO_MOVING_GC_UNSAFE_RISK_IT_WITH=go1.18`
2022-06-17 23:59:39 +00:00
Quentin McGaw
89b6a031b0
chore(vpn): add check for empty public key for Wireguard
2022-06-12 15:59:48 +00:00
Quentin McGaw
d4c6a9bdb5
feat(storage): log time difference as a friendly duration
2022-06-12 15:35:04 +00:00
Quentin McGaw
cdc29d48b7
chore(ci): build PR images as pr-N ( #1026 )
...
- Remove event validity check (unneeded and was buggy)
- Remove `branch` metadata trigger since it conflicts with the PR trigger
2022-06-12 08:33:16 -07:00
dependabot[bot]
f4b464a7cf
Chore(deps): Bump github.com/stretchr/testify from 1.7.1 to 1.7.2 ( #1016 )
2022-06-12 08:31:53 -07:00
dependabot[bot]
76690d3add
Chore(deps): Bump crazy-max/ghaction-github-labeler from 3 to 4 ( #1007 )
2022-06-12 07:07:25 -07:00
Quentin McGaw
9898387579
feat(updater): Configurable min ratio
...
- `UPDATER_MIN_RATIO` variable
- `-minratio` flag for CLI operation
2022-06-12 14:03:00 +00:00
Quentin McGaw
1ea15a1a13
chore(protonvpn): document to remove SERVER_NAMES
2022-06-12 01:58:46 +00:00
Quentin McGaw
bda6707685
chore(all): remove unexported interfaces
2022-06-12 01:15:14 +00:00
Quentin McGaw
89277828ac
chore(publicip): internal/publicip/ipinfo package
2022-06-12 01:11:22 +00:00
Quentin McGaw
83b4a3fe55
chore(publicip): refactoring
...
- Exported `Fetcher` interface
- Inject `Fetcher` to publicip loop and updaters
- Get public IP and information at the same time
- Only query ipinfo.io
- Make `MultiInfo` part of the `Fetch` object
2022-06-12 00:46:08 +00:00
Quentin McGaw
45c9e780c0
chore(updater): rename presolver to parallelResolver
2022-06-11 20:12:35 +00:00
Quentin McGaw
33b8f5f596
chore(settings): updater DNS address as string
2022-06-11 20:11:20 +00:00
Quentin McGaw
447a7c9891
updater: refactoring and set DNS server correctly
...
- Fix CLI operation not setting DNS server
- Fix periodic operation not setting DNS server
- Set DNS address for resolution once at start for both CLI and periodic operation
- Inject resolver to each provider instead of creating it within
- Use resolver settings on every call to `.Resolve` method, instead of passing it to constructor
- Move out minServers check from resolver
2022-06-11 19:47:46 +00:00
Quentin McGaw
1bd355ab96
chore(lint): add ireturn linter
2022-06-11 01:34:45 +00:00
Quentin McGaw
578ef768ab
chore(all): return concrete types, accept interfaces
...
- Remove exported interfaces unused locally
- Define interfaces to accept arguments
- Return concrete types, not interfaces
2022-06-11 01:34:30 +00:00
Quentin McGaw
0378fe4a7b
chore(all): Providers containing all provider objects
...
- Share the same providers for updater and vpn
- Initialise all providers at start
- Get from `Providers` instead of constructing on every run
2022-06-10 00:47:56 +00:00
Quentin McGaw
ebd94723c1
chore(updater): incorporate FetchServers method in Provider interface
...
- Each provider interface can now fetch updated servers data
- Rename each provider updater subpackage name to `updater`
- Updater constructor does not take a settings struct
- Updater update method takes in a slice of provider strings
2022-06-09 23:47:41 +00:00
Quentin McGaw
11b55abff3
fix(protonvpn): remove duplicate entry IPs
2022-06-09 22:11:40 +00:00
Quentin McGaw
7f32b43895
fix(pia): load custom PIA certificate for API
2022-06-09 17:11:24 +00:00
Quentin McGaw
899f10c35e
chore(resolver): export structs instead of interfaces
2022-06-09 17:11:24 +00:00
Quentin McGaw
415cb7a945
chore(updater): create resolver in provider updater
...
- Pass min servers to resolve call
- Set settings when constructing resolver
- Construct resolver in each provider updater
- No more common resolver for all providers
2022-06-09 17:11:24 +00:00
Quentin McGaw
e37f557cd5
chore(provider): add Name() method per provider
2022-06-09 17:11:24 +00:00
Quentin McGaw
79f213d97a
chore(updater): rename GetServers to FetchServers
2022-06-09 17:11:24 +00:00
Quentin McGaw
11e1c9f9bb
feat(protonvpn): update hardcoded servers data
2022-06-09 16:41:04 +00:00
Quentin McGaw
3ff3816d77
fix(pia): restrict custom port choice
2022-06-09 16:36:59 +00:00
Quentin McGaw
c0bdae8baf
fix(protonvpn): restrict custom port choice
2022-06-09 16:36:17 +00:00
Quentin McGaw
46e6bd16c9
fix(pia): remove duplicate log of pf data expiration
2022-06-09 16:34:28 +00:00
Quentin McGaw
5359257c65
hotfix(pia): port forwarding to use server name
2022-06-06 18:09:21 +00:00
Quentin McGaw
5e659dc5b3
feat(storage): add keep field for servers
2022-06-06 03:04:58 +00:00
Quentin McGaw
85e9d7d522
docs(maintenance): update document
2022-06-06 02:58:58 +00:00
Quentin McGaw
b71c8e58f4
fix(vpn): do not close wait error channel on consumer side
2022-06-06 02:56:40 +00:00
Quentin McGaw
e998372ce2
feat(ipvanish): update servers data and remove duplicates
2022-06-06 02:24:58 +00:00
Quentin McGaw
1216326867
chore(storage): common sorting for all servers
2022-06-06 02:24:54 +00:00
Quentin McGaw
f53f0cfffd
feat(surfshark): update servers data
2022-06-06 01:41:00 +00:00
Quentin McGaw
f5f65d534a
fix(ci): publish job trigger fixed
2022-06-05 16:01:40 +00:00
Quentin McGaw
684cef6eab
hotfix(openvpn): openvpn udp specific lines added
2022-06-05 15:48:14 +00:00
Quentin McGaw
b4f6ae030d
hotfix(purevpn): add missing key-direction 1
2022-06-05 15:44:33 +00:00
Quentin McGaw
e95c94294f
feat(pia): update servers data
2022-06-05 15:20:03 +00:00
Quentin McGaw
36b504609b
chore(all): memory and thread safe storage
...
- settings: get filter choices from storage for settings validation
- updater: update servers to the storage
- storage: minimal deep copying and data duplication
- storage: add merged servers mutex for thread safety
- connection: filter servers in storage
- formatter: format servers to Markdown in storage
- PIA: get server by name from storage directly
- Updater: get servers count from storage directly
- Updater: equality check done in storage, fix #882
2022-06-05 15:19:16 +00:00
Quentin McGaw
1e6b4ed5eb
chore(provider): rename test functions to Test_Provider_GetConnection
2022-06-05 14:59:47 +00:00
Quentin McGaw
0549326dfb
chore(updater): tiny code changes
...
- Remove unneeded ctx error check in cyberghost updating code
- Move global scope caser to function local scope
- Return error if updating a single provider in `UpdateServers`
- Add comments on different error paths in `UpdateServers`
2022-06-04 13:50:29 +00:00
Quentin McGaw
87c6ebe1c5
feat(purevpn): update servers data
2022-05-31 14:17:33 +00:00
Quentin McGaw
f0afac243b
feat(privatevpn): update servers data
2022-05-31 14:16:41 +00:00
dependabot[bot]
53472077f4
Chore(deps): Bump docker/setup-buildx-action from 1 to 2 ( #977 )
2022-05-29 11:31:09 -07:00
dependabot[bot]
55afdf33e1
Chore(deps): Bump docker/setup-qemu-action from 1 to 2 ( #978 )
2022-05-29 11:28:05 -07:00
dependabot[bot]
d3c1f9263c
Chore(deps): Bump docker/build-push-action from 2.10.0 to 3.0.0 ( #979 )
2022-05-29 11:27:55 -07:00
dependabot[bot]
6341d1dda6
Chore(deps): Bump docker/metadata-action from 3 to 4 ( #980 )
2022-05-29 11:27:44 -07:00
dependabot[bot]
e62e1883c2
Chore(deps): Bump docker/login-action from 1 to 2 ( #981 )
2022-05-29 11:27:33 -07:00
Quentin McGaw
501b98dbd3
chore(ci): skip workflow for required verify job
2022-05-29 17:33:35 +00:00
Derzsi Dániel
029fd1da1f
feat(docker): upgrade Alpine from 3.15 to 3.16 ( #1005 )
2022-05-29 10:30:10 -07:00
Quentin McGaw
fd0267efef
chore(ci): merge codeql job in CI workflow
2022-05-29 17:23:55 +00:00
Quentin McGaw
4414366370
chore(ci): restrict permissions to read actions+contents
2022-05-29 17:23:55 +00:00
Quentin McGaw
08553bc90b
chore(ci): only publish image for qdm12/gluetun
2022-05-29 17:23:54 +00:00
Quentin McGaw
6f850c4ad4
chore(ci): merge dependabot and fork workflows in ci workflow
2022-05-29 17:23:48 +00:00
Quentin McGaw
8e1316bd8a
chore(storage): minor refactoring
...
- Unexport `SyncServers`
- Re-generate mock file
- Remove single use function
2022-05-28 22:51:19 +00:00
Quentin McGaw
b345368257
hotfix(storage): JSON provider versioning safety
2022-05-28 22:44:14 +00:00
Quentin McGaw
90dd3b1b5c
chore(storage): only pass hardcoded versions to read file
2022-05-28 22:36:16 +00:00
Quentin McGaw
22455ac76f
chore(updater): shared not enough servers error
2022-05-28 22:02:18 +00:00
Quentin McGaw
eb18eaf0a9
fix(wireguard): continue on ipv6 route add permission denial
2022-05-28 21:06:21 +00:00
Quentin McGaw
90c6c8485b
chore(updater): common GetServers signature
...
- Log warnings when running outside of CLI mode
- Remove updater CLI bool setting
- Warnings are logged in updating functions
2022-05-28 20:58:50 +00:00
Quentin McGaw
381089ebdf
chore(storage): rename InfoErrorer to Infoer (bad name)
2022-05-28 16:05:19 +00:00
Quentin McGaw
292813831d
chore(updater): internal/updater/loop subpackage
...
- Do not export updater interface
- Export updater struct
- Define local interfaces where needed
- More restrictive updater loop interface in http control server
- Inject `Updater` into updater loop as an interface
2022-05-28 16:03:59 +00:00
Quentin McGaw
991d75a1d0
chore(provider): rename all BuildConf to OpenVPNConfig
2022-05-27 22:04:14 +00:00
Quentin McGaw
d9dfb81cb4
feat(perfect privacy): update servers data
2022-05-27 21:56:52 +00:00
Quentin McGaw
67a9cacb61
hotfix(custom): allow empty servers data
2022-05-27 21:47:41 +00:00
Quentin McGaw
a91eb95456
chore(internal/provider): rename all structs to Provider
2022-05-27 18:05:04 +00:00
Quentin McGaw
a295269518
hotfix(formatter): cyberghost not forced as format
2022-05-27 17:50:14 +00:00
Quentin McGaw
42904b6749
chore(all): move sub-packages to internal/provider
2022-05-27 17:48:51 +00:00
Quentin McGaw
364f9de756
feat(env): clean env variable values
...
- Remove surrounding spaces
- Remove suffix new line characters
2022-05-27 17:27:54 +00:00
Quentin McGaw
7fd45cf17f
feat(wireguard): add debug logs for IPv6 detection
...
- To debug issue #998
- Enable with `LOG_LEVEL=debug`
2022-05-27 17:27:53 +00:00
Quentin McGaw
eb71cfb144
chore(deps): upgrade gopkg.in/yaml.v3 to v3.0.1
...
- fix 'vulnerability' alert on github
- no impact really since it's just used in unit tests
- checked with `go mod why gopkg.in/yaml.v3`
2022-05-27 17:27:53 +00:00
Quentin McGaw
48e469917e
chore(ci): remove tidy check
...
- Not really needed with newer `go install`
- Conflicts with Go 1.17 go.mod format
- Conflicts with manual indirect dependency upgrade
2022-05-27 17:27:53 +00:00
Quentin McGaw
4bcd8ee9f5
chore(constants): add internal/constants/openvpn package
2022-05-27 16:29:49 +00:00
Quentin McGaw
1b2bcf901a
chore(surfshark): add package internal/provider/surshark/server
...
- Merge `internal/models/location.go` and `internal/constants/surfshark.go` into `internal/provider/surfshark/servers/locationdata.go`
2022-05-27 16:29:48 +00:00
Quentin McGaw
306de8feda
chore(constants): add internal/provider/privateinternetacess/presets package
2022-05-27 16:29:48 +00:00
Quentin McGaw
e3696f1eea
chore(constants): inline Openvpn values in each provider
2022-05-27 16:29:47 +00:00
Quentin McGaw
7ff14a356c
chore(internal/providers): simplify OpenVPN config building
2022-05-27 16:29:47 +00:00
Quentin McGaw
4bde50fb3a
chore(all): use casers instead of strings.Title
...
- Add `golang.org/x/text` dependency
- Update code to use `cases.Title(language.English)`
2022-05-27 16:29:41 +00:00
Quentin McGaw
bd0868d764
chore(all): provider to servers map in allServers
...
- Simplify formatting CLI
- Simplify updater code
- Simplify filter choices for config validation
- Simplify all servers deep copying
- Custom JSON marshaling methods for `AllServers`
- Simplify provider constructor switch
- Simplify storage merging
- Simplify storage reading and extraction
- Simplify updating code
2022-05-27 16:17:53 +00:00
Quentin McGaw
5ffe8555ba
chore(lint): upgrade golangci-lint from v1.44.2 to v1.46.2
...
- Add linter `execinquery`
- Add linter `nosprintfhostport`
2022-05-27 00:52:25 +00:00
Quentin McGaw
78ccbb21cd
change(servers.json): change provider names
...
- From `pia` to `private internet access`
- From `perfectprivacy` to `perfect privacy`
- From `vpnunlimited` to `vpn unlimited`
- This is done to match string constants in the code for another refactor
- Reset each of these providers servers version to `1`.
2022-05-27 00:47:58 +00:00
Quentin McGaw
92dbe1ebad
chore(cli): refactor FormatServers to use provider strings
2022-05-08 19:05:36 +00:00
Quentin McGaw
2eec60cdd2
chore(custom): validate Openvpn file earlier
2022-05-07 19:33:21 +00:00
Quentin McGaw
da8c104ebd
chore(internal/provider/utils): unexport functions
2022-05-07 19:33:12 +00:00
Quentin McGaw
0ef7b66047
chore(internal/provider): GetConnection test
2022-05-07 19:33:05 +00:00
Quentin McGaw
e32d251cc1
hotfix(windscribe): OpenVPN certificate validation
2022-05-07 07:05:24 +00:00
Quentin McGaw
9dd5e7bf1d
fix: PUID and PGID as 32 bit unsigned integers
2022-05-01 16:29:56 +00:00
Quentin McGaw
b6de6035f6
hotfix(nordvpn): use aes-256-cbc before GCM
2022-04-28 13:47:24 +00:00
Quentin McGaw
88ccaf0b83
feat(torguard): update servers data
2022-04-26 11:01:42 +00:00
Quentin McGaw
52c8bc075f
feat(nordvpn): update servers data
2022-04-26 11:01:05 +00:00
Quentin McGaw
2537cd5271
fix(port-forwarding): loop exit from vpn loop
2022-04-25 08:31:32 +00:00
Quentin McGaw
db91625de4
fix(pia): port forwarding certificate
...
- Do not use custom PIA certificate
- Only use OS certificates
- Update unit test
2022-04-25 08:31:27 +00:00
Quentin McGaw
df78386fbe
chore(ci): add codeql analysis
2022-04-23 12:30:15 -04:00
Quentin McGaw
a1d70f740a
fix(nordvpn): allow aes-256-gcm for Openvpn 2.4
2022-04-23 12:53:24 +00:00
Quentin McGaw
187f42277a
fix(pia): hide escaped url query values
2022-04-23 11:21:08 +00:00
Quentin McGaw
e1f89bb569
fix(health): HEALTH_VPN_DURATION_ADDITION
2022-04-23 11:09:24 +00:00
Quentin McGaw
1d94f8ab2b
chore(storage): remove unneeded VPN default
2022-04-23 11:09:04 +00:00
Quentin McGaw
045ecabb78
chore(updater): set vpn field for all providers
...
- Bump servers model versions for all providers except mullvad, ivpn, windscribe
- Do not leave `vpn` JSON field empty for any server
2022-04-23 11:08:59 +00:00
Quentin McGaw
e6c3cb078a
chore(storage): tcp and udp fields for all servers
...
- Updater code sets UDP and TCP compatibility for all providers
- Increase servers.json model versions for affected providers (mullvad, windscribe, privado, protonvpn, privatevpn)
- Remove retro-compatibility server defaults
- Update all affected providers servers data (mullvad, windscribe, privado, protonvpn, privatevpn)
2022-04-23 10:23:41 +00:00
Quentin McGaw
afa51b3ff6
hotfix(storage): servers json versions updated
2022-04-22 21:12:27 +00:00
Quentin McGaw
f9c80b2285
hotfix(privatevpn): add missing IP addresses
2022-04-22 21:03:38 +00:00
Quentin McGaw
fc5cf44b2c
fix(firewall): iptables detection improved
...
1. Try setting a dummy output rule
2. Remove the dummy output rule
3. Get the INPUT table policy
4. Set the INPUT table policy to its existing policy
2022-04-22 17:23:57 +00:00
Quentin McGaw
0c0f1663b1
chore: simplify provider GetConnection
2022-04-20 15:16:55 +00:00
Quentin McGaw
306d8494d6
hotfix(servers): assume UDP+TCP if not precised
2022-04-19 11:52:05 +00:00
Quentin McGaw
f5c00c3e2d
chore(filter): common filter for all providers
2022-04-18 17:08:31 +00:00
Quentin McGaw
ac9571c6b2
chore(storage): runtime defaults on servers data
...
- `openvpn` default VPN protocol for servers
- True UDP if VPN protocol is Wireguard
2022-04-18 12:08:26 +00:00
Quentin McGaw
934fafb64b
chore(constants): internal/constants/vpn package
2022-04-18 11:14:07 +00:00
Quentin McGaw
d51514015f
chore(storage): simplify reading of server file
2022-04-18 11:14:02 +00:00
Quentin McGaw
a9cfd16d53
chore(validation): uniformize server filters build
2022-04-18 07:27:00 +00:00
Quentin McGaw
1a6f26fa3b
feat(nordvpn): remove OpenVPN compression
2022-04-18 07:26:53 +00:00
Quentin McGaw
0dd723b29f
chore(provider): add safety connection count check
2022-04-17 16:23:53 +00:00
Quentin McGaw
7ad6fc8e73
docs(maintenance): update document
2022-04-17 16:21:21 +00:00
Quentin McGaw
31c7e6362b
chore(devcontainer): multiple changes and fixes
...
- Fix windows script sourcing
- Remove image name to avoid conflicts
- Bind mount normally without `:z`
- Install `htop`
2022-04-17 16:21:21 +00:00
Quentin McGaw
072b42d867
chore(v4): add v4 comments about server names
2022-04-17 16:21:21 +00:00
Quentin McGaw
5d66c193aa
chore(models): common Server & Servers for all providers ( #943 )
2022-04-17 16:21:19 +00:00
Quentin McGaw
aa729515b9
chore(models): streamline all server models IPs ( #942 )
...
- Use `IPs []net.IP` for all server models
- Use `ips` JSON field for all server models
- Merge IPv4 and IPv6 addresses together for Mullvad
2022-04-17 16:18:34 +00:00
Quentin McGaw
54b7e23974
chore(constants): internal/constants/providers
...
- New package to avoid package import cycles
2022-04-16 19:30:26 +00:00
Quentin McGaw
ad80e0c1ab
feat(protonvpn): update servers data
2022-04-16 17:52:53 +00:00
Quentin McGaw
5d7b278957
change(protonvpn): change server name JSON field from name to server_name
2022-04-16 17:51:15 +00:00
dependabot[bot]
678caaf6a0
Chore(deps): Bump docker/build-push-action from 2.9.0 to 2.10.0 ( #893 )
2022-04-15 12:23:38 -04:00
dependabot[bot]
7228cd7b12
Chore(deps): Bump github.com/breml/rootcerts from 0.2.2 to 0.2.3 ( #926 )
2022-04-15 12:22:55 -04:00
Martin Bjeldbak Madsen
7b598a3534
docs(readme): remove announcement ( #938 )
2022-04-15 12:22:30 -04:00
Quentin McGaw
9cdc9e9153
feat(pia): server data updated
2022-04-11 21:29:16 +00:00
Quentin McGaw
71ab0416b0
fix(iptables): use OUTPUT chain for test instead of INPUT
2022-04-11 21:05:12 +00:00
Quentin McGaw
10a13bc8a7
fix(health): change default target address to cloudflare.com:443
2022-04-11 20:21:15 +00:00
Mirco Ianese
be386a8e33
feat(fastestvpn): update servers data ( #923 )
2022-04-02 13:31:00 -04:00
Quentin McGaw
c33fb8bb97
fix(env): OPENVPN_FLAGS functionality
2022-03-31 20:49:01 +00:00
Quentin McGaw
20f20f051b
fix(firewall): iptables support detection
...
- Add dummy rule to `INPUT` to test for iptables support
- This may resolve #896
2022-03-30 09:03:25 +00:00
Quentin McGaw
179274ade0
feat(log): use github.com/qdm12/log library
2022-03-30 09:03:20 +00:00
Quentin McGaw
84607e332b
chore(server): use httpserver package for control server
2022-03-30 09:00:42 +00:00
Quentin McGaw
8186ef2342
chore(httpserver): remove name field
2022-03-30 09:00:36 +00:00
Mirco Ianese
19b184adba
fix(purevpn): update servers Zip file download URL ( #915 )
...
- Fix PureVPN zip file download link
- Update all PureVPN server information
2022-03-28 15:47:40 -04:00
Quentin McGaw
a97fd35d6e
fix(ci): openvpn 2.4.12-r0
2022-03-28 17:32:56 +00:00
dependabot[bot]
470ca020e2
Chore(deps): Bump github.com/stretchr/testify from 1.7.0 to 1.7.1 ( #897 )
...
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify ) from 1.7.0 to 1.7.1.
- [Release notes](https://github.com/stretchr/testify/releases )
- [Commits](https://github.com/stretchr/testify/compare/v1.7.0...v1.7.1 )
---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-28 13:23:08 -04:00
dependabot[bot]
f64d7c4343
Chore(deps): Bump peter-evans/dockerhub-description from 2 to 3 ( #908 )
...
Bumps [peter-evans/dockerhub-description](https://github.com/peter-evans/dockerhub-description ) from 2 to 3.
- [Release notes](https://github.com/peter-evans/dockerhub-description/releases )
- [Commits](https://github.com/peter-evans/dockerhub-description/compare/v2...v3 )
---
updated-dependencies:
- dependency-name: peter-evans/dockerhub-description
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-28 13:22:58 -04:00
Quentin McGaw
c6f68a64e6
fix(health): use TCP dialing instead of ping
...
- `HEALTH_TARGET_ADDRESS` to replace `HEALTH_ADDRESS_TO_PING`
- Remove `github.com/go-ping/ping` dependency
- Dial TCP the target address, appending `:443` if port is not set
2022-03-22 08:50:56 +00:00
Quentin McGaw
5aaa122460
feat(protonvpn): update server information
2022-03-17 19:25:33 +00:00
Quentin McGaw
de169c027f
feat(privatevpn): update server information
2022-03-16 10:21:49 +00:00
Quentin McGaw
314c9663a2
fix(privatevpn): update servers without hostname
2022-03-16 10:21:42 +00:00
Quentin McGaw
21995eb3e3
feat(privado): update server information
2022-03-16 10:06:10 +00:00
Quentin McGaw
6fc700bd62
feat(mullvad): update server information
2022-03-16 10:05:01 +00:00
Quentin McGaw
acdbe2163e
chore(protonvpn): remove unused exit IPs field
2022-03-16 09:44:57 +00:00
Quentin McGaw
c3a231e0ab
chore(storage): omit empty fields in servers.json
2022-03-16 09:43:47 +00:00
Quentin McGaw
984e143336
feat(shutdown): log out OS signal name
2022-03-15 08:16:08 +00:00
Quentin McGaw
e2ba2f82c0
feat(routing): add IPv6 inbound routing
2022-03-13 19:36:45 +00:00
Quentin McGaw
ace5e97e68
fix(routing): only set routes for IPv4 default routes
2022-03-13 14:40:17 +00:00
Quentin McGaw
82d42297e8
chore(routing): remove unused LocalSubnetGetter
2022-03-13 13:32:19 +00:00
Quentin McGaw
f99d5e8656
feat(firewall): use all default routes
...
- Accept output traffic from all default routes through VPN interface
- Accept output from all default routes to outbound subnets
- Accept all input traffic on ports for all default routes
- Add IP rules for all default routes
2022-03-13 13:26:33 +00:00
dependabot[bot]
0795008c23
Chore(deps): Bump docker/build-push-action from 2.8.0 to 2.9.0 ( #832 )
...
Bumps [docker/build-push-action](https://github.com/docker/build-push-action ) from 2.8.0 to 2.9.0.
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/v2.8.0...v2.9.0 )
---
updated-dependencies:
- dependency-name: docker/build-push-action
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-09 16:09:51 -05:00
dependabot[bot]
c975a86a70
Chore(deps): Bump actions/checkout from 2.4.0 to 3 ( #870 )
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 2.4.0 to 3.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v2.4.0...v3 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-09 16:09:28 -05:00
Quentin McGaw
69eee345d2
feat(ivpn): allow no password for account IDs
...
- When matching `i-xxxx-xxxx-xxxx` username
- When matching `ivpn-xxxx-xxxx-xxxx` username
2022-03-09 21:01:25 +00:00
Quentin McGaw
48afc05bcb
docs(readme): re-add /dev/net/tun since some OS need it
2022-03-09 11:20:05 +00:00
Quentin McGaw
39a62f5db7
feat(firewall): improve error message when NET_ADMIN is missing
2022-03-09 11:16:10 +00:00
Quentin McGaw
006b218ade
feat(firewall): auto-detect which iptables
...
- On `iptables` error, try to use `iptables-nft`
- On `ip6tables` error, try to use `ip6tables-nft`
2022-02-26 22:55:22 +00:00
Quentin McGaw
2b09b9c290
fix(ci): docker metadata image tags
...
- Move metata as top step in publish workflow
- Simplify `v0.x.x` check
- Dynamically determine base branch
2022-02-26 16:15:31 +00:00
Quentin McGaw
c42865b3d9
chore(ci): merge misspell workflow in ci workflow
2022-02-26 14:01:15 +00:00
Quentin McGaw
836f021a87
chore(lint): add containedctx, decorder and errchkjson
2022-02-26 13:49:53 +00:00
Quentin McGaw
26b049b361
fix(ci): docker/metadata-action logic
2022-02-26 13:39:35 +00:00
Quentin McGaw
e75627365d
chore(lint): upgrade golangci-lint to v1.44.2
2022-02-20 21:26:38 +00:00
Quentin McGaw
ae0334c930
chore(sources): wrap error with source string
2022-02-20 03:04:16 +00:00
Quentin McGaw
920ad8b54b
chore(errors): review all errors in codebase
2022-02-20 02:58:16 +00:00
Quentin McGaw
ac4a4f83fc
chore(settings): split openvpn validation in functions
2022-02-20 00:08:55 +00:00
Quentin McGaw
a4652c2d32
feat(validation): reject server filters ignored for some VPN providers
2022-02-18 14:06:13 +00:00
Quentin McGaw
c40d4e075e
chore(validation): move functions from constants
...
- Move validation functions from `internal/constants` to `internal/configuration/settings/validation`
- Concatenate all OpenVPN constants in `internal/constants/openvpn.go`
2022-02-13 01:21:25 +00:00
Quentin McGaw
95967136d3
feat(firewall): faster setup 75ms to 10ms
2022-02-09 13:41:38 +00:00
Quentin McGaw (desktop)
576c1ee0c5
fix(env): accept uppercase SHADOWSOCKS_CIPHER
2022-02-09 12:33:47 +00:00
Quentin McGaw (desktop)
5d4032edf4
fix(env): accept uppercase OPENVPN_PROTOCOL
2022-02-09 12:33:24 +00:00
Quentin McGaw (desktop)
ff3f84f9fd
hotfix(env): OPENVPN_CIPHERS empty parsing
2022-02-06 22:58:23 +00:00
Quentin McGaw
2a19b68b9a
hotfix(env): fix parsing of unset server filters
2022-02-06 20:13:40 +00:00
Quentin McGaw
ed6c010aff
hotfix(env): fix BLOCK_SURVEILLANCE parsing
2022-02-06 20:06:58 +00:00
Quentin McGaw
783fb38e41
hotfix(env): allow empty VPN_ENDPOINT_IP
2022-02-06 20:02:45 +00:00
Quentin McGaw
fcab4ae3c6
chore(env): SERVER_NAMES variable
...
- With retro-compatibility with `SERVER_NAME`
2022-02-06 19:59:07 +00:00
Quentin McGaw
a69c456965
chore(env): SERVER_HOSTNAMES variable
...
- With retro-compatibility with `SERVER_HOSTNAME`
2022-02-06 19:59:07 +00:00
Quentin McGaw
0e6db2f1c5
chore(env): SERVER_REGIONS variable
...
- With retro-compatibility with `REGION`
2022-02-06 19:59:07 +00:00
Quentin McGaw
7aab18d197
chore(env): SERVER_CITIES variable
...
- With retro-compatibility with `CITY`
2022-02-06 19:59:07 +00:00
Quentin McGaw
d6b39e66d1
chore(env): SERVER_COUNTRIES variable
...
- With retro-compatibility with `COUNTRY`
2022-02-06 19:59:07 +00:00
Quentin McGaw
3f5c72d898
chore(env): simplify Cyberghost retro logic
2022-02-06 19:59:07 +00:00
Quentin McGaw
691ade794b
chore(env): PRIVATE_INTERNET_ACCESS_VPN_PORT_FORWARDING_STATUS_FILE
...
- With retro-compatibility with `PORT_FORWARDING_STATUS_FILE`
2022-02-06 19:59:07 +00:00
Quentin McGaw
1693c4ed8a
chore(env): PRIVATE_INTERNET_ACCESS_VPN_PORT_FORWARDING
...
- With retro-compatibility with `PORT_FORWARDING`
2022-02-06 19:59:07 +00:00
Quentin McGaw
ae9b3279c3
chore(env): PRIVATE_INTERNET_ACCESS_OPENVPN_ENCRYPTION_PRESET variable
...
- With retro-compatibility with `PIA_ENCRYPTION` and `ENCRYPTION`
2022-02-06 19:59:07 +00:00
Quentin McGaw
04956e45c7
chore(env): OPENVPN_CIPHERS variable
...
- With retro-compatibility with `OPENVPN_CIPHER`
2022-02-06 19:59:07 +00:00
Quentin McGaw
027664af7b
chore(env): VPN_SERVICE_PROVIDER variable
...
- With retro-compatibility with `VPNSP`
2022-02-06 19:59:07 +00:00
Quentin McGaw
f8d5f76bdf
chore(env): WIREGUARD_ADDRESSES variable
...
- With retro-compatibility with `WIREGUARD_ADDRESS`
2022-02-06 19:59:07 +00:00
Quentin McGaw
114f9be47f
chore(env): DNS_ADDRESS variable
...
- With retro-compatibility with `DNS_PLAINTEXT_ADDRESS`
2022-02-06 19:59:07 +00:00
Quentin McGaw
c73369e11c
chore(constants): remove and move constant paths
...
- Remove unused paths
- Move paths to inline constants if used only once
2022-02-06 19:59:07 +00:00
Quentin McGaw
5603e25542
chore(env): VPN_INTERFACE
...
- With retro-compatibility with `OPENVPN_INTERFACE`
- With retro-compatibility with `WIREGUARD_INTERFACE`
2022-02-06 19:59:07 +00:00
Quentin McGaw
0d8cb66d43
chore(env): getEnvWithRetro helper function
2022-02-06 19:59:07 +00:00
Quentin McGaw
e7e4cfca4c
fix(env): Retro-compatible precedence order for variables with defaults set in Dockerfile
...
- `BLOCK_NSA` has precedence over `BLOCK_SURVEILLANCE`
- `HEALTH_OPENVPN_DURATION_ADDITION` has precedence over `HEALTH_VPN_DURATION_ADDITION`
- `HEALTH_OPENVPN_DURATION_INITIAL` has precendence over `HEALTH_VPN_DURATION_INITIAL`
- Chain of precedence: `PROXY` > `TINYPROXY` > `HTTPPROXY`
- Chain of precedence: `PROXY_LOG_LEVEL` > `TINYPROXY_LOG` > `HTTPPROXY_LOG`
- `PROTOCOL` has precendence over `OPENVPN_PROTOCOL`
- `IP_STATUS_FILE` has precendence over `PUBLICIP_FILE`
- `SHADOWSOCKS_PORT` has precedence over `SHADOWSOCKS_LISTENING_ADDRESS`
- `SHADOWSOCKS_METHOD` has precedence over `SHADOWSOCKS_CIPHER`
2022-02-06 19:59:07 +00:00
Quentin McGaw
fd23f1a29b
chore(env): do not validate control server port
2022-02-06 19:59:07 +00:00
Quentin McGaw
57481e3dd7
fix(cyberghost): compat log if COUNTRY is empty
2022-02-06 19:59:07 +00:00
Quentin McGaw
53952b143f
fix(server): allow to bind on a random port
2022-02-06 19:59:07 +00:00
Quentin McGaw
e7b0f4c6be
feat(vpn): VPN_ENDPOINT_PORT
...
- Deprecate `OPENVPN_PORT`
- Deprecate `WIREGUARD_ENDPOINT_PORT`
2022-02-06 19:59:07 +00:00
Quentin McGaw
ea143c0c9a
feat(vpn): VPN_ENDPOINT_PORT
...
- Deprecate `OPENVPN_PORT`
- Deprecate `WIREGUARD_ENDPOINT_PORT`
2022-01-28 00:10:23 +00:00
Quentin McGaw
a951110461
feat(vpn): VPN_ENDPOINT_IP
...
- Deprecate `OPENVPN_TARGET_IP`
- Deprecate `WIREGUARD_ENDPOINT_IP`
2022-01-28 00:09:58 +00:00
Quentin McGaw
7a8f5f53d5
feat(openvpn): OPENVPN_PROCESS_USER and deprecates OPENVPN_ROOT
2022-01-27 23:34:19 +00:00
Quentin McGaw
1b585159d1
feat(server): HTTP_CONTROL_SERVER_PORT to HTTP_CONTROL_SERVER_ADDRESS
2022-01-27 23:15:08 +00:00
Quentin McGaw (desktop)
f3692cd47f
feat(mullvad): OWNED to OWNED_ONLY
2022-01-27 14:12:25 +00:00
Quentin McGaw (desktop)
15800fd4ff
feat(expressvpn): update built-in data
2022-01-27 13:01:08 +00:00
Quentin McGaw (desktop)
9fb085f361
hotfix(updater): do not default to custom
2022-01-27 12:57:27 +00:00
Quentin McGaw
1e3f878470
feat(updater): UPDATER_VPN_SERVICE_PROVIDERS
...
- Updater defaults to update the VPN provider in use if enabled
2022-01-26 22:41:06 +00:00
dependabot[bot]
bcf9bfa5d3
Chore(deps): Bump docker/build-push-action from 2.7.0 to 2.8.0 ( #801 )
...
Bumps [docker/build-push-action](https://github.com/docker/build-push-action ) from 2.7.0 to 2.8.0.
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/v2.7.0...v2.8.0 )
---
updated-dependencies:
- dependency-name: docker/build-push-action
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-26 17:35:50 -05:00
dependabot[bot]
56bdc1f0ae
Chore(deps): Bump github.com/breml/rootcerts from 0.2.1 to 0.2.2 ( #812 )
...
Bumps [github.com/breml/rootcerts](https://github.com/breml/rootcerts ) from 0.2.1 to 0.2.2.
- [Release notes](https://github.com/breml/rootcerts/releases )
- [Commits](https://github.com/breml/rootcerts/compare/v0.2.1...v0.2.2 )
---
updated-dependencies:
- dependency-name: github.com/breml/rootcerts
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-26 17:35:36 -05:00
Quentin McGaw
9de6428585
feat(pprof): add pprof HTTP server ( #807 )
...
- `PPROF_ENABLED=no`
- `PPROF_BLOCK_PROFILE_RATE=0`
- `PPROF_MUTEX_PROFILE_RATE=0`
- `PPROF_HTTP_SERVER_ADDRESS=":6060"`
2022-01-26 17:23:55 -05:00
Quentin McGaw (desktop)
55e609cbf4
fix(ci): release tag semver check
2022-01-23 15:13:26 +00:00
Kazi
f7319eb7a5
docs(docker-compose): add container_name commented line ( #806 )
2022-01-22 16:44:16 -08:00
Quentin McGaw (desktop)
2cff64fd80
fix(settings): allow DNS_UPDATE_PERIOD=0
2022-01-23 00:36:45 +00:00
Quentin McGaw (desktop)
fdc0db07e0
fix(updater): do not allow or set custom provider
2022-01-22 22:23:40 +00:00
dependabot[bot]
779cb18590
Chore(deps): Bump github.com/breml/rootcerts from 0.2.0 to 0.2.1 ( #769 )
...
Bumps [github.com/breml/rootcerts](https://github.com/breml/rootcerts ) from 0.2.0 to 0.2.1.
- [Release notes](https://github.com/breml/rootcerts/releases )
- [Commits](https://github.com/breml/rootcerts/compare/v0.2.0...v0.2.1 )
---
updated-dependencies:
- dependency-name: github.com/breml/rootcerts
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-22 13:34:43 -08:00
Quentin McGaw (desktop)
a1a1128d6d
fix(settings): trim trailing new line from files
2022-01-19 00:38:04 +00:00
Quentin McGaw (desktop)
7a50daca7c
feat(Dockerfile): entrypoint name to gluetun-entrypoint
2022-01-19 00:23:50 +00:00
Quentin McGaw
2ad23a09e8
fix(dockerfile): change SHADOWSOCKS_ADDRESS to SHADOWSOCKS_LISTENING_ADDRESS
2022-01-13 17:10:09 +00:00
Quentin McGaw
7e2ea4d74d
hotfix(custom): allow empty user and password for OpenVPN
2022-01-13 15:18:39 +00:00
Quentin McGaw
4bdce76041
hotfix(httpproxy): Retro-compat with old env vars
2022-01-12 14:40:19 +00:00
Quentin McGaw
6f5a78c22b
hotfix(settings): hostnames merging
2022-01-07 22:41:57 +00:00
Quentin McGaw
d6d529278e
feat(privado): update servers data
2022-01-07 22:32:04 +00:00
Quentin McGaw
a430d15ac5
feat(protonvpn): update built-in servers data
2022-01-07 22:29:45 +00:00
Quentin McGaw
b0c2d5f299
hotfix(updater): defaults for settings in CLI mode
2022-01-07 22:29:30 +00:00
Quentin McGaw
b32c01c11a
fix(custom): OPENVPN_CUSTOM_CONFIG
2022-01-07 15:12:49 +00:00
Quentin McGaw
05f42f0cb8
fix(httpproxy): HTTPPROXY_PORT variable key
2022-01-07 15:00:23 +00:00
Quentin McGaw
3efe3a524a
fix(control-server): listening port value
2022-01-07 09:42:15 +00:00
Quentin McGaw
8a788dfca5
fix(settings): read env for control server
2022-01-07 09:37:31 +00:00
Quentin McGaw
d5f1589ea1
fix(settings): VPNSP value read as lowercase
2022-01-07 09:23:45 +00:00
Quentin McGaw
c40c8413b5
fix(custom): settings parsing for custom VPNSP
2022-01-07 09:23:29 +00:00
Quentin McGaw
ae074dfb2b
hotfix(surfshark): REGION retro-compatibility
2022-01-06 19:16:14 +00:00
Quentin McGaw
2c8a8f6cd5
fix(settings): HTTP proxy default address
2022-01-06 17:47:06 +00:00
Quentin McGaw
4c7a09c228
fix(settings): change 2^16 to 65535
2022-01-06 17:42:10 +00:00
Quentin McGaw
ab39edc692
fix(settings): system ID max value
2022-01-06 16:48:06 +00:00
Quentin McGaw
6132cd9df2
fix(pia): encryption strong accepted
2022-01-06 15:04:40 +00:00
Quentin McGaw
7d824a5179
chore(settings): refactor settings processing ( #756 )
...
- Better settings tree structure logged using `qdm12/gotree`
- Read settings from environment variables, then files, then secret files
- Settings methods to default them, merge them and override them
- `DNS_PLAINTEXT_ADDRESS` default changed to `127.0.0.1` to use DoT. Warning added if set to something else.
- `HTTPPROXY_LISTENING_ADDRESS` instead of `HTTPPROXY_PORT` (with retro-compatibility)
2022-01-06 06:40:23 -05:00
Quentin McGaw
46738b2934
fix(hidemyass): REGION validation
2021-12-25 11:41:47 +00:00
Quentin McGaw
ca82fcb48e
feat(docker): upgrade Alpine to 3.15
2021-12-14 18:16:51 +00:00
Quentin McGaw
cfa3bb3b64
feat(internal/wireguard): opportunistic kernelspace
...
- Auto detect if kernelspace implementation is available
- Fallback to Go userspace implementation if kernel is not available
2021-12-14 11:03:36 +00:00
Quentin McGaw
b9a9319cb4
fix(ci): trigger CI on published releases
2021-11-27 12:09:33 +00:00
Quentin McGaw
77e4317135
chore(dev): fix devcontainer post create command
2021-11-27 12:01:07 +00:00
dependabot[bot]
b10d97e53a
Chore(deps): Bump github.com/breml/rootcerts from 0.1.1 to 0.2.0 ( #722 )
...
Bumps [github.com/breml/rootcerts](https://github.com/breml/rootcerts ) from 0.1.1 to 0.2.0.
- [Release notes](https://github.com/breml/rootcerts/releases )
- [Commits](https://github.com/breml/rootcerts/compare/v0.1.1...v0.2.0 )
---
updated-dependencies:
- dependency-name: github.com/breml/rootcerts
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-27 06:58:32 -05:00
dependabot[bot]
648a4c04d7
Build(deps): Bump actions/checkout from 2.3.4 to 2.4.0 ( #705 )
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 2.3.4 to 2.4.0.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v2.3.4...v2.4.0 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-27 06:58:16 -05:00
Quentin McGaw
3ca674dca7
feat(windscribe): update server information
2021-11-18 22:00:05 +00:00
Quentin McGaw
fa97fd496e
feat(torguard): update server information
2021-11-18 09:35:30 +00:00
Quentin McGaw
c76a7ee8da
chore(dot): add error description for update files failure
2021-11-18 08:12:07 +00:00
Quentin McGaw
80f6b78332
chore(config): fix bad error wrapping
2021-11-17 22:32:33 +00:00
Quentin McGaw
8dc54a7c44
feat(privatevpn): support OPENVPN_PORT
2021-11-17 22:32:18 +00:00
Quentin McGaw
8f080c537b
fix(privatevpn): openvpn configuration values
2021-11-17 22:26:18 +00:00
Quentin McGaw
427cf86f44
chore(ci) disable snyk analysis for false positive
2021-11-12 23:39:01 +00:00
Quentin McGaw
2d244c08e7
Fix: 2 low vulnerability busybox issues
2021-11-12 23:04:42 +00:00
Quentin McGaw
82c0f523aa
fix: openvpn at /usr/sbin/openvpn2.5
...
- Fix operation on QNAP devices
- Refer to #157
2021-11-12 22:48:19 +00:00
Quentin McGaw
c07a0b0ada
chore(lint): add bidichk, ifshort, nilnil and tenv
2021-11-08 22:41:20 +00:00
Quentin McGaw
e4c306c0ee
chore(linter): update golangci-lint to v1.43.0
2021-11-07 21:26:31 +00:00
Quentin McGaw
6ffb94f819
fix(updater): cli error message
2021-11-07 21:25:10 +00:00
Quentin McGaw
142238e8b7
feat(protonvpn): update built-in servers data
2021-11-07 21:24:57 +00:00
Quentin McGaw (desktop)
678e23c7d6
Change: run OpenVPN as root to clean routes on exit
2021-11-01 22:51:03 +00:00
Quentin McGaw (desktop)
0abcebe1d8
Feat: update NordVPN server information
2021-11-01 22:48:36 +00:00
Quentin McGaw (desktop)
f398af1169
Fix: check github http status code for version
2021-10-29 01:37:45 +00:00
Quentin McGaw (desktop)
afbea415e3
Maint: replace ❎ with ❌ for markdown generated tables
2021-10-25 22:38:59 +00:00
Quentin McGaw (desktop)
225bd5d25b
Fix: CI to use short commits
2021-10-21 13:46:50 +00:00
Quentin McGaw (desktop)
3651cc6161
Maint: CI image tags rework
2021-10-16 14:58:11 +00:00
Quentin McGaw (desktop)
dc674014ff
Fix: vyprvpn: openvpn comp-lzo option
2021-10-14 19:55:48 +00:00
Quentin McGaw (desktop)
0e0e03949d
Docs: add urgent and low priority labels
2021-10-14 16:37:09 +00:00
Quentin McGaw (desktop)
f5bf5c236a
Hotfix: CI if condition
2021-10-14 16:32:43 +00:00
dependabot[bot]
94480ecabb
Maint: bump docker/build-push-action from 2.6.1 to 2.7.0 ( #664 )
2021-10-14 09:31:08 -07:00
dependabot[bot]
31ef9b1d45
Maint: bump github.com/breml/rootcerts from 0.1.0 to 0.1.1 ( #668 )
2021-10-14 09:30:21 -07:00
Quentin McGaw (desktop)
bf76132fd4
Maint: fix dependabot CI trigger
2021-10-14 16:29:22 +00:00
Quentin McGaw (desktop)
8cc2983318
Fix: NordVPN: Re-add comp-lzo option
2021-10-13 00:04:51 +00:00
Quentin McGaw (desktop)
caeca18ed7
Hotfix: ci workflow
2021-10-06 18:54:44 +00:00
dependabot[bot]
50febb41ff
Maint: bump docker/build-push-action from 2.6.1 to 2.7.0 ( #583 )
2021-10-06 11:47:06 -07:00
Quentin McGaw (desktop)
79293e067c
Doc: fix readme Wiki links
2021-10-06 17:47:08 +00:00
Quentin McGaw (desktop)
f45be80591
Maint: CI changes
...
- Only trigger on push and PR to master
- Do not push images for branches
- Add fork only workflow
- Add dependabot only workflow
- Do not trigger ci workflow from forked/dependabot PRs
2021-10-06 14:23:01 +00:00
Quentin McGaw (desktop)
d405ba8dca
Feat: run OpenVPN without root
2021-10-05 21:33:15 +00:00
Quentin McGaw (desktop)
ca975b1c01
Feat: multiple OpenVPN ciphers for negotiation
...
- Perfect privacy to accept AES-256-CBC and AES-256-GCM
- Cyberghost default cipher set to AES-256-GCM
- `OPENVPN_CIPHER` accept comma separated cipher values
- Use `ncp-ciphers` for OpenVPN 2.4
2021-10-05 20:36:23 +00:00
Quentin McGaw
e0e3ca3832
Feat: Perfect privacy support ( #606 )
2021-10-05 10:44:15 -07:00
Quentin McGaw (desktop)
e7c952cbf7
Maint: remove opendns.com due to bad x509 cert
2021-09-30 16:01:35 +00:00
Quentin McGaw (desktop)
85ad2dd39a
Maint: simplify warning logging in http proxy
2021-09-30 16:01:02 +00:00
Quentin McGaw (desktop)
0c4f0ec17b
Doc: add ref to image tags in bug issue template
2021-09-30 15:34:21 +00:00
Quentin McGaw (desktop)
5ad4136955
Maint: move splash at start of program
2021-09-30 15:28:24 +00:00
Quentin McGaw (desktop)
a432de95a9
Maint: deduplicate ProtonVPN servers by entry IP
2021-09-30 15:23:18 +00:00
Quentin McGaw (desktop)
1d25a0e18c
Fix: server data version diff when reading file
2021-09-30 15:22:57 +00:00
Quentin McGaw (desktop)
29fd95685f
Doc: add custom provider option for bug issue template
2021-09-29 20:41:38 +00:00
Quentin McGaw (desktop)
62a6016882
Fix: FastestVPN new OpenVPN config
...
- Add required `comp-lzo`
- Add `reneg-sec 0` to match their config
- Do not filter `auth-token`
- Set UDP options only when using UDP
2021-09-28 13:52:07 +00:00
Quentin McGaw (desktop)
18a4a79763
Fix: log errors as error for OpenVPN
2021-09-28 11:57:32 +00:00
Quentin McGaw (desktop)
56ea722f93
Doc: update wiki issue template to use yml format
2021-09-27 23:47:10 +00:00
Quentin McGaw (desktop)
d2ab974933
Doc: update feature request issue template to use yml format
2021-09-27 23:44:15 +00:00
Quentin McGaw (desktop)
37d7a8b5fe
Doc: add Unraid template discussion link to issues
2021-09-27 23:40:22 +00:00
Quentin McGaw (desktop)
e4dcadd825
Doc: update bug issue template to use yml format
2021-09-27 23:37:40 +00:00
Quentin McGaw (desktop)
fee99e9fe3
Doc: add Github discussion link to issue config
2021-09-27 14:15:56 +00:00
Quentin McGaw (desktop)
8ac4826126
Doc: add Console Substack interview link
2021-09-27 13:24:31 +00:00
Quentin McGaw (desktop)
7deb12e06d
Maint: use github.com/breml/rootcerts
2021-09-26 22:26:11 +00:00
Quentin McGaw (desktop)
d6e218141b
Maint: Go program uses time/tzdata instead of OS
2021-09-26 22:25:28 +00:00
Quentin McGaw (desktop)
f44121b044
Maint: upgrade qdm12/goshutdown to v0.3.0
2021-09-26 22:23:52 +00:00
Quentin McGaw (desktop)
5d8d92462d
Feat: update FastestVPN server information
2021-09-25 13:30:29 +00:00
Quentin McGaw
985cf7b7dd
Feat: ExpressVPN support ( #623 )
2021-09-23 10:19:30 -07:00
dependabot[bot]
dcbc10fd57
Build(deps): Bump github.com/fatih/color from 1.12.0 to 1.13.0 ( #635 )
2021-09-23 10:08:31 -07:00
Quentin McGaw (desktop)
79f243e98d
Maint: package local log levels
2021-09-23 17:06:09 +00:00
Quentin McGaw (desktop)
cf95692b93
Maint: package local narrow Logger interfaces
2021-09-23 17:06:09 +00:00
Quentin McGaw
d8e008606f
Feat: WeVPN support ( #591 )
2021-09-23 07:58:13 -07:00
Quentin McGaw (desktop)
3cd26a9f61
Feat: debug log Wireguard keys
2021-09-23 14:42:28 +00:00
Quentin McGaw (desktop)
5d74320ee7
Maint: truncate servers format output file
2021-09-23 14:38:46 +00:00
Quentin McGaw (desktop)
f9aadeef1c
Maint: Remove CYBERGHOST_GROUP (change)
...
- It does not make any sense with newer server data
- It was to be deprecated anyway
2021-09-23 13:54:24 +00:00
Quentin McGaw (desktop)
625de1c834
Maint: migrate Cyberghost REGION to COUNTRY
2021-09-23 13:28:32 +00:00
Quentin McGaw (desktop)
1c0a3ed1a4
Feat: update Cyberghost servers data
2021-09-23 13:26:21 +00:00
Quentin McGaw (desktop)
03ba9169f4
Feat: format-servers CLI command
2021-09-23 13:13:17 +00:00
Quentin McGaw (desktop)
c22e0e9db7
Fix: HideMyAss: Cote d'Ivoire server country
2021-09-21 23:56:53 +00:00
Quentin McGaw (desktop)
6bcbaf085d
Maint: remove NordVPN SERVER_NAME filter
...
- Filter was not effective
- Is to be deprecated in v4 anyway
- Bump NordVPN server model version to `3`
- Remove `Name` field from NordVPN server model
2021-09-21 23:56:29 +00:00
Quentin McGaw (desktop)
9a1d9c5d74
Fix: PIA's SERVER_NAME variable
2021-09-21 22:31:50 +00:00
Quentin McGaw (desktop)
59a3a072e0
Feat: support IPv6 routing for Wireguard
2021-09-21 15:12:48 +00:00
Quentin McGaw (desktop)
9f001bbc06
Feat: log wireguard server endpoint
2021-09-18 19:12:27 +00:00
Quentin McGaw (desktop)
b8356b60a6
Maint: use OPENVPN_PORT instead of PORT
...
with retro-compatibility
2021-09-18 16:09:21 +00:00
Quentin McGaw (desktop)
e2e218c74b
Feat: update Mullvad server information
2021-09-18 15:37:49 +00:00
Quentin McGaw (desktop)
3bf23cbae5
Maint: remove enabled by default linters
2021-09-17 18:05:07 +00:00
Quentin McGaw (desktop)
da562d8206
Doc: update maintenance document
2021-09-16 20:42:39 +00:00
Quentin McGaw (desktop)
81bf83db13
Maint: remove disable-occ from PIA (match Wiki)
2021-09-16 20:32:34 +00:00
Quentin McGaw (desktop)
7a25dcd130
Doc: remove duplicate docker-compose.yml
2021-09-16 20:32:04 +00:00
Quentin McGaw (desktop)
877c7e1a9f
Doc: update readme with updated Wiki
2021-09-16 20:24:30 +00:00
Quentin McGaw (desktop)
77b2512745
Doc: add wiki issue template
2021-09-16 19:53:37 +00:00
Quentin McGaw (desktop)
749b73ef15
Doc: remove help issue template
2021-09-16 19:51:32 +00:00
Quentin McGaw (desktop)
e499eca12c
Maint: remove assignees in Github issues
2021-09-16 19:51:14 +00:00
Quentin McGaw (desktop)
80f25c34e5
Hotfix: default cyberghost cipher to aes-128-gcm
2021-09-15 12:54:36 +00:00
Quentin McGaw (desktop)
61677fbce2
Maint: migrate PROTOCOL to OPENVPN_PROTOCOL
2021-09-14 19:27:13 +00:00
Quentin McGaw (desktop)
dc6171185e
Maint: add more linters to golangci-lint
2021-09-14 19:26:46 +00:00
Quentin McGaw (desktop)
f7e4331e93
Fix: PureVPN remove AES-256-CBC cipher
2021-09-14 15:47:06 +00:00
Quentin McGaw (desktop)
1340511b64
Maint: re-order OpenVPN options
2021-09-14 15:46:40 +00:00
Quentin McGaw (desktop)
c3078f84e8
Maint: OpenVPN option: remove all ping-* options
...
- Use the built-in healthcheck vpn restart mechanism instead
- Restarting with `ping-restart` or `ping-exit` would only restart with the same `remote` connection
- Specify `ping` options as VPN specific to ensure the server doesn't disconnect us
2021-09-14 15:23:56 +00:00
Quentin McGaw (desktop)
9f65157a0d
Maint: OpenVPN: add explicit-exit-notify for UDP
2021-09-14 15:13:40 +00:00
Quentin McGaw (desktop)
89166cdabf
Maint: OpenVPN: PIA: add tls-exit option
2021-09-14 15:09:22 +00:00
Quentin McGaw (desktop)
b872973e8b
Maint: OpenVPN option tls-client removed
...
- It's redundant with `client` option
- Affects FastestVPN
2021-09-14 15:04:50 +00:00
Quentin McGaw (desktop)
2000e72357
Maint: OpenVPN option: remove tun-mtu 1500
...
- Since it defaults to `1500`
- Affects FastestVPN
- Affects NordVPN
- Affects ProtonVPN
- Affects Surfshark
- Affects Torguard
2021-09-14 14:59:04 +00:00
Quentin McGaw (desktop)
836e53642d
Maint: OpenVPN option keepalive replaced by ping options
2021-09-14 14:57:31 +00:00
Quentin McGaw (desktop)
af3f882bb8
Maint: OpenVPN: only add persist-key when running without root
2021-09-14 14:55:39 +00:00
Quentin McGaw (desktop)
2ab05b9350
Maint: OpenVPN: only add persist-tun when running without root
2021-09-14 14:54:59 +00:00
Quentin McGaw (desktop)
1022eb8a6e
Maint: remove OpenVPN option route-method
...
- Unneeded unless running on Windows
- Affects PureVPN
2021-09-14 14:49:02 +00:00
Quentin McGaw (desktop)
15fe62de32
Maint: remove OpenVPN route-delay option
...
- Affects Cyberghost
- Affects PureVPN
2021-09-14 14:48:14 +00:00
Quentin McGaw (desktop)
83d87f83f9
Maint: remove useless OpenVPN ping-timer-rem
2021-09-14 14:47:27 +00:00
Quentin McGaw (desktop)
76a0c1f6c4
Fix: OpenVPN remove compression options (security)
...
- Affects FastestVPN
- Affects Hide My Ass
- Affects IP Vanish
- Affects IVPN
- Affects NordVPN
- Affects PrivateVPN
- Affects ProtonVPN
- Affects VPN Unlimited
- Affects VyprVPN
2021-09-14 14:45:30 +00:00
Quentin McGaw (desktop)
a1588302a7
Change: Windscribe: OpenVPN cipher aes-256-gcm
2021-09-14 13:22:43 +00:00
Quentin McGaw (desktop)
91ce790b6b
Fix: OpenVPN custom: do not deduplicate lines
...
- Remove case by case lines to avoid duplicates
- Do not deduplicate all lines
2021-09-14 12:32:15 +00:00
Quentin McGaw (desktop)
5d3982c2d2
Docs: update Wireguard support list in readme
2021-09-13 20:23:16 +00:00
Quentin McGaw (desktop)
2cf7f7b268
Maint: WIREGUARD_PORT to WIREGUARD_ENDPOINT_PORT
2021-09-13 20:06:47 +00:00
Quentin McGaw (desktop)
8645d978ba
Feat: VPNSP=custom for Wireguard
...
- `WIREGUARD_PUBLIC_KEY` variable
- `WIREGUARD_ENDPOINT_IP` variable
2021-09-13 19:33:04 +00:00
Quentin McGaw (desktop)
cc18b158f4
Maint: remove all script-security OpenVPN options
...
- Affects Cyberghost
- Affects Mullvad
- Affects PureVPN
- Affects Surfshark
- Affects Torguard
- Affects Windscribe
2021-09-13 16:05:14 +00:00
Quentin McGaw (desktop)
0730b6db6e
Maint: remove ncp-disable deprecated option
...
- Affects Cyberghost
- Affects PIA
- Affects Torguard
- Affects Windscribe
2021-09-13 15:59:33 +00:00
Quentin McGaw (desktop)
3d2a360401
Fix: remove OpenVPN compression (PIA, torguard)
2021-09-13 15:56:25 +00:00
Quentin McGaw (desktop)
0c60dab384
Maint: remove deprecated keysize OpenVPN option
2021-09-13 15:55:16 +00:00
Quentin McGaw (desktop)
f5f0ad7f28
Maint: remove deprecated tun-ipv6 option
2021-09-13 15:54:01 +00:00
Quentin McGaw
f807f756eb
VPNSP value custom for OpenVPN custom config files (#621 )
...
- Retro-compatibility: `OPENVPN_CUSTOM_CONFIG` set implies `VPNSP=custom`
- Change: `up` and `down` options are not filtered out
- Change: `OPENVPN_INTERFACE` overrides the network interface defined in the configuration file
- Change: `PORT` overrides any port found in the configuration file
- Feat: config file is read when building the OpenVPN configuration, so it's effectively reloaded on VPN restarts
- Feat: extract values from custom file at start to log out valid settings
- Maint: `internal/openvpn/extract` package instead of `internal/openvpn/custom` package
- Maint: All providers' `BuildConf` method return an error
- Maint: rename `CustomConfig` to `ConfFile` in Settings structures
2021-09-13 08:30:14 -07:00
Quentin McGaw (desktop)
11af6c10f1
HotFix: use newer HEALTH variables in Dockerfile
2021-09-13 01:30:37 +00:00
Quentin McGaw (desktop)
40342619e7
Maint: dynamically set allowed VPN input ports
...
- Feat: allow to change VPN type at runtime
- Feat: allow to change interface name at runtime
- Maint: Add cleanup method to cleanup VPN loop on a vpn shutdown
- Change: allow VPN inputs ports only when tunnel is up
2021-09-13 00:50:20 +00:00
Quentin McGaw (desktop)
19bf62c21f
Fix: set non block on TUN device
2021-09-12 13:32:50 +00:00
Quentin McGaw (desktop)
2ea00d149f
Feat: adapt logger prefix to VPN used
...
- `openvpn: ` for OpenVPN
- `wireguard: ` for Wireguard
2021-09-12 13:27:30 +00:00
Quentin McGaw (desktop)
cc677bde93
Maint: change default ping address to github.com to test DNS
2021-09-11 22:27:32 +00:00
Quentin McGaw (desktop)
6627cda96c
Feat: HEALTH_ADDRESS_TO_PING variable
...
- Defaults to `1.1.1.1`
- Add more Ping integration tests with different addresses
- Add unit test pinging 127.0.0.1
- Add comment explaining why we need to use ICMP instead of UDP
2021-09-11 22:22:55 +00:00
Quentin McGaw (desktop)
cade2732b0
Maint: improve internal/configuration/health_test.go unit test
2021-09-11 22:14:37 +00:00
Quentin McGaw (desktop)
541a4a3271
Feat: healthcheck uses ping instead of DNS
2021-09-11 21:49:46 +00:00
Quentin McGaw (desktop)
0eccd068e5
Maint: rename health OpenVPN names to VPN
...
- `HEALTH_OPENVPN_DURATION_INITIAL` renamed to `HEALTH_VPN_DURATION_INITIAL` with retro-compatiblity
- `HEALTH_OPENVPN_DURATION_ADDITION` renamed to `HEALTH_VPN_DURATION_ADDITION` with retro-compatiblity
2021-09-11 21:04:21 +00:00
Quentin McGaw (desktop)
87f4b9e422
Docs: update maintenance document
2021-09-11 15:29:29 +00:00
Quentin McGaw (desktop)
bcaf2e42fd
Maint: re-order Dockerfile environment variables
2021-09-11 15:24:00 +00:00
Quentin McGaw (desktop)
d39201f9b3
Fix: public IP loop deadlock
2021-09-10 22:54:02 +00:00
Quentin McGaw (desktop)
8ac2a816c3
Fix: close HTTP client connections when tunnel comes up
2021-09-10 22:53:05 +00:00
Quentin McGaw (desktop)
344f1bf9ee
Docs: add wireguard in top description
2021-09-10 22:18:29 +00:00
Quentin McGaw (desktop)
f0a006fc43
Docs: add fix the unraid template link
2021-09-10 21:11:08 +00:00
Quentin McGaw (desktop)
145da0b21d
Maint: rename wireguard CustomPort
2021-09-10 19:07:14 +00:00
Quentin McGaw (desktop)
094de89a3e
Fix: PIA_ENCRYPTION default value outside Docker
...
- Defaults to `strong` instead of strong certificate string
- No impact on Docker images since variable is set to `strong` in Dockerfile
- Only read `PIA_ENCRYPTION` if service provider is PIA
2021-09-09 21:36:14 +00:00
Quentin McGaw (desktop)
65ace12def
Maint: internal/openvpn/parse package
...
- Parse PEM key data for Cyberghost and VPNUnlimited
- Add more unit tests
2021-09-08 16:40:19 +00:00
Quentin McGaw (desktop)
9afe455635
Fix: missing status code check for Windscribe API
2021-09-08 16:09:32 +00:00
Quentin McGaw (desktop)
45ce422a89
Maint: use type aliases in internal/netlink
2021-09-07 02:35:39 +00:00
Quentin McGaw (desktop)
4a0738cd49
Fix: repo servers.json path
2021-09-06 13:41:45 +00:00
Quentin McGaw (desktop)
6b6caa435f
Fix: clear IP data when VPN is stopped
2021-09-06 13:28:05 +00:00
Quentin McGaw (desktop)
f9cb71027c
Feat: location data at /v1/publicip/ip
2021-09-05 22:54:10 +00:00
Quentin McGaw (desktop)
82ac568ee3
Fix: wireguard cleanup preventing restarts
2021-09-04 22:29:04 +00:00
Quentin McGaw (desktop)
61afdce788
Hotfix: Wireguard WIREGUARD_ADDRESSES setting
2021-08-28 20:59:39 +00:00
Quentin McGaw (desktop)
119cac5a67
Feat: OPENVPN_TARGET_IP overrides IP
...
- Check target IP matches a server for Wireguard since we need the public key
- Streamline connection picking for all providers
2021-08-28 19:07:44 +00:00
Quentin McGaw (desktop)
c6fedd9214
Feat: support csv addresses in WIREGUARD_ADDRESS
2021-08-28 18:43:23 +00:00
Quentin McGaw (desktop)
da525e039d
Fix: update Mullvad annoucement logged
2021-08-28 18:14:28 +00:00
Quentin McGaw (desktop)
29d92fd307
Fix: Surfshark REGION retro-compatibility
2021-08-28 18:14:21 +00:00
Quentin McGaw (desktop)
3863cc439e
Maint: internal/storage rework
...
- No more global variables
- Inject merged servers to configuration package
- Fix #566 : configuration parsing to use persisted servers.json
- Move server data files from `internal/constants` to `internal/storage`
2021-08-27 19:10:03 +00:00
Quentin McGaw (desktop)
b1cfc03fc5
Maint: internal/storage remove Windscribe debug logs
2021-08-27 12:10:49 +00:00
Quentin McGaw (desktop)
f706071048
Fix: FIREWALL_VPN_INPUT_PORTS for Wireguard
2021-08-26 19:54:48 +00:00
Quentin McGaw (desktop)
501ae2741b
Fix: FIREWALL_OUTBOUND_SUBNETS ip rules
2021-08-26 15:46:19 +00:00
Quentin McGaw (desktop)
5b75635386
Maint: fix rules equality check for nil networks
2021-08-26 14:33:51 +00:00
Quentin McGaw (desktop)
2901db3cf3
Maint: internal/routing IP rules functions
...
- Take in `src` as `*net.IPNet` instead of `net.IP`
- Take `dst` IP network
- Debug logged `ip rule` dynamically built
- Add unit tests for all IP rules functions
2021-08-26 13:59:43 +00:00
Quentin McGaw (desktop)
6c2a3e36b5
Maint: rename outboundsubnets.go to outbound.go
2021-08-25 19:09:42 +00:00
Quentin McGaw (desktop)
8b125e6e95
Maint: internal/routing/inbound.go file
2021-08-25 19:08:55 +00:00
Quentin McGaw (desktop)
e1cc14e055
Fix: firewall inherits log level from LOG_LEVEL
2021-08-25 17:55:46 +00:00
Quentin McGaw (desktop)
d6659552df
Maint: refactor internal/routing
...
- Split Go files better
- Reduce public API for exported errors
2021-08-25 17:52:05 +00:00
Quentin McGaw (desktop)
67001fa958
Maint: rename files in internal/subnet
2021-08-25 17:27:10 +00:00
Quentin McGaw (desktop)
ffeeae91ab
Maint: merge subnet.FindSubnetsToAdd and subnet.FindSubnetsToRemove in subnet.FindSubnetsToChange
2021-08-25 17:25:36 +00:00
Quentin McGaw (desktop)
04fad1b781
Maint: internal/subnet package
2021-08-25 17:22:48 +00:00
Quentin McGaw (desktop)
dcaf952986
Maint: http proxy server constructor returns struct
2021-08-25 17:03:55 +00:00
Quentin McGaw (desktop)
ca3b9e892d
Maint: http proxy HTTPS handling simplifications
2021-08-25 17:02:50 +00:00
Quentin McGaw (desktop)
9f12ffc069
Fix: MULTIHOP_ONLY defaults to no
2021-08-24 13:12:40 +00:00
Quentin McGaw (desktop)
0d6800a515
Fix: panic for certain no server found errors
2021-08-23 21:19:53 +00:00
Quentin McGaw (desktop)
b3d8b78205
Maint: only internal/netlink depends on github.com/vishvananda/netlink
2021-08-23 21:12:28 +00:00
Quentin McGaw (desktop)
ee82a85543
Maint: internal/routing uses internal/netlink
2021-08-23 20:56:10 +00:00
Quentin McGaw (desktop)
7907146aaf
Maint: rework IPIsPrivate in internal/routing
2021-08-23 20:50:50 +00:00
Quentin McGaw (desktop)
1a677ce4f7
Maint: internal/routing returns *Routine struct
2021-08-23 20:50:32 +00:00
Quentin McGaw (desktop)
f1a6594474
Maint: utils.FilterByProtocol function
2021-08-23 20:16:29 +00:00
Quentin McGaw
f1a82d9d9c
Feat: rework Surfshark servers data ( #575 )
...
- Feat: `MULTIHOP_ONLY` variable
- Feat: `COUNTRY` variable
- Feat: `CITY` variable
- Feat: `REGION` variable, with retro-compatibility
- Feat: merge servers from API, zip and hardcoded hostnames
- Fix: remove outdated and duplicate servers
- Maint: faster update with fully parallel DNS resolutions
2021-08-23 10:25:00 -07:00
Quentin McGaw (desktop)
8b52af0d03
Maint: common GetPort for OpenVPN+Wireguard providers
2021-08-23 16:13:20 +00:00
Quentin McGaw (desktop)
dbf5c569ea
Maint: common GetProtocol for OpenVPN+Wireguard providers
2021-08-23 16:07:47 +00:00
Quentin McGaw (desktop)
06a2d79cb4
Feat: Wireguard support for Ivpn ( #584 )
2021-08-23 16:01:01 +00:00
Quentin McGaw (desktop)
eb6238ee52
Feat: WIREGUARD_PORT for Mullvad
2021-08-23 16:00:40 +00:00
Quentin McGaw (desktop)
f41fec57ed
Feat: IVPN supports TCP and custom port
2021-08-23 13:34:00 +00:00
Quentin McGaw
c348343b22
IVPN server data update code and ISP filter ( #578 )
...
- Use IVPN's HTTP API instead of their .zip file
- Unit tests for API and GetServers
- Paves the way for Wireguard
- Update server information for IVPN
- Add `ISP` filter for IVPN
2021-08-22 20:11:56 -07:00
Quentin McGaw
b69dcb62e3
LOG_LEVEL variable (#577 )
2021-08-22 18:57:10 -07:00
Quentin McGaw (laptop)
e4a260f148
Maint: upgrade qdm12/golibs
2021-08-22 20:44:14 +00:00
Quentin McGaw
614eb10d67
Wireguard support for Mullvad and Windscribe ( #565 )
...
- `internal/wireguard` client package with unit tests
- Implementation works with kernel space or user space if unavailable
- `WIREGUARD_PRIVATE_KEY`
- `WIREGUARD_ADDRESS`
- `WIREGUARD_PRESHARED_KEY`
- `WIREGUARD_PORT`
- `internal/netlink` package used by `internal/wireguard`
2021-08-22 14:58:39 -07:00
Quentin McGaw
0bfd58a3f5
Fix: sorted IP addresses for servers.json ( #574 )
...
- Reduce deltas between updates
- Applies to the following providers
- IPVanish
- IVPN
- Surfshark
- Torguard
- VPNUnlimited
2021-08-21 16:03:18 -07:00
Quentin McGaw (desktop)
ff56857fc8
Fix: port forwarding VPN interface specification
2021-08-21 18:16:44 +00:00
Quentin McGaw (desktop)
8d258feff7
Hot fix: interface name set for openvpn configs
2021-08-20 01:13:04 +00:00
Quentin McGaw (desktop)
96ee1bbfb2
Maint: upgrade from Go 1.16 to Go 1.17
2021-08-20 00:07:41 +00:00
Quentin McGaw (desktop)
abaf688ad8
Doc: update readme
...
- Image size lowered to 34MB
- Using Alpine 3.14
- Beta wireguard support
2021-08-19 23:53:47 +00:00
Quentin McGaw (desktop)
bec8ff27ae
Feat: OPENVPN_INTERFACE defaulting to tun0
...
- Fix: custom config with custom network interface name for firewall
- Keep VPN tunnel interface in firewall state
- Vul fix: only allow traffic through vpn interface when needed
- Adapt code to adapt to network interface name
- Remove outdated TUN and TAP constants
2021-08-19 23:22:55 +00:00
Quentin McGaw (desktop)
7191d4e911
Maint: upgrade golibs, fix logger settings inheritance
2021-08-19 19:29:50 +00:00
Quentin McGaw (desktop)
6f59bc3037
Maint: simplify provider configuration logging
2021-08-19 17:41:37 +00:00
Quentin McGaw (desktop)
5c2286f4e8
Maint: simplify settings code in internal/vpn
2021-08-19 14:57:11 +00:00
Quentin McGaw (desktop)
9218c7ef19
Maint: create OpenVPN runner in VPN run loop
2021-08-19 14:45:57 +00:00
Quentin McGaw (desktop)
3d8e61900b
Maint: make VPN connection not specific to OpenVPN
...
- Add VPN field to ServerSelection struct
- Set VPN type to server selection at start using VPN_TYPE
- Change OpenVPNConnection to Connection with Type field
- Rename Provider GetOpenVPNConnection to GetConnection
- Rename GetTargetIPOpenVPNConnection to GetTargetIPConnection
- Rename PickRandomOpenVPNConnection to PickRandomConnection
- Add 'OpenVPN' prefix to OpenVPN specific methods on connection
2021-08-19 14:09:41 +00:00
Quentin McGaw (desktop)
105d81c018
Maint: move Openvpn package files
...
- Move internal/openvpn/config/*.go to internal/openvpn/
- Move internal/openvpn/setup.go to internal/vpn/openvpn.go
2021-08-19 13:31:12 +00:00
Quentin McGaw (desktop)
d4ca5cf257
Maint: internal/vpn package for vpn loop
2021-08-18 22:01:04 +00:00
Quentin McGaw (desktop)
05018ec971
Maint: use VPN settings instead of OpenVPN in loop
2021-08-18 21:27:09 +00:00
Quentin McGaw (desktop)
538bc72c3c
Maint: better log when cathing an OS signal
2021-08-18 21:22:27 +00:00
Quentin McGaw (desktop)
0027a76c49
Maint: move OpenVPN streams processing to config package
2021-08-18 21:16:28 +00:00
Quentin McGaw (desktop)
a0cb6fabfd
Maint: rename openvpn command.go to start.go
2021-08-18 20:47:03 +00:00
Quentin McGaw (desktop)
9e5400f52d
Maint: split out OpenVPN version functions to openvpn/config/version.go
2021-08-18 20:46:20 +00:00
Quentin McGaw (desktop)
7a1d0ff3ec
Maint: internal/openvpn setup.go file
2021-08-18 20:43:47 +00:00
Quentin McGaw (desktop)
d9fbecaa01
Maint: minor changes to openvpn/config package
...
- Constructor returns concrete struct instead of interface
- Rename conf to openvpnConf in openvpn loop
2021-08-18 20:28:42 +00:00
Quentin McGaw (desktop)
ecdf9396a5
Maint: move OpenVPN configurator to openvpn/config
2021-08-18 20:23:50 +00:00
Quentin McGaw (desktop)
df51aa40f4
Maint: split custom config files in openvpn/custom
2021-08-18 20:18:49 +00:00
Quentin McGaw (desktop)
996942af47
Maint: move custom config files to custom package
2021-08-18 20:14:02 +00:00
Quentin McGaw (desktop)
f17a4eae3e
Maint: rework OpenVPN custom configuration code
...
- Refactor code and errors returned
- Add unit tests
- Make custom config code independent from loop
2021-08-18 20:12:26 +00:00
Quentin McGaw (desktop)
c515603d2f
Fix: Openvpn custom config: remove user set
2021-08-18 17:41:53 +00:00
Quentin McGaw (desktop)
14c3b6429b
Maint: openvpn process user in Openvpn settings
2021-08-18 16:16:47 +00:00
Quentin McGaw (desktop)
bd110b960b
Maint: remove startPFCh from Openvpn loop
2021-08-18 16:07:35 +00:00
Quentin McGaw (desktop)
3ad4319163
Maint: minor Openvpn loop simplifications
2021-08-18 15:52:38 +00:00
Quentin McGaw (desktop)
97340ec70b
Fix: chown openvpn configuration file
2021-08-18 15:47:11 +00:00
Quentin McGaw (desktop)
5140a7b010
Maint: set PUID and PGID in openvpn configurator
2021-08-18 15:44:58 +00:00
Quentin McGaw (desktop)
bd74879303
Maint: read all settings first
2021-08-18 15:42:19 +00:00
Quentin McGaw (desktop)
da30ae287f
Maint: decouple OpenVPN config writer from loop
2021-08-18 15:35:07 +00:00
Quentin McGaw (desktop)
6a545aa088
Maint: tun package to handle tun device operations
...
- Moved from openvpn package to tun package
- TUN check verifies Rdev value
- TUN create
- Inject as interface to main function
- Add integration test
- Clearer log message for end users if tun device does not exist
- Remove unix package (unneeded for tests)
- Remove tun file opening at the end of tun file creation
- Do not mock unix.Mkdev (no OS operation)
- Remove Tun operations from OpenVPN configurator
2021-08-18 15:31:08 +00:00
Quentin McGaw (desktop)
384a4bae3a
Hotfix: PIA: encryption preset reading
2021-08-17 19:35:57 +00:00
Quentin McGaw (desktop)
e65f924cd7
Maint: remove custom config readProvider constructor
2021-08-17 17:53:13 +00:00
Quentin McGaw (desktop)
9105b33e9f
Maint: configuration Openvpn selection structure
...
- Move network protocol from ServerSelection to OpenVPNSelection child
- Move PIA encryption preset from ServerSelection to OpenVPNSelection child
- Move custom port from ServerSelection to OpenVPNSelection child
2021-08-17 16:54:22 +00:00
Quentin McGaw (desktop)
cc2235653a
Maint: refactor VPN configuration structure
...
- Paves the way for Wireguard
- VPN struct contains Type, Openvpn and Provider configurations
- OpenVPN specific options (e.g. client key) moved from Provider to Openvpn configuration struct
- Move Provider configuration from OpenVPN configuration to VPN
- HTTP control server returns only openvpn settings (not provider settings)
2021-08-17 15:44:11 +00:00
Quentin McGaw (desktop)
a00de75f61
Maint: rename utility names to be Openvpn specific
...
- GetTargetIPConnection to GetTargetIPOpenVPNConnection
- PickRandomConnection to PickRandomOpenVPNConnection
2021-08-17 14:08:53 +00:00
Quentin McGaw (desktop)
836412b032
Maint: move routeReadyEvents to openvpn package
2021-08-16 19:19:41 +00:00
Quentin McGaw (desktop)
ba16270059
Maint: context aware collectLines functions
2021-08-16 19:19:33 +00:00
Quentin McGaw (desktop)
2c73672e64
Fix: restore PIA error if region does not support port forwarding
2021-08-16 19:16:05 +00:00
Quentin McGaw (desktop)
74b7c81195
Fix: apk-tools culnerability fix installation
...
- Install apk-tools before using apk
- Install latest apk-tools so it can be rebuilt in the future
2021-08-09 14:49:45 +00:00
Quentin McGaw (desktop)
a021ff6b22
Fix: loopstate mutex unlocking
...
- Fix #547
- Fix all run loops for restarts
2021-08-09 14:35:55 +00:00
Quentin McGaw (desktop)
6d1a90cac0
Fix: use apk-tools 2.12.7-r0
...
- valid for ppc64le
- additional security fix
2021-08-09 01:21:19 +00:00
Quentin McGaw (desktop)
1f47c16102
Fix: windscribe: only get openvpn IP addresses
2021-08-09 01:18:51 +00:00
Quentin McGaw (desktop)
abbcf60aed
Fix: port forward get route, fixes #552
2021-08-01 15:01:28 +00:00
Quentin McGaw (desktop)
f339c882d7
Feat: updater cyberghost servers
2021-07-31 22:38:18 +00:00
Quentin McGaw (desktop)
982536e9e8
Fix & feat: Cyberghost server groups
...
- Allow multiple comma separated values for CYBERGHOST_GROUP
- Defaults to all UDP groups
- If TCP is enabled, defaults to all TCP groups
- Check groups specified match the protocol
- Default Cyberghost group to empty
- Adjust formatting and messages
2021-07-31 14:53:34 +00:00
Quentin McGaw (desktop)
c17b351efb
Fix: cyberghost: explicit-exit-notify only for UDP
2021-07-31 14:02:02 +00:00
Quentin McGaw (desktop)
130bebf2c6
Doc: add unraid template link to issue templates
2021-07-30 19:48:42 +00:00
Quentin McGaw (desktop)
83c4ad2e59
Hotfix: fix shadowsocks config parsing, refix #548
2021-07-29 13:50:40 +00:00
Quentin McGaw (desktop)
0bcc6ed597
Fix: port forwarding deadlock bug, fix #547
2021-07-29 01:13:16 +00:00
Quentin McGaw (desktop)
c61f854edc
Maint: upgrade ss-server to v0.3.0
...
- `SHADOWSOCKS_PORT` in retrocompatibility
- `SHADOWSOCKS_METHOD` in retrocompatibility
- `SHADOWSOCKS_ADDRESS` added
- `SHADOWSOCKS_CIPHER` added
- Shadowsocks config inherit from ss-server's Settings
- Log adapter removed as no longer needed
2021-07-29 00:48:46 +00:00
Quentin McGaw
2998cf5e48
Maint: port forwarding refactoring ( #543 )
...
- portforward package
- portforward run loop
- Less functional arguments and cycles
2021-07-28 08:35:44 -07:00
Quentin McGaw
c777f8d97d
Feat: add verify-x509-name to Windscribe Openvpn config ( #529 )
2021-07-28 07:18:08 -07:00
Quentin McGaw (desktop)
7d4f5c8906
Fix: Alpine vulnerability with apk
2021-07-27 19:45:23 +00:00
Quentin McGaw (desktop)
da39d07d48
Maint: log line fix for updater version diff
2021-07-27 15:18:10 +00:00
Quentin McGaw (desktop)
b98f2456c0
Fix: deadlock for openvpn, dns and publicip loops
2021-07-27 14:12:22 +00:00
Quentin McGaw (desktop)
564cc2b0bc
Maint: move misplaced writeOpenvpnConf in openvpn
2021-07-26 16:30:51 +00:00
Quentin McGaw (desktop)
49885c63c4
Maint: common no port forwarding implementation
2021-07-26 16:29:40 +00:00
Quentin McGaw (desktop)
d7a6caa2ac
Maint: routing interface composition
2021-07-26 16:18:53 +00:00
Quentin McGaw (desktop)
73c383fd65
Maint: remove routing configurator from Openvpn Loop
2021-07-26 16:18:35 +00:00
Quentin McGaw (desktop)
10b270f742
Maint: remove routing from firewall configurator
2021-07-26 16:17:01 +00:00
Quentin McGaw (desktop)
7a222923c7
Maint: use narrower interfaces for firewall config
2021-07-26 16:07:50 +00:00
Quentin McGaw (desktop)
430512dd27
Maint: openvpn configurator interface composition
2021-07-26 16:03:04 +00:00
Quentin McGaw (desktop)
d5ba15c23b
Maint: improve http proxy loop Run
2021-07-26 01:42:37 +00:00
Quentin McGaw (desktop)
037b43ee10
Maint: add completed status to loopstate
2021-07-26 01:38:49 +00:00
Quentin McGaw (desktop)
ab910403c6
Fix: public IP loop being stuck
2021-07-26 01:35:43 +00:00
Quentin McGaw (laptop)
8105437815
Maint: add missing interface compilation checks
2021-07-24 19:54:15 +00:00
Quentin McGaw (laptop)
7b20cec035
Maint: rename SettingsGetterSetter to SettingsGetSetter
2021-07-24 19:49:50 +00:00
Quentin McGaw (laptop)
8d512852a4
Maint: rework publicip package
...
- Use loopstate package
- Loop interface composition
- Return concrete struct from constructors
- Split into more files
- Add publicip/state package
2021-07-24 19:49:11 +00:00
Quentin McGaw (laptop)
c8ad9b942a
Maint: openvpn loop is a concrete struct
2021-07-24 19:14:49 +00:00
Quentin McGaw (laptop)
8153d4bb2a
Maint: better openvpn loop interface composition
2021-07-24 18:56:42 +00:00
Quentin McGaw (laptop)
849dfee200
Maint: http proxy return concrete Loop struct
2021-07-24 18:52:19 +00:00
Quentin McGaw (laptop)
85540d96b6
Maint: interface composition for HTTP proxy loop
...
- Change SetStatus to ApplyStatus
- Add Runner interface
- Add SettingsGetterSetter alias to state.SettingsGetterSetter
2021-07-24 18:50:17 +00:00
Quentin McGaw (laptop)
7479974d79
Maint: dns package state rework
...
- Interface composition with loopstate interfaces
- Use loopstate.Manager
- Create dns/state package for handling settings
2021-07-24 18:34:55 +00:00
Quentin McGaw (laptop)
3f1fb52fcb
Maint: upgrade qdm12 dependencies
...
- Upgrade qdm12/golibs
- Upgrade qdm12/dns to v1.11.0
2021-07-24 17:59:22 +00:00
Quentin McGaw (desktop)
7e343d7006
Maint: use loopstate for httpproxy
2021-07-23 20:47:36 +00:00
Quentin McGaw (desktop)
72a5e1f695
Maint: openvpn package split files
2021-07-23 20:46:57 +00:00
Quentin McGaw (desktop)
253310bd1a
Maint: loopstate package used in Openvpn state
2021-07-23 20:41:45 +00:00
Quentin McGaw (desktop)
fa6ccb08bd
Fix: openvpn loop: unlock read mutex for GetSettingsAndServers
2021-07-23 20:13:02 +00:00
Quentin McGaw (desktop)
762507855e
Maint: split httpproxy files
2021-07-23 19:25:48 +00:00
Quentin McGaw (desktop)
54610866f2
Maint: healthcheck package interface rework
...
- return concrete struct type
- Add compilation checks for implementations
2021-07-23 19:22:41 +00:00
Quentin McGaw (desktop)
c39ff5c233
Maint: move duration formatting to qdm12/golibs
2021-07-23 19:17:23 +00:00
Quentin McGaw (desktop)
2ddc784965
Maint: firewall package interface rework
...
- return concrete struct type
- split interface is sub-interfaces
2021-07-23 19:12:16 +00:00
Quentin McGaw (desktop)
10aabe8375
Hotfix: cli, alpine and dns interface name changes
2021-07-23 19:11:49 +00:00
Quentin McGaw (desktop)
122647b39d
Maint: pass network values to firewall constructor
2021-07-23 19:04:17 +00:00
Quentin McGaw (desktop)
02492c34a7
Maint: dns package interface rework
...
- return concrete struct type
- split interface is sub-interfaces
2021-07-23 18:57:29 +00:00
Quentin McGaw (desktop)
9436f604ba
Maint: split Go files in dns package
2021-07-23 18:55:53 +00:00
Quentin McGaw (desktop)
d9ca0deb08
Maint: cli package interface rework
...
- return concrete struct type
- split interface is sub-interfaces
2021-07-23 18:52:38 +00:00
Quentin McGaw (desktop)
0b985e8c35
Maint: alpine package interface rework
...
- return concrete struct type
- split interface is sub-interfaces
2021-07-23 18:51:51 +00:00
Quentin McGaw (desktop)
c5d92ae02c
Maint: inject Commander to openvpn and firewall
2021-07-23 18:25:30 +00:00
Quentin McGaw (desktop)
94b60d9f70
Maint: firewall and routing use logger.Debug
...
- Remove SetVerbose and SetDebug from both
- Log routing teardown
- Default logging level set to info
2021-07-23 18:20:18 +00:00
Quentin McGaw (desktop)
b23eb8f29d
Maint: prefer empty string comparison
2021-07-23 17:39:38 +00:00
Quentin McGaw (desktop)
3c44214d01
Maint: pass only single strings to logger methods
...
- Do not assume formatting from logger's interface
- Allow to change golibs in the future to accept only strings for logger methods
2021-07-23 17:36:08 +00:00
Quentin McGaw (desktop)
21f4cf7ab5
Maint: do not mock os functions
...
- Use filepaths with /tmp for tests instead
- Only mock functions where filepath can't be specified such as user.Lookup
2021-07-23 16:06:19 +00:00
Quentin McGaw (desktop)
e94684aa39
Fix: version diff for VPN server information
2021-07-23 02:51:49 +00:00
Quentin McGaw (desktop)
a34cc48197
Feat: update all servers for all providers
2021-07-23 02:47:29 +00:00
Quentin McGaw (desktop)
b262d91ccc
Feat: add -all flag to update all VPN servers
2021-07-23 02:47:04 +00:00
Quentin McGaw (desktop)
39aa983771
Maint: upgrade golibs and env error wrapping
2021-07-23 02:34:15 +00:00
Quentin McGaw (desktop)
5b9887dade
Maint: use qdm12/gosplash
2021-07-22 20:56:47 +00:00
Quentin McGaw (desktop)
c33402ce66
Feat: HEALTH_SERVER_ADDRESS
2021-07-22 20:45:17 +00:00
Quentin McGaw (desktop)
6f58f84151
Maint: improve health code
2021-07-22 20:18:52 +00:00
Quentin McGaw (desktop)
6acb7caf5b
Feat: Env variables to set health timeouts
...
- HEALTH_OPENVPN_DURATION_INITIAL
- HEALTH_OPENVPN_DURATION_ADDITION
2021-07-22 20:13:20 +00:00
Quentin McGaw (desktop)
8beff34cca
Maint: remove debug line in health server
2021-07-22 13:43:19 +00:00
TJJP
478e0f74f7
Fix: Windscribe Openvpn config ( #528 )
...
See https://blog.windscribe.com/openvpn-security-improvements-and-changes-7b04ea49222
> OpenVPN compression phaseout is in progress and will be completed by August 3rd 2021.
If you downloaded configs from this page before you saw this message, you need to re-download them now, or simply remove the compress or comp-lzo flags from the config that you downloaded after July 20th 2021.
2021-07-21 12:48:10 -04:00
Quentin McGaw (desktop)
b7bd23ab60
Fix: buildDate renamed to created in Dockerfile
2021-07-20 23:10:33 +00:00
Quentin McGaw (desktop)
82533c1453
Maint: improve servers data embedding
...
- use embed.FS to have immutable data
- use sync.Once to parse only once without data races
2021-07-20 19:01:49 +00:00
Quentin McGaw (desktop)
e0735b57ce
Maint: build all images fully in parallel
2021-07-20 15:47:28 +00:00
Quentin McGaw (desktop)
1e0bfc3b0c
Maint: rename BUILD_DATE to CREATED
2021-07-20 15:28:02 +00:00
Quentin McGaw (desktop)
cb0e89a38e
Maint: use curly braces around BUILDPLATFORM
2021-07-20 15:27:16 +00:00
Quentin McGaw (desktop)
da4d528463
Maint: hardcoded data in JSON embedded file
...
- Server information, versions and timestamps together in internal/constants/servers.json
- breaking change: updater cli uses -enduser instead of -file
- breaking change: updater cli uses -maintainer instead of -stdout
- Fix: replace special last a character with 'a' from Bogota for PrivateVPN
- Feat: do not write out servers and timestamp if no change was detected
2021-07-20 03:01:26 +00:00
Quentin McGaw (desktop)
394abbbe35
Feat: specify Openvpn flags with OPENVPN_FLAGS
2021-07-19 15:10:53 +00:00
Quentin McGaw (desktop)
fd39bc8518
Maint: upgrade inet.af/netaddr to 2021-07-18
2021-07-19 13:28:13 +00:00
dependabot[bot]
2663e8fba7
Bump docker/build-push-action from 2.4.0 to 2.6.1 ( #513 )
...
Bumps [docker/build-push-action](https://github.com/docker/build-push-action ) from 2.4.0 to 2.6.1.
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/v2.4.0...v2.6.1 )
---
updated-dependencies:
- dependency-name: docker/build-push-action
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-18 19:22:59 -07:00
Quentin McGaw (desktop)
faebac6a77
Maint: rename build.yml to ci.yml for linting
2021-07-19 02:20:23 +00:00
Quentin McGaw (desktop)
bc1b09e997
Maint: remove microbadger hook from CI
2021-07-19 02:18:22 +00:00
Quentin McGaw (desktop)
af358f777b
Feat: pull filter ipv6 if OPENVPN_IPV6 is off
2021-07-19 01:46:20 +00:00
Quentin McGaw (desktop)
c0d27b4bfc
Maint: rework openvpn restart on unhealthy
2021-07-18 03:17:48 +00:00
Quentin McGaw (desktop)
7e50c95823
Maint: minor DNS loop fixes and changes
2021-07-16 21:21:09 +00:00
Quentin McGaw (desktop)
39068dda17
Maint: rework Openvpn run loop
2021-07-16 21:20:34 +00:00
Quentin McGaw (desktop)
8185979ca4
Fix: deadlock on dns shutdown when starting up
2021-07-16 20:11:57 +00:00
Quentin McGaw (desktop)
7c44188130
Fix: controlled interrupt exit for subprograms
...
- Openvpn and Unbound do not receive OS signals
- Openvpn and Unbound run in a different process group than the entrypoint
- Openvpn and Unbound are gracefully shutdown by the entrypoint
- Update golibs with a modified command package
- Update dns to v1.9.0 where Unbound is luanched in its own group
2021-07-16 20:04:17 +00:00
Quentin McGaw (desktop)
c2d527bbd3
Fix: openvpn run loop panic about stdout streams
2021-07-16 19:02:04 +00:00
Quentin McGaw (desktop)
ac3ff095a1
Maint: rework DNS run loop
...
- Fix fragile user triggered logic
- Simplify state
- Lock loop when crashed
2021-07-16 19:00:56 +00:00
Quentin McGaw (desktop)
0ed738cd61
Maint: make all set status context aware
2021-07-16 00:49:59 +00:00
Quentin McGaw (desktop)
6bbb7c8f7d
Maint: remove outdated Auth log warning about PIA
2021-07-16 00:49:50 +00:00
Quentin McGaw (desktop)
d29429808c
Maint: deduplicate error logs for goshutdown
2021-07-15 23:02:33 +00:00
Quentin McGaw (desktop)
09eccd7cd9
Fix: events routing behavior when version information is disabled
2021-07-15 22:43:30 +00:00
Quentin McGaw (desktop)
bb2b8b4514
Fix: events routing exit when gluetun stops at start
2021-07-15 22:42:58 +00:00
Quentin McGaw (desktop)
e20b9c5774
Doc: simplify metdata and move it at top of readme
2021-07-14 22:17:51 +00:00
Quentin McGaw (desktop)
3badfa197a
Doc: use native markdown for svg title image
2021-07-14 22:08:40 +00:00
Quentin McGaw (desktop)
dee372e71b
Doc: add video
2021-07-14 00:31:27 +00:00
Quentin McGaw (desktop)
679be6e1bd
Feat: clean suffix new lines for credentials
2021-07-06 14:37:59 +00:00
Quentin McGaw (desktop)
92212fdd11
Fix: Cert validation for IPVanish
2021-07-01 18:28:24 +00:00
Quentin McGaw (desktop)
a6fb1ad9ef
Feat: update IPVanish server information
2021-07-01 18:28:12 +00:00
Quentin McGaw (desktop)
87d712fbd7
Feature: update ProtonVPN server information
2021-06-28 15:30:35 +00:00
Quentin McGaw (desktop)
023809f099
Feature: upgrade to Alpine 3.14
...
- Release note: https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.14.0
2021-06-25 19:01:00 +00:00
Quentin McGaw (desktop)
ace37370d1
Maint: xcputranslate version as build argument
2021-06-25 18:57:04 +00:00
Quentin McGaw (desktop)
8efbd4fac1
Maint: download golangci-lint from qmcgaw/binpot
2021-06-25 18:56:18 +00:00
Quentin McGaw (desktop)
06c8792887
Doc: clarify setup instructions
2021-06-22 15:21:49 +00:00
Quentin McGaw (desktop)
3ea376a1b2
Doc: maintenance document
2021-06-22 14:42:15 +00:00
Quentin McGaw (desktop)
9667d30907
Doc: add code highlighting how-to to issue templates
2021-06-22 14:41:48 +00:00
Quentin McGaw (desktop)
3f7ccc6c49
Feature: improve Cyberghost updater
...
- Waits up to 20s for resolutions
- Update server information and timestamp
2021-06-21 20:29:55 +00:00
Quentin McGaw (desktop)
dd97ff5895
Maintenance: cache xcputranslate
2021-06-21 18:50:30 +00:00
Quentin McGaw (desktop)
2e4d80d9bc
Maintenance: sleep for cross building
2021-06-21 18:35:40 +00:00
Quentin McGaw (desktop)
1227dc5a2b
Maintenance: upgrade xcputranslate to v0.6.0
2021-06-21 18:01:21 +00:00
Quentin McGaw (desktop)
ed828bc733
Hotfix: VPN Unlimited variable choices
2021-06-21 13:32:03 +00:00
Quentin McGaw (desktop)
c25a018c05
Maintenance: CI deduplicate base stage build
2021-06-21 13:01:53 +00:00
Quentin McGaw (desktop)
266596af68
Fix errors introduced with golangci-lint 1.41.1
2021-06-20 16:39:38 +00:00
Quentin McGaw
2c77b73ebc
IPVanish support ( #475 )
...
- Fix #410 and #416
2021-06-20 09:21:48 -07:00
Quentin McGaw
d81d4bbda3
VPN Unlimited support ( #499 )
...
- Fixes #420
- Revert to docker/build-push-action@v2.4.0
2021-06-20 09:18:03 -07:00
Quentin McGaw (desktop)
400affe429
Maintenance: add revive linter
2021-06-20 16:12:39 +00:00
Quentin McGaw (desktop)
d3c63680e8
Maintenance: ugprade golangci-lint to v1.41.1
2021-06-20 16:12:09 +00:00
Quentin McGaw (desktop)
28de8a834c
Maintenance: upgrade golang/mock to v1.6.0
2021-06-19 17:24:41 +00:00
Quentin McGaw (desktop)
208374fc54
Fix: Use name prefix for TLS check for IVPN
2021-06-19 16:34:50 +00:00
Quentin McGaw (desktop)
535a136a27
Feature: add IVPN Bulgaria and Spain servers
2021-06-19 16:34:36 +00:00
Quentin McGaw (desktop)
ba4c3e30a4
Doc: docker-compose.yml does not use secrets
2021-06-17 22:46:30 +00:00
Quentin McGaw (desktop)
16d8a388cb
Maintenance: better layer caching
...
- Install g++ in base image before copying code
- Install xcputranslate in base image before copying code
- Install golangci-lint in base image before copying code
- Install golangci-lint using go get directly
2021-06-15 12:27:32 +00:00
Quentin McGaw (desktop)
5ea31b0b64
Maintenance: set entrypoint for test Docker stage
2021-06-15 12:25:57 +00:00
Quentin McGaw (desktop)
582c6d1c43
Fix: only use and write auth file if user is set
...
- Apply to custom openvpn configuration without username
2021-06-14 14:25:37 +00:00
Quentin McGaw (desktop)
c63ae3f3af
Fix: custom openvpn config settings log
2021-06-14 14:24:38 +00:00
Quentin McGaw (desktop)
4c0df96a95
Maintenance: use github.com/qdm12/goshutdown
2021-06-10 15:03:47 +00:00
Quentin McGaw (desktop)
05c6b9379a
Maintenance: prevent exit race condition for loops
2021-06-10 14:13:08 +00:00
Quentin McGaw (desktop)
fb7fdcd925
Fix: change PureVPN default cipher to AES-256-GCM
2021-06-08 00:24:46 +00:00
Quentin McGaw (desktop)
1774e2ad88
Maintenance: update list of linters
2021-06-07 23:31:52 +00:00
Quentin McGaw (desktop)
a402d9135e
Fix: remote line for custom OpenVPN config
2021-06-07 19:46:21 +00:00
Quentin McGaw (desktop)
3d2c56d9ee
Fix: custom cipher for custom files on Openvpn 2.5
2021-06-07 19:45:19 +00:00
Quentin McGaw (desktop)
f9308e6fed
Remove dependency on github.com/kyokomi/emoji
2021-06-06 15:38:49 +00:00
Quentin McGaw (desktop)
6710468020
Maintenance: upgrade Go dependencies
...
- Upgrade fatih/color to v1.12.0
- Upgrade qdm12/dns to v1.8.0
- Upgrade qdm12/golibs
- Upgrade qdm12/updated
2021-06-03 21:31:50 +00:00
Quentin McGaw (desktop)
ad1981fff6
Maintenance: update PureVPN server information
2021-06-02 14:32:15 +00:00
Quentin McGaw (desktop)
01f9e71912
Fix: none encryption preset for PIA
...
- Set cipher and auth to `none`
- Add `ncp-disable` OpenVPN option in every case
2021-06-01 13:52:57 +00:00
Quentin McGaw (desktop)
d41b75ee35
Documentation: add discussion link for help issues
2021-06-01 13:44:04 +00:00
Quentin McGaw (desktop)
b829490aac
Feature: OPENVPN_VERSION which can be 2.4 or 2.5
2021-05-31 18:54:36 +00:00
Quentin McGaw (desktop)
7002bf8e34
Maintenance: improve printVersion function
...
- Print program versions in order given
- Exit program on any error as each program is required
2021-05-31 18:47:38 +00:00
Quentin McGaw (desktop)
625ea493fb
Maintenance: remove unused openvpn files
2021-05-31 17:55:56 +00:00
Quentin McGaw (desktop)
79b3b2823b
Hotfix: remote line for Hidemyass and ivpn
2021-05-31 02:37:20 +00:00
Quentin McGaw (desktop)
9be912e9fd
HotFix: IVPN add TCP and UDP fields
2021-05-31 00:41:44 +00:00
Quentin McGaw (desktop)
3c3cd431cd
Feature: Support none encryption preset for PIA
2021-05-31 00:32:39 +00:00
Quentin McGaw (desktop)
8b8bab5c58
Feature: IVPN support
2021-05-31 00:11:16 +00:00
Quentin McGaw (desktop)
835fa6c41f
Fix: HideMyAss Openvpn remote line
2021-05-30 21:25:55 +00:00
Quentin McGaw (desktop)
8a6cf221a9
Fix: HideMyAss hostnames choices
2021-05-30 20:27:57 +00:00
Quentin McGaw (desktop)
876563c492
Maintenance: improve error wrapping
2021-05-30 16:14:08 +00:00
Quentin McGaw (desktop)
be22c8547f
Maintenance: use io instead of ioutil if possible
2021-05-30 03:13:19 +00:00
Quentin McGaw (desktop)
82d98c4859
Maintenance: add more linters to .golangci.yml
2021-05-30 03:09:22 +00:00
Quentin McGaw (desktop)
f1b5341f33
Maintenance: listen on all IP interfaces
2021-05-30 02:58:10 +00:00
Quentin McGaw (desktop)
b3829493ea
Maintenance: upgrade ss-server to v0.2.0
2021-05-28 16:26:26 +00:00
Quentin McGaw (desktop)
7db1253967
Maintenance: upgrade golangci-lint to 1.40.1
2021-05-28 16:24:06 +00:00
Quentin McGaw (desktop)
449db40d5f
Feature: make Shadowsocks password compulsory
2021-05-28 16:23:44 +00:00
Quentin McGaw
d5d0311bc6
Documentation: issue template warnings
2021-05-25 20:11:23 +00:00
Quentin McGaw
0c4f01a892
Feature: Protonvpn filter servers with FREE_ONLY
2021-05-23 21:51:12 +00:00
Quentin McGaw
bc7246f882
Maintenance: update ProtonVPN server information
2021-05-23 17:40:25 +00:00
Quentin McGaw
da65f3b016
Maintenance: generate Openvpn conf for 2.4 or 2.5
2021-05-23 17:40:14 +00:00
Quentin McGaw
a8c574219d
Fix: log level for TLS error from debug to warn
2021-05-23 16:24:04 +00:00
Quentin McGaw
a3751a77aa
Fix: log custom port only if set (PIA, Windscribe)
2021-05-19 17:53:11 +00:00
Quentin McGaw
4f521e4dcb
Feature: show Alpine version at start
2021-05-19 14:30:43 +00:00
Quentin McGaw
a9589d8d5b
Fix: only use Openvpn fast-io when using UDP
2021-05-18 23:46:20 +00:00
Quentin McGaw
13e75aaf20
Maintenance: upgrade to qdm12/dns v1.7.0
...
- Fix rebinding protection for IPv6 mapped IPv4 networks
- Use netaddr package for DNS blacklisting
2021-05-14 17:54:35 +00:00
Quentin McGaw
0c9bd8aaa0
Maintenance: upgrade golang.org/x/sys
2021-05-14 14:08:55 +00:00
Quentin McGaw
5dba91c9ab
Maintenance: qdm12/dns from v1.4.0 to v1.6.0
2021-05-14 14:07:17 +00:00
Quentin McGaw
7d6763cde7
Maintenance: upgrade golibs (affects logger)
2021-05-14 14:07:16 +00:00
dependabot[bot]
dd1b23773e
Bump actions/checkout from 2 to 2.3.4 ( #453 )
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 2 to 2.3.4.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v2...v2.3.4 )
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-12 17:25:07 -04:00
Quentin McGaw
33253c0cfc
Fix: PIA port forwarding nil url map
2021-05-12 12:47:34 +00:00
Quentin McGaw
0099c06056
Hotfix: remove unused code
2021-05-12 00:57:00 +00:00
Quentin McGaw
1540660cc3
Change: keep firewall on shutdown to avoid leaks
2021-05-11 22:25:42 +00:00
Quentin McGaw
cff5e693d2
Maintenance: shutdown order
...
- Order of threads to shutdown (control then tickers then health etc.)
- Rely on closing channels instead of waitgroups
- Move exit logs from each package to the shutdown package
2021-05-11 22:24:32 +00:00
Quentin McGaw
5159c1dc83
Maintenance: remove outdated Dockerfile comment
2021-05-11 22:13:16 +00:00
Quentin McGaw
ccc7ad7cbd
Change: do not exit on Openvpn config error
2021-05-11 18:23:19 +00:00
Quentin McGaw
c8a61ca687
Maintenance: use signal.NotifyContext
2021-05-11 18:17:59 +00:00
Quentin McGaw
61e36d6aff
Maintenance: error wrapping of alpine package
2021-05-11 17:52:29 +00:00
Quentin McGaw
e8c8742bae
Maintenance: split each provider in a package
...
- Fix VyprVPN port
- Fix missing Auth overrides
2021-05-11 17:10:51 +00:00
Quentin McGaw
1cb93d76ed
Feature: only teardown routing if changes occurred
2021-05-10 22:16:26 +00:00
Quentin McGaw
dadc939aab
Feature: NET_ADMIN tip on routing permission error
2021-05-10 21:31:08 +00:00
Quentin McGaw
c59ea781e3
Maintenance: Protocol selection as boolean in code
2021-05-10 18:18:12 +00:00
Quentin McGaw
810ff62c26
Maintenance: improve error codes in IP routing
2021-05-10 17:33:31 +00:00
Quentin McGaw
5a0418bba6
Feature: re-fetch PIA API to obtain more servers
2021-05-10 16:17:44 +00:00
Quentin McGaw
baf506ae27
Feature: multiple IP addresses per PIA server
2021-05-10 15:44:46 +00:00
Quentin McGaw
52ff03ae41
Feature: 3 IP addresses per Windscribe server
2021-05-10 14:34:42 +00:00
Quentin McGaw
2d95edf8ab
Feature: Filter VyprVPN servers by hostname, and:
...
- Extract if server supports TCP and UDP (never TCP now)
- Filter servers by protocol (unused for now)
2021-05-10 02:12:13 +00:00
Quentin McGaw
95b0fb81d6
Feature: Multiple IPs for each Torguard server
...
- Fallback on IP from configuration file if DNS resolution fails
- Download both TCP and UDP zip files to detect support for each
- Filter servers by supported network protocol
-
2021-05-10 01:48:52 +00:00
Quentin McGaw
eff65dce00
Feature: filter Surfshark servers by hostname
2021-05-10 01:24:46 +00:00
Quentin McGaw
6c1c069261
Feature: filter by hostname for PureVPN servers
...
- Record support for TCP and UDP for each hostname
- Fix: each hostname supports only TCP or UDP, not both
- Update PureVPN server information
2021-05-10 00:36:14 +00:00
Quentin McGaw
4fe1e062f2
Feature: filter PIA servers by hostname and name
2021-05-09 16:49:22 +00:00
Quentin McGaw
1fb0840e72
Maintenance: Privado server not found error
2021-05-09 16:32:59 +00:00
Quentin McGaw
689ddf8bf0
Maintenance: fix flakky ip unit test
2021-05-09 03:30:54 +00:00
Quentin McGaw
d243ac49f3
Fix #444 Mullvad servers filtering
2021-05-09 01:56:02 +00:00
Quentin McGaw
de8f018b14
Feature: Snyk code analysis for code and image
2021-05-09 01:11:58 +00:00
Quentin McGaw
8407542600
Feature: filter by country, region and city for Privado
2021-05-09 00:51:34 +00:00
Quentin McGaw
a7a5cca8dd
Maintenance: parallelize IP information fetch
2021-05-08 23:37:32 +00:00
Quentin McGaw
d9a70fd094
Maintenance: improve publicip with Result struct
2021-05-08 23:30:29 +00:00
Quentin McGaw
248cc0d3d3
Feature: filter by name and hostname for NordVPN
2021-05-08 22:51:59 +00:00
Quentin McGaw
2924d711cb
Maintenance: add empty SERVER_NAME in Dockerfile
2021-05-08 19:32:52 +00:00
Quentin McGaw
d7db105a2f
Fix: ProtonVPN SERVER_NAME
2021-05-08 19:32:16 +00:00
Quentin McGaw
2ec2f45c82
Feature: filter by hostname for Mullvad servers
2021-05-08 19:17:36 +00:00
Quentin McGaw
a34769ae02
Feature: filter by hostname for Cyberghost servers
2021-05-08 19:05:11 +00:00
Quentin McGaw
c0e4d805b1
Maintenance: storage package logTimeDiff function
2021-05-08 02:51:39 +00:00
Quentin McGaw
6770336274
Maintenance: add missing server merging logic
2021-05-08 01:15:49 +00:00
Quentin McGaw
8d431dbb34
Feature update all server information
2021-05-08 01:03:09 +00:00
Quentin McGaw
e8e7b83297
Maintenance: refactor servers updater code
...
- Require at least 80% of number of servers now to pass
- Each provider is in its own package with a common structure
- Unzip package with unzipper interface
- Openvpn package with extraction and download functions
2021-05-08 00:59:42 +00:00
Quentin McGaw
442340dcf2
Feature: create /gluetun if it does not exist
2021-05-06 21:10:28 +00:00
Quentin McGaw
91b037a335
Feature: update hardcoded servers for DNS resolution based VPN providers
2021-05-06 18:51:31 +00:00
Quentin McGaw
d5ef3de64c
Feature: more robust updater DNS resolution
...
- Parallel resolver to resolve multiple hosts
- Repeat resolver to repeat resolution for a single host
- Additional parameters for fault toleration
- Do not update servers if e.g. > 10% DNS resolutions failed
- resolver package in updater package
2021-05-06 18:48:14 +00:00
Quentin McGaw
167a0b0b29
Restart unhealthy ( #417 ) ( #441 )
2021-05-04 15:36:12 -04:00
Quentin McGaw
954e3c70b2
Feature: Protonvpn support ( #437 clone on #434 )
2021-04-25 15:44:45 -04:00
Quentin McGaw
b02a80abbd
Feature: update PIA server information
2021-04-24 13:54:13 +00:00
Quentin McGaw
04313d3c3b
Maintenance: devcontainer changes
...
- Bind mount for root only
- Support for Windows Hyperv bind mounts
- Run go mod tidy after go mod download
- Use :z flag for possibly shared bind mounts
- Bind mount zsh_history
- Bind mount docker config directory
2021-04-24 13:53:48 +00:00
Quentin McGaw
fb8279f8f0
Fix: remove pull-filter ignore ping-restart
2021-04-19 19:51:00 +00:00
Quentin McGaw
e0e56595c6
Fix: only run ip6tables if it is supported by the Kernel ( #431 )
...
- Fix #430
2021-04-19 14:35:29 -04:00
Quentin McGaw
44d8cf9d4e
Replace Surfshark default cipher with aes 256 gcm
2021-04-19 18:00:58 +00:00
Quentin McGaw
282c1e53ec
Clear firewall rules on shutdown, fix #276
2021-04-19 14:27:38 +00:00
Quentin McGaw
7ba98af1cc
Feature/Bugfix: IPv6 blocking ( #428 )
...
- Feature/Bugfix: Block all IPv6 traffic with `ip6tables` by default
- Feature: Adapt existing firewall code to handle IPv4 and IPv6, depending on user inputs and environment
- Maintenance: improve error wrapping in the firewall package
2021-04-19 09:24:46 -04:00
Quentin McGaw
d3df5aaa52
Upgrade system and package versions
...
- Alpine from 3.12 to 3.13 and:
- Openvpn from 2.4.10 to 2.5.1
- Unbound from 1.10.1 to 1.13.0
- Iptables from 1.8.4 to 1.8.6
2021-04-19 00:31:46 +00:00
Quentin McGaw
1c83dcab5e
Maintenance: upgrade golangci-lint to 1.39.0
2021-04-19 00:20:43 +00:00
Quentin McGaw
6208081788
Fix: PIA port forwarding ( #427 )
...
- Update PIA token URL
- Change base64 decoding to standard decoding
- Add unit tests
- Remove environment variable `GODEBUG=x509ignoreCN=0`
- Fixes #423
- Fixes #292
- Closes #264
- Closes #293
2021-04-17 16:21:17 -04:00
Quentin McGaw
3795e92a82
Hotfix: lint error in Surfshark constants
2021-04-16 22:37:51 +00:00
Quentin McGaw
0636123e7a
Feature: add more Surfshark servers
...
- Add servers missing from surfshark zip file
- Fixes #424 and re-add multihop servers
- Fix logic to try resolving old vpn servers for Surfshark
2021-04-16 22:31:09 +00:00
Michael Robbins
69f9461bcd
Fix: restricting route listing to IPv4 only ( #419 )
2021-04-11 08:50:59 -04:00
Quentin McGaw
d1558a3472
Fix lint error from PR merge
2021-04-09 17:44:22 +00:00
Michael Robbins
8230596f98
Feature: uplift the 'localSubnet' concept to cover all local ethernet interfaces ( #413 )
2021-04-09 13:08:20 -04:00
Quentin McGaw
cc4117e054
Change PIA settings, refers to #265
2021-04-01 18:53:21 +00:00
Quentin McGaw
a0ddbc037f
Update new provider issue template
2021-04-01 18:29:55 +00:00
Quentin McGaw
de82d4e616
Fix: use udp by default for custom openvpn config
2021-03-15 02:13:10 +00:00
Quentin McGaw
fa220f9e93
Feature: custom Openvpn configuration file, fixes #223 ( #402 )
2021-03-13 08:51:05 -05:00
Quentin McGaw
aca112fa42
CI: Build for all architectures in branches
2021-03-09 00:16:24 +00:00
Quentin McGaw
9f4077d35d
Feature: FastestVPN support ( #383 )
2021-03-05 23:12:19 -05:00
Quentin McGaw
9509b855f1
Feature: PrivateVPN support ( #393 )
2021-03-05 22:58:57 -05:00
Quentin McGaw
be72f4a046
Feature: Hide My Ass VPN provider support ( #401 )
2021-03-05 22:45:54 -05:00
Quentin McGaw
8b36ce198f
Maintenance: 8.8.8.8 as the cli updater DNS
2021-03-05 22:46:21 +00:00
Quentin McGaw
71de05dc68
Maintenance: updater DNS resolution more resilient
2021-03-05 22:46:14 +00:00
Quentin McGaw
83b5a9457a
Maintenance: upgrade golangci-lint to 1.37.0
2021-03-03 01:16:05 +00:00
Quentin McGaw
0b7ada9fd9
Maintenance: use Go 1.16 to build binary
2021-03-03 01:15:14 +00:00
Quentin McGaw
92bcef0b1c
Maintenance: unique choices from hardcoded servers
2021-02-26 13:21:55 +00:00
Quentin McGaw
a10c4056d0
Maintenance: simplify env comments in Dockerfile
2021-02-26 13:02:43 +00:00
Quentin McGaw
1fd3ee7149
Maintenance: sort alphabetically providers in code
2021-02-26 12:58:58 +00:00
dependabot[bot]
e3a157bfe1
Maintenance: bump golang/mock from 1.4.4 to 1.5.0 ( #394 )
2021-02-26 07:39:29 -05:00
Quentin McGaw
b446aa6590
Maintenance: use native HTTP client for updater
2021-02-26 00:42:55 +00:00
Quentin McGaw
c54ee71e1d
Maintenance: new logging, shorter with less deps
2021-02-25 23:51:29 +00:00
Quentin McGaw
1748a2ae12
Fix: HTTP proxy password and log settings reading
2021-02-26 03:32:26 +00:00
Quentin McGaw
eff46aa97a
Fix firewall settings parsing, fixes #392
2021-02-21 02:39:34 +00:00
Quentin McGaw
9fb186af75
Documentation: update issue templates
2021-02-20 22:29:33 +00:00
Quentin McGaw
f1b1001863
Torguard support ( #387 )
...
See discussion on #374
2021-02-17 20:36:30 -05:00
Quentin McGaw
c5af536299
Maintenance: deduplicate PIA servers by protocols
2021-02-16 13:06:58 +00:00
Quentin McGaw
b9b2f691a5
Fix: pia updater for TCP, fixes #388
2021-02-16 13:06:51 +00:00
fgeertsema
bdc8817672
Fix: HTTP proxy: return the response of a redirect, do not follow ( #384 )
...
Authored-by: Fernand Geertsema <fernand@web-iq.eu >
2021-02-15 08:40:51 -05:00
Quentin McGaw
a55acb2816
CI: Alpine s390x build removed (periodic crashes)
2021-02-14 18:59:27 +00:00
Quentin McGaw
d686c76db3
Fix: Privado SERVER_HOSTNAME selection
2021-02-14 16:40:48 +00:00
Quentin McGaw
30c1ae651e
Documentation: new provider issue template
2021-02-14 16:31:31 +00:00
Quentin McGaw
adaad62fbd
Feature: updater: no sleep for last DNS resolution
2021-02-12 21:27:26 +00:00
Quentin McGaw
fe5ec205fc
Fix: updater uses plaintext DNS to avoid getting blocked by Unbound ( #380 )
2021-02-12 14:20:07 -05:00
Quentin McGaw
576400e0d9
Fix: Windscribe SERVER_HOSTNAME, fixes #379
2021-02-12 15:05:35 +00:00
Quentin McGaw
f08a03106f
Feature: updater changes to have more VPN IP addresses ( #364 )
2021-02-11 08:40:25 -05:00
Quentin McGaw
f852b7789e
Fix: surfshark: restore ping settings
2021-02-09 03:03:08 +00:00
Quentin McGaw
b0bd06bdc5
Feature: only log health when health state changes
2021-02-09 02:45:50 +00:00
Quentin McGaw
84787f0ea2
Fix: restore nordvpn ping settings, refers to #368
2021-02-09 02:30:39 +00:00
Quentin McGaw
f69b3dbbe6
Fix: Windscribe: TLS keys out of sync ( #347 )
...
* Add reneg-sec 0
* Add ncp-disable
2021-02-08 20:49:54 -05:00
Quentin McGaw
ec5ec6f02c
Fix: defaults to run openvpn as root
2021-02-08 00:05:54 +00:00
Quentin McGaw
5d681e635b
Fix: restore surfshark ping to 15s
2021-02-08 00:05:22 +00:00
Quentin McGaw
3deb65b529
Feature: log out country, region and city of IP
2021-02-08 00:01:14 +00:00
Quentin McGaw
3e527fee8b
Fixes #370 (bug introduced)
2021-02-07 18:15:31 +00:00
Quentin McGaw
b1f1f94a76
Maintenance: remove some type aliases
2021-02-06 18:31:14 +00:00
Quentin McGaw
43e140e6cc
Fix linting errors
2021-02-06 17:16:58 +00:00
Quentin McGaw
7ca9d445f1
Maintenance: package comments
2021-02-06 16:26:23 +00:00
Quentin McGaw
90aaf71270
Configuration package ( #369 )
2021-02-06 11:05:50 -05:00
Quentin McGaw
4f2570865c
Add pull filter ignore ping restart
...
- Refers to OpenVPN reports error #368
2021-02-05 03:16:19 +00:00
Quentin McGaw
81556ec2e1
Maintenance: improve DNS settings log
2021-02-01 01:22:46 +00:00
Quentin McGaw
dd5a9c6067
Fix: empty connection for NordVPN and Windscribe
2021-01-31 18:45:58 +00:00
Quentin McGaw
982c50c756
Improve panic message for empty connection
2021-01-31 18:42:58 +00:00
Quentin McGaw
3c7dc9b9ad
Feature: Private Internet Access custom port
2021-01-31 01:27:13 +00:00
Quentin McGaw
8f4354936c
Fix: remove PureVPN route option ( #339 )
2021-01-30 19:54:40 -05:00
Quentin McGaw
e50941277f
Fix: Alpine to 3.12 for 32 bit compatibility
2021-01-31 00:46:53 +00:00
Quentin McGaw
a72647b925
Feature: update servers information with more IP addresses ( #365 )
2021-01-30 14:08:14 -05:00
Quentin McGaw
e254849009
Fix: update mechanism for PIA and update servers
...
- Separate TCP and UDP servers as they have different CNs
- Update server hardcoded information constants
2021-01-30 18:22:15 +00:00
Quentin McGaw
5757f0e201
Fix: Only log subproc error when it's not nil
2021-01-30 18:07:12 +00:00
Quentin McGaw
75fdf7adab
Fix: Pass down context to CLI commands
2021-01-30 17:29:27 +00:00
Quentin McGaw
702eafae4c
Feature: update Surfshark servers information
2021-01-29 18:53:16 +00:00
Quentin McGaw
4abb8cd87f
Add panic checks
2021-01-29 00:32:43 +00:00
Quentin McGaw
5194361f3b
Fix public IP on restarts, refers to 359
2021-01-29 00:06:55 +00:00
Quentin McGaw
bc83b75634
(Fix) Lint errors
2021-01-26 01:09:09 +00:00
Quentin McGaw
b1ff95affa
Maintenance: Fix exit race condition
2021-01-26 01:04:15 +00:00
Quentin McGaw
a243d48fb1
Maintenance: improve stream merging
2021-01-26 04:17:22 +00:00
Quentin McGaw
937d09f1c3
CI: Fix publish job CI
2021-01-23 16:58:46 +00:00
dependabot[bot]
3769092888
Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 ( #344 )
2021-01-23 11:25:08 -05:00
Quentin McGaw
75281dee07
CI: remove risv64 as Alpine does not support it
2021-01-23 16:22:28 +00:00
Quentin McGaw
26a7c5eaef
Feature: openvpn exits on TLS error
2021-01-22 13:36:56 +00:00
Quentin McGaw
1e8254fabf
CI: Update golangci-lint to v1.35.2
2021-01-22 13:32:47 +00:00
Quentin McGaw
43b6509b43
Feature: upgrade to Alpine 3.13
2021-01-22 13:32:05 +00:00
Quentin McGaw
204c5b2446
Feature: add 10s ping with 60s exit ping for all
2021-01-22 13:30:06 +00:00
Quentin McGaw
7ab3347604
CI: Remove duplicate COPY in Dockerfile
2021-01-22 13:21:42 +00:00
Quentin McGaw
2f24a79d4d
CI: Go mod tidy check
2021-01-22 13:20:54 +00:00
Quentin McGaw
819b1fe0f6
CI: Merge workflows in build.yml
2021-01-22 13:19:45 +00:00
Quentin McGaw
9f04b2d56c
(fix) Update Nordvpn servers timestamp
2021-01-20 03:50:38 +00:00
Quentin McGaw
5eff5fac67
Update Nordvpn servers list
2021-01-20 03:44:55 +00:00
Quentin McGaw
d033d08c4d
Maintenance: unit tests utils in provider package
2021-01-20 03:36:36 +00:00
Quentin McGaw
25644d061e
Fix build (lint error)
2021-01-19 14:20:57 +00:00
Quentin McGaw
e7372f22cb
Feature: OPENVPN_MSSFIX variable
2021-01-19 02:55:38 +00:00
Quentin McGaw
4530dd4fea
Maintenance: OpenVPN BuildConf arity reduced
2021-01-19 02:42:16 +00:00
Quentin McGaw
072528af83
CI: Dockerfile fixes
...
- Pin xcputranslate version
- Update xcputranslate usage
- Set default BUILDPLATFORM to linux/amd64
2021-01-18 00:58:47 +00:00
Quentin McGaw
2c4d577f23
Maintenance: Update golibs and update params
2021-01-10 23:06:09 +00:00
Quentin McGaw
edd67e3473
Remove pull_request_target based workflow
2021-01-08 03:13:40 +00:00
Quentin McGaw
f389642dba
Maintenance: Improve Go devcontainer settings
2021-01-08 02:27:48 +00:00
Quentin McGaw
b8690c7f83
CI: Change microbadger hook to gluetun
2021-01-08 02:25:41 +00:00
Quentin McGaw
06b809a492
Maintenance: Improve .dockerignore
2021-01-08 02:24:31 +00:00
Quentin McGaw
2ceda2faaa
Documentation: Move sections to Wiki
2021-01-08 02:24:15 +00:00
Quentin McGaw
c7fc3afc21
Fix: DNS_KEEP_NAMESERVER behavior
2021-01-06 21:52:55 +00:00
Quentin McGaw
af57043afd
Add docker and gomod to dependabot config
2021-01-06 04:23:09 +00:00
Quentin McGaw
4a85f3660c
CI: Further reworking of workflows
2021-01-06 04:22:56 +00:00
dependabot[bot]
69713f34b2
CI: Bump crazy-max/ghaction-github-labeler from v1 to v3.1.1 ( #335 )
2021-01-05 22:41:01 -05:00
Quentin McGaw
55801597c6
Feature: Supports s390x and ppc64le
2021-01-06 01:31:04 +00:00
Quentin McGaw
ff3cc98d46
Maintenance: dependabot monitoring of Actions
2021-01-06 01:28:52 +00:00
Quentin McGaw
79489796ae
CI: Add QEMU setup before buildx
2021-01-06 06:23:03 +00:00
Quentin McGaw
8e495494fd
CI: Faster builds with buildx and xcputranslate
2021-01-06 06:10:42 +00:00
Quentin McGaw
1abb716bb6
Maintenance: Fix test data race
2021-01-06 06:09:19 +00:00
Quentin McGaw
3f012dd7a3
CI: rework Github build workflows and Dockerfile
2021-01-06 06:02:31 +00:00
Quentin McGaw
bf6bab7963
(Fix): Exit code 0 when expected (healthcheck fix)
2021-01-04 13:41:56 +00:00
Quentin McGaw
9db10f56ef
Maintenance: remove vscode workspace directory
2021-01-04 03:50:31 +00:00
Quentin McGaw
3b91e351b7
Maintenance: using channels instead of wrap functions
2021-01-04 01:49:05 +00:00
Quentin McGaw
657937d272
Maintenance: Add waitgroup to collectStreamLines
2021-01-04 01:46:50 +00:00
Quentin McGaw
d294fbab15
Bug fix: Unbound log line processing, fix #333
2021-01-04 01:44:24 +00:00
Quentin McGaw
cfbf5624e1
Maintenance: rework main function
2021-01-04 01:40:07 +00:00
Quentin McGaw
c833e9a1a8
CI: Remove microbadger web hook for buildx branch and release
2021-01-03 04:03:13 +00:00
Quentin McGaw
f1b261163b
Fix DNS_KEEP_NAMESERVER behavior
2021-01-03 03:52:07 +00:00
Quentin McGaw
4553240601
Feature: Improve DNS settings start log
2021-01-03 00:51:47 +00:00
Quentin McGaw
007a4536c7
Code: Access control subnets settings for Unbound
2021-01-03 00:36:03 +00:00
Quentin McGaw
31cf5d4a5a
Fix #331 (DNS ready signaling fixed)
2021-01-02 23:51:05 +00:00
Quentin McGaw
3e3bd05c79
CI: Only test and lint on amd64 builds
2021-01-02 23:46:30 +00:00
Quentin McGaw
20deaf2950
Bug fix: DNS setup failure loop behavior
2021-01-02 20:39:43 +00:00
Quentin McGaw
680aef62ee
(Bug fix): Fix Unbound
...
- Set binary filepath
- Set ca certs filepath
2021-01-02 20:39:24 +00:00
Quentin McGaw
f5eb4887a7
(Bug fix): DOT provider check
2021-01-02 19:24:01 +00:00
Quentin McGaw
dc3452c5b7
Feature: Log passed after healthcheck succeeds after a failure
2021-01-02 18:36:15 +00:00
Quentin McGaw
a67efd1ad1
Code maintenance: Using qdm/dns and qdm12/updated
2021-01-02 18:31:39 +00:00
Quentin McGaw
5dcbe79fa8
Move OS package to golibs
2021-01-02 01:57:00 +00:00
Quentin McGaw
574ac9a603
Maintenance: update buildx Github workflow to v3
2021-01-01 20:46:52 +00:00
Quentin McGaw
6871444728
Change: remove decomissioned SecureDNS option
2021-01-01 20:45:11 +00:00
Quentin McGaw
f4db7e3e53
Change: remove LibreDNS, it does'nt support DNSSEC
2021-01-01 20:44:01 +00:00
Quentin McGaw
da92b6bfb9
Bug fix: Privado server selection
2020-12-31 21:57:26 +00:00
Quentin McGaw
d713782fe1
Change: Use SERVER_HOSTNAME instead of HOSTNAME
2020-12-31 21:50:28 +00:00
Quentin McGaw
02cde5f50b
Code maintenance: consistent proto type conversion
2020-12-31 21:39:34 +00:00
Quentin McGaw
c5a7a83d3a
Bug fix: do not fail if servers.json is empty
2020-12-31 21:19:29 +00:00
Quentin McGaw
6655a1a5e6
Bug fix: Update hardcoded Purevpn server data
...
- Refers to #320
2020-12-31 21:07:49 +00:00
Quentin McGaw
b8cb181070
Bug fix: PureVPN updater from ZIP files
...
- Fix #317
- Refers to #320
2020-12-31 21:07:30 +00:00
Quentin McGaw
a56471fe73
Code maintenance: rework ovpn host extraction
2020-12-31 20:35:49 +00:00
Quentin McGaw
8c769812ae
Documentation: minor readme improvements
2020-12-31 04:49:18 +00:00
Quentin McGaw
f7a842e4ee
Documentation: readme sections moved to Wiki
2020-12-31 04:40:04 +00:00
Quentin McGaw
23c0334f68
Documentation: Add visitors count to readme
2020-12-31 03:49:01 +00:00
Quentin McGaw
e2ee7a0408
Documentation: minor issue template update
2020-12-31 03:00:15 +00:00
Quentin McGaw
8f862b3df7
Bug fix: Remove trail newline from secrets
...
- Fix #330
2020-12-31 02:03:51 +00:00
Quentin McGaw
ae1f91a997
Documentation: Update Docker image labels
2020-12-30 22:30:59 +00:00
Quentin McGaw
d4fb76770f
Documentation: Moare badges and metadata
2020-12-30 22:29:18 +00:00
Quentin McGaw
ea28c791e6
Code maintenance: http proxy starts from Run func
2020-12-30 22:02:47 +00:00
Quentin McGaw
251555f859
Code maintenance: Shadowsocks loop refactor
2020-12-30 22:01:08 +00:00
Quentin McGaw
fa7bda7ee4
Code maintenance: remove unneeded defaultInterface in Shadowsocks
2020-12-30 21:43:45 +00:00
Quentin McGaw
f385c4203a
Bug fix: truncate /etc/resolv.conf, fixing DNS
...
- Refers to #326
- Refers to #329
2020-12-30 20:48:41 +00:00
Quentin McGaw
1e4243dedb
Bug fix: Stop DOT if disabled by new settings
2020-12-30 20:38:59 +00:00
Quentin McGaw
5f78ee7b79
Bug fix: missing mutex Unlock in DNS set settings
2020-12-30 20:37:14 +00:00
Quentin McGaw
c6eb5c1785
Bug fix: Plaintext DNS fix ( #326 , #329 )
2020-12-30 20:36:19 +00:00
Quentin McGaw
11338b6382
Feature: faster healthcheck, fix #283
2020-12-30 19:34:11 +00:00
Quentin McGaw
6f3a074e00
Code maintenance: HTTP proxy loop reworked
...
- Blocking method calls on loop
- Restart proxy when settings change
- Detect server crash error and restart it
2020-12-30 18:44:46 +00:00
Quentin McGaw
e827079604
Code maintenance: updater loop waitgroup
2020-12-30 18:32:58 +00:00
Quentin McGaw
cf66db8d4b
Bug fix: Stopping updater loop deadlock
2020-12-30 18:29:28 +00:00
Quentin McGaw
25acbf8501
Feature: Increasing backoff time for crashes
...
- Fix #247
2020-12-30 17:22:54 +00:00
Quentin McGaw
e4c7a887d2
Bug fix: healthcheck uses DOT via default resolver
2020-12-30 16:43:08 +00:00
Quentin McGaw
fb8a615660
Feature: Update PIA servers using v5 PIA API
2020-12-30 15:54:13 +00:00
Quentin McGaw
1d9d49f406
Bug fix: Privado settings log
2020-12-30 15:34:07 +00:00
Quentin McGaw
0069b59ffe
Change: remove redundant dns over tls log
2020-12-30 15:29:40 +00:00
Quentin McGaw
d4ba1b1e09
Bug fix: larger timeout for healtcheck
2020-12-30 15:24:46 +00:00
Quentin McGaw
3a20b84f3a
Documentation: readme changes
...
- Remove videos section (outdated)
- Add quick links section for help and support
- Simplify support section
2020-12-29 23:00:55 +00:00
Quentin McGaw
d52fc777ac
Code maintenance: update dockerhub readme workflow
2020-12-29 22:46:44 +00:00
Quentin McGaw
5753a428d8
Documentation: announcement on newer image name
2020-12-29 22:46:18 +00:00
Quentin McGaw
85afef5775
Change: gluetun docker image name
2020-12-29 22:10:44 +00:00
Quentin McGaw
b4fc24995c
Code maintenance: Microbadger hook uses continue-on-error
2020-12-29 21:35:09 +00:00
Quentin McGaw
5917bb10e4
Feature: Docker secrets, refers to #306
2020-12-29 20:47:56 +00:00
Quentin McGaw
258e150ebf
Code maintenance: GetPassword signature changed
2020-12-29 20:06:24 +00:00
Quentin McGaw
96f2b2b617
Change: PASSWORD changed to OPENVPN_PASSWORD
2020-12-29 20:05:17 +00:00
Quentin McGaw
d556db079b
Change: USER changed to OPENVPN_USER
2020-12-29 20:02:58 +00:00
Quentin McGaw
a811a82329
Change: Remove CLIENT_KEY variable
2020-12-29 19:54:58 +00:00
Quentin McGaw
d17a0dae1f
Documentation: Missing PUID and PGID update
2020-12-29 19:46:41 +00:00
Quentin McGaw
ef40f2f91b
Code maintenance: Use Unset() option for params
2020-12-29 18:29:21 +00:00
Quentin McGaw
a921f9848c
Code maintenance: CLI interface abstraction
2020-12-29 18:24:03 +00:00
Quentin McGaw
95ba3261fd
Code maintenance: lint bug fix for armv7
2020-12-29 18:16:29 +00:00
Quentin McGaw
fe81eb65c2
Bug fix: Program exit on Openvpn fatal error
2020-12-29 17:50:36 +00:00
Quentin McGaw
8428714cf5
Code maintenance: upgrade golangci-lint to 1.34.1
2020-12-29 17:50:12 +00:00
Quentin McGaw
bedf613cff
Code maintenance: storage merging reworked
2020-12-29 17:49:38 +00:00
Quentin McGaw
e643ce5b99
Fix publicip and updater loops exit bugs
2020-12-29 16:44:55 +00:00
Quentin McGaw
cb64302294
Rename UID and GID to PUID and PGID
2020-12-29 16:44:35 +00:00
Quentin McGaw
8d5f2fec09
Code maintenance: use native Go HTTP client
2020-12-29 02:55:34 +00:00
Quentin McGaw
60e98235ca
Code maintenance: Better deps injection in main.go
2020-12-29 01:21:54 +00:00
Quentin McGaw
f55fb4055f
Code maintenance: OS user abstraction interface
2020-12-29 01:16:53 +00:00
Quentin McGaw
da4e410bb7
Upgrade direct dependencies
2020-12-29 01:06:08 +00:00
Quentin McGaw
cdd1f87437
Code maintenance: Remove unneeded ctrl.Finish()
2020-12-29 01:04:07 +00:00
Quentin McGaw
7058373916
Code maintenance: Unix abstraction interface
...
- Used for creating the tun device if it does not exist
- Mocks generated for testing
2020-12-29 01:02:47 +00:00
Quentin McGaw
8dd38fd182
Code maintenance: better JSON decoding for HTTP
2020-12-29 00:56:51 +00:00
Quentin McGaw
73479bab26
Code maintenance: OS package for file system
...
- OS custom internal package for file system interaction
- Remove fileManager external dependency
- Closer API to Go's native API on the OS
- Create directories at startup
- Better testability
- Move Unsetenv to os interface
2020-12-29 00:55:31 +00:00
Quentin McGaw
f5366c33bc
Remove unneeded .Times(1) for unit tests mocks
2020-12-28 01:52:30 +00:00
Quentin McGaw
db886163c2
Public IP getter loop refactored
2020-12-28 01:51:55 +00:00
Quentin McGaw
91f5338db0
Fix updater loop bug
2020-12-28 01:50:13 +00:00
Quentin McGaw
82a02287ac
Public IP endpoint with GET /ip fixing #319
2020-12-27 21:06:00 +00:00
Quentin McGaw
2dc674559e
Re-use username for UID if it exists
2020-12-27 00:36:39 +00:00
Quentin McGaw
38e713fea2
Fix Block-outside-dns #316
2020-12-23 06:46:54 +00:00
Quentin McGaw
2cbb14c36c
Fix Purevpn settings display, refers to #317
2020-12-22 14:08:12 +00:00
Quentin McGaw
610e88958e
Upgrade golangci-lint to v1.33.0
2020-12-22 13:52:37 +00:00
Quentin McGaw
bb76477467
Fix #316
2020-12-22 13:49:49 +00:00
Quentin McGaw
433a799759
Fix environment variables table for Purevpn
2020-12-22 13:46:52 +00:00
Quentin McGaw
22965ccce3
Fix #315
2020-12-22 06:21:25 +00:00
Quentin McGaw
4257581f55
Loops and HTTP control server rework ( #308 )
...
- CRUD REST HTTP server
- `/v1` HTTP server prefix
- Retrocompatible with older routes (redirects to v1 or handles the requests directly)
- DNS, Updater and Openvpn refactored to have a REST-like state with new methods to change their states synchronously
- Openvpn, Unbound and Updater status, see #287
2020-12-19 20:10:34 -05:00
Quentin McGaw
d60d629105
Dev container documentation and cleanup
2020-12-08 06:24:46 +00:00
Quentin McGaw
3f721b1717
Simplify Github workflows triggers
2020-12-07 02:15:50 +00:00
Quentin McGaw
97049bfab4
Add 256x256 png logo for Unraid
2020-12-07 02:11:23 +00:00
Quentin McGaw
84944a87d3
HTTP proxy authentication fixes ( #300 )
...
- Only accepts HTTP 1.x protocols
- Only checks the credentials when the method is `CONNECT` or the request URL is absolute
- More logging on authorization failures
- Removes the authorization headers before forwarding the HTTP(s) requests
- Refers to #298
2020-12-01 22:29:31 -05:00
Quentin McGaw
fb62910b17
HTTP proxy 24 hours timeout, fix #303
2020-11-21 01:26:02 +00:00
Quentin McGaw
1cc0f5fee9
Fix #296 (Cyberghost implementation) ( #297 )
...
* Reads the client key from /gluetun/client.key
* Read the client certificate from /gluetun/client.crt
* Additional checks for client key and client certificate validity
* Fix client key file parsing if environment variable isn't present
2020-11-19 08:50:55 -05:00
Quentin McGaw
6896cf4258
Update PIA hardcoded servers information
2020-11-14 22:21:08 +00:00
Quentin McGaw
188d63c6b8
Fix #298
2020-11-13 01:14:05 +00:00
Quentin McGaw
cbc5d466f6
Fix Shadowsocks UDP logs
2020-11-13 00:42:14 +00:00
Quentin McGaw
aef14a9f6d
Assimilate PIA v4 as PIA in code
2020-11-10 13:35:49 +00:00
Quentin McGaw
f48392064e
Update issue templates
2020-11-10 01:29:47 +00:00
Quentin McGaw
994bdd0ca7
Update Gituhb labels
2020-11-10 01:16:12 +00:00
Quentin McGaw
40ed070f21
Filter Privado servers by hostnames only
2020-11-09 23:17:22 +00:00
Quentin McGaw
f1e4b9937b
Privado support, fix #285 ( #288 )
2020-11-08 20:56:49 -05:00
Quentin McGaw
0423388b52
Fix build information setting at build time
2020-11-07 22:31:20 +00:00
Quentin McGaw
096a9c5fc0
Fix #289
2020-11-06 02:54:27 +00:00
Quentin McGaw
7518f74729
Refactor HTTP control server code
2020-11-05 22:26:53 +00:00
Quentin McGaw
854401a150
PureVPN servers json tag fix
2020-11-05 02:22:33 +00:00
Quentin McGaw
a7a7efe9c3
Remove PIA v3 servers support
2020-11-05 02:10:34 +00:00
Quentin McGaw
31883f9adb
Windscribe API and more servers filter options, fixes #197 ( #282 )
...
- Use Windscribe API to fetch servers information
- More data on servers about region, city and hostname
- Add optional server filters with `REGION`, `CITY` and `HOSTNAME` csv environment variables
2020-11-04 20:38:35 -05:00
Quentin McGaw
3b04677f8f
HTTP control server /version endpoint
2020-11-04 14:07:04 +00:00
Quentin McGaw
b5fb2b849a
DOT listens on all interfaces, refers to #281
2020-11-04 03:14:27 +00:00
Quentin McGaw
0c9f74ffa4
HTTP proxy written in Go to replace Tinyproxy ( #269 )
2020-10-31 21:50:31 -04:00
Quentin McGaw
58da55da1e
Retrocompatiblity with EXTRA_SUBNETS key
2020-10-29 23:32:15 +00:00
Quentin McGaw
db64dea664
Fix #273 ( #277 ), adding FIREWALL_OUTBOUND_SUBNETS
2020-10-29 19:23:44 -04:00
Quentin McGaw
f7bff247aa
Fix #275
2020-10-28 22:09:58 +00:00
Quentin McGaw
edc08c46d4
Health server runs on 127.0.0.1:9999, fix #272
2020-10-27 03:28:25 +00:00
Quentin McGaw
78d83145ba
Increase http timeout to 30s for piav4
...
- Refers to #271
2020-10-26 21:53:18 +00:00
Quentin McGaw
0c81154f36
No firewall setup needed for Shadowsocks
2020-10-26 02:52:10 +00:00
Quentin McGaw
53fe08ea26
Fix Mullvad CSV city bug
2020-10-25 21:13:26 +00:00
Quentin McGaw
a6cb1a7052
Remove x/net Go dependency
2020-10-25 20:45:14 +00:00
Quentin McGaw
c64fe7e45d
Routing: use 0.0.0.0/0 instead of nil
2020-10-25 20:41:09 +00:00
Quentin McGaw
a062135148
Add routing verbose option in code
2020-10-25 20:40:17 +00:00
Quentin McGaw
5ae7c15211
Unused shadowsocks code cleanup
2020-10-25 20:38:16 +00:00
Quentin McGaw
f29707fa9f
Remove unneeded openvpn remote-random
2020-10-24 22:26:15 +00:00
Quentin McGaw
e97d1e4a9a
Set default for DOT_CACHING in code
2020-10-24 22:24:20 +00:00
Quentin McGaw
ed4fcc17b3
Routing improvements ( #268 )
...
- Fixes #82
- Remove `EXTRA_SUBNETS`
- Remove no longer needed iptables rules
- Reduce routing interface arity
- Routing setup is done in main.go instead of in the firewall
- Routing setup gets reverted at shutdown
2020-10-24 18:05:11 -04:00
Quentin McGaw
716eb14da1
Allow empty string for CSV variables with golibs
2020-10-24 19:09:54 +00:00
Quentin McGaw
f92489f99b
Fix Nordvpn number empty string allowance
2020-10-24 18:45:44 +00:00
Quentin McGaw
ea3b3bc8a3
Netlink Go library to interact with IP routes ( #267 )
2020-10-22 18:55:28 -04:00
Quentin McGaw
a80cb8f9ba
VSCode development container changes
...
- SSH directory bind mounted as read write
- Remove linters list from devcontainer, use workspace ones instead
2020-10-22 03:54:18 +00:00
Quentin McGaw
d4813ba21c
Fix #265 and refers to #256
...
- Logs a message about auth failure for PIA v4 servers
2020-10-22 00:36:12 +00:00
Quentin McGaw
bf92008e45
Fix #263
2020-10-20 18:13:59 +00:00
Quentin McGaw
9c73faaaeb
Add linters and fix lint issues
2020-10-20 02:45:28 +00:00
Quentin McGaw
f9bef8ecda
Fix #102
2020-10-19 00:28:07 +00:00
Quentin McGaw
302adb26d7
Fix servers filtering for PIA
2020-10-18 23:44:16 +00:00
Quentin McGaw
af606463ea
Multi options filters, fixes #231 ( #262 )
...
* OWNED environment variable for Mullvad
* CSV are now accepted for all servers filtering environment variables
2020-10-18 17:15:42 -04:00
Quentin McGaw
c932f48a95
Fixes #254 new variable FIREWALL_INPUT_PORTS ( #260 )
2020-10-18 09:22:28 -04:00
Quentin McGaw
84c1f46ae4
Upgrade dependencies
...
- Use of context for custom http client
- Remove unused nodeid for logger
- Upgrade shadowsocks dependency
2020-10-18 02:24:34 +00:00
Quentin McGaw
b27e637894
HTTP_CONTROL_SERVER_LOG variable, fixes #249
2020-10-17 22:21:20 +00:00
Quentin McGaw
4da9607b4d
Do not log healthcheck HTTP requests
2020-10-17 22:17:08 +00:00
Quentin McGaw
8abc22977c
Fix #261 add variable HTTP_CONTROL_SERVER_PORT
2020-10-17 22:07:15 +00:00
Quentin McGaw
6f4be72785
Using context for HTTP requests
2020-10-17 21:54:09 +00:00
Quentin McGaw
0d2ca377df
PIA port forwarding final fixes ( #259 )
...
- Returns an error if the server does not support port forwarding
- TLS verification using the server common name obtained through the API
- Updated readme
- Fixes #236
2020-10-15 22:53:13 -04:00
Quentin McGaw
98f778c3bb
Improve timing behavior of ticking in loops
2020-10-15 23:20:36 +00:00
Quentin McGaw
9b9ae69404
Repurpose OPENVPN_TARGET_IP for #229
2020-10-12 20:21:26 +00:00
Quentin McGaw
1c747a10c8
Fix CN data for PIA v4 servers
2020-10-12 19:34:36 +00:00
Quentin McGaw
c4354871f7
Single connection written to openvpn configuration ( #258 )
...
- From now only a single OpenVPN connection is written to the OpenVPN configuration file
- If multiple connections are matched given the user parameters (i.e. city, region), it is picked at pseudo random using the current time as the pseudo random seed.
- Not relying on Openvpn picking a random remote address, may refer to #229
- Program is aware of which connection is to be used, in order to use its matching CN for port forwarding TLS verification with PIA v4 servers, see #236
- Simplified firewall mechanisms
2020-10-12 15:29:58 -04:00
Quentin McGaw
9f6450502c
Obtain PIA v4 server information from API ( #257 )
...
- Obtain CN for port forwarding https verification
- Obtain for each server if they support port forwarding
- Obtain for each server their IP address for openvpn UDP and openvpn TCP (one for each)
- Updater program updated to use API
- Hardcoded values updated for PIA v3 and v4 servers
- Clearer separation between pia v3 and v4
- Fixes #250
2020-10-12 13:57:45 -04:00
Quentin McGaw
ae7fc5fe96
Fix guard pattern for max parallel DNS requests
2020-10-12 17:35:46 +00:00
Quentin McGaw
ec157f102b
PIA nextgen portforward ( #242 )
...
* Split provider/pia.go in piav3.go and piav4.go
* Change port forwarding signature
* Enable port forwarding parameter for PIA v4
* Fix VPN gateway IP obtention
* Setup HTTP client for TLS with custom cert
* Error message for regions not supporting pf
2020-10-12 10:55:08 -04:00
Quentin McGaw
fbecbc1c82
Fix updater guard pattern ( #255 )
2020-10-01 17:56:14 -04:00
Quentin McGaw
ecf76896a2
Mullvad: configurable ipv6 tunneling ( #253 )
...
- Disabled by default
- Wiki pages updated
- Readme updated
2020-09-26 09:33:24 -04:00
Quentin McGaw
ae876b93d7
Update readme Wiki links
2020-09-25 23:12:34 +00:00
Quentin McGaw
606f2cffce
Fix Shadowsocks documentation, fixing #245
2020-09-18 19:56:53 +00:00
Quentin McGaw
564d9cbf90
Faster servers information updater ( #248 )
...
* Asynchronous repeatResolve
* Parallel cyberghost and PIA (v3) processing, with a 10 goroutines limit
* Add missing vyprvpn cli flag to updater
* Increase DNS repetitions to 5 in order to obtain more IP addresses
* Update old PIA IP addresses
* Add Surfshark servers by API (unused for now)
2020-09-18 15:52:28 -04:00
Quentin McGaw
c5b5ae9ca7
Add warning logs when openvpn cannot connect
2020-09-18 14:28:14 +00:00
Quentin McGaw
4e0bd46dd5
Updated Mullvad servers information
2020-09-18 14:16:17 +00:00
Quentin McGaw
f9b6e854b1
Fix surfshark updater and update server data
2020-09-13 00:41:31 +00:00
Quentin McGaw
1fc1776dbf
Simplify main.go
2020-09-12 19:17:19 +00:00
Quentin McGaw
464c7074d0
Get public IP and version only when DNS is ready
2020-09-12 18:50:42 +00:00
Quentin McGaw
cb1520cb18
Write 200 http status codes to restart routes
2020-09-12 18:37:06 +00:00
Quentin McGaw
e0e450ca1c
Revisit waitgroup ( #241 )
...
* Fix Add to waitgroup out of goroutines calling wg.Done()
* Pass waitgroup to other loop functions
2020-09-12 14:34:15 -04:00
Quentin McGaw
1c012e4c92
Minor readme changes
...
- Mullvad ipv6 startup error fix
- VPNSP variable in docker run example command
2020-09-12 18:06:52 +00:00
Quentin McGaw
78ce272bd0
Minor Dockerfile changes
2020-09-12 18:06:10 +00:00
Quentin McGaw
a19efbd923
Updater loop with period and http route ( #240 )
...
* Updater loop with period and http route
* Using DNS over TLS to update servers
* Better logging
* Remove goroutines for cyberghost updater
* Respects context for servers update (quite slow overall)
* Increase shutdown grace period to 5 seconds
* Update announcement
* Add log lines for each provider update start
2020-09-12 14:04:54 -04:00
Quentin McGaw
ee64cbf1fd
Use IP addresses resolved for PIA old servers ( #239 )
...
- Fix #238
- Not using raw IPs from PIA as they seem invalid
- Update PIA old server information
2020-09-10 21:09:16 -04:00
Quentin McGaw
5b3cbb6906
Fix #235 : DNS over TLS log messages
2020-09-09 21:44:50 +00:00
Quentin McGaw
443c7e36d7
Youtube videos added
2020-09-09 20:52:22 +00:00
Max Isom
22b389b6f8
Fix firewall reference to Wiki ( #237 )
2020-09-09 16:45:36 -04:00
Quentin McGaw
797fa33971
Servers updater ( #232 )
...
* Support for all VPN providers
* Update all VPN providers servers information
* Remove old tooling binaries
2020-09-05 12:57:16 -04:00
Quentin McGaw
9dcc00900e
Healthcheck moved to HTTP control server
2020-08-31 01:57:45 +00:00
Quentin McGaw
7c102c0028
Fix #135
2020-08-30 14:48:57 +00:00
Quentin McGaw
aac5274eab
Fix #224
2020-08-29 19:14:52 +00:00
Quentin McGaw
049bc5b226
Mullvad updater ( #228 )
...
* Add Mullvad to updater cli
* Update hardcoded servers for Mullvad
2020-08-29 13:19:34 -04:00
Quentin McGaw
d463e4cb69
New PIA servers support ( #227 )
...
* Adapt storage: SyncServers write to file option, export FlushToFile
* CLI built-in updater for old and new PIA servers
* Update hardcoded IP addresses for PIA old and new servers
* Add PIA old to allServers struct and update timestamps
* Adapt code to work with new and old PIA servers
* Remove PIA subdomains (unneeded) from resolver tool
2020-08-28 08:17:04 -04:00
Quentin McGaw
99ba56f574
Fix server filtering using merged server data
2020-08-27 23:06:28 +00:00
Quentin McGaw
93aaf1ab02
Fix exiting without fatalOnError function
2020-08-27 22:59:58 +00:00
Quentin McGaw
aa9693a84d
Persistent server pools ( #226 )
...
* GetAllServers with version & timestamp tests
* Storage package to sync servers
* Use storage Sync to get and use servers
2020-08-25 19:38:50 -04:00
Quentin McGaw
6fc2b3dd21
Mullvad servers do not have a default port
...
- Refers to #218
- Checks for custom port value depending on protocol
- Remove default port from server constants
- Use 443 and 1194 ports respectively for tcp and udp
2020-08-24 01:53:24 +00:00
hyness
7e3e6f166a
Add new PIA servers hostnames to resolver tool ( #222 )
...
Refers to #216
2020-08-20 19:20:59 -04:00
Quentin McGaw
c614a192a4
Shadowsocks in Go ( #220 ), fixes #211
2020-08-20 19:19:54 -04:00
Quentin McGaw
b10a476622
Default status file base directory /tmp/gluetun
2020-08-18 01:08:24 +00:00
Quentin McGaw
15ddbdefef
Bump versions and binary build changes
...
- Go version 1.15
- Golangci-lint 1.30
- Trim path of binary built
2020-08-17 20:39:49 -04:00
Quentin McGaw
78323f0a33
Update PIA IP addresses, fixes #215
2020-08-08 16:27:51 +00:00
Quentin McGaw
cd60fe4406
Add PIA US Dallas region, refers to #212
2020-07-28 02:40:38 +00:00
Quentin McGaw
a2a9410053
Fix #212
2020-07-28 00:31:19 +00:00
Quentin McGaw
f95f6201b1
Rename repo to Gluetun, refers to #112
2020-07-26 12:07:06 +00:00
Quentin McGaw
90e5742211
Reduce readme size
2020-07-25 11:55:35 -04:00
Quentin McGaw
8f547500d0
Purevpn support ( #208 )
...
Fixes #192
2020-07-25 11:19:45 -04:00
Quentin McGaw
0811b8b099
Server filtering fixes for Mullvad and Nordvpn
2020-07-23 02:16:12 +00:00
Quentin McGaw
c5c53a2ff8
FatalOnError fixes
2020-07-23 02:15:37 +00:00
Quentin McGaw
0ce129b63d
Make all variables behave like server filters
2020-07-23 01:48:18 +00:00
Quentin McGaw
fec1249293
Uniformize server selection filtering
2020-07-23 01:46:28 +00:00
Quentin McGaw
a5c35455d1
Update PIA IP addresses
2020-07-20 02:32:02 +00:00
Quentin McGaw
28e0abc922
FIREWALL_VPN_INPUT_PORTS variable, fixes #196
2020-07-20 02:07:13 +00:00
Quentin McGaw
a13be8f45e
Firewall simplifications
...
- Only a map of allowed input port to interface
- port forwarded is in the map of allowed input ports
- port forwarded has the interface tun0 in this map
- Always allow tcp and udp for allowed input ports
- Port forward state is in openvpn looper only
- Shadowsocks input port allowed on default interface only
- Tinyproxy input port allowed on default interface only
2020-07-20 00:39:59 +00:00
Quentin McGaw
85bd4f2e8d
Get default route and local subnet only at start
2020-07-20 00:35:53 +00:00
Quentin McGaw
4baf0420d6
Openvpn get settings http route
2020-07-19 14:26:24 +00:00
Quentin McGaw
29f74df450
Fix #202
2020-07-19 14:22:23 +00:00
Quentin McGaw
fab9939b26
Simplify DNS loop a bit and fixes #199
2020-07-17 01:16:49 +00:00
Quentin McGaw
b4a4e441c1
Fix #199 when ticker period is 0
2020-07-16 12:00:25 +00:00
Quentin McGaw
e8526141be
Fix issues in readme
2020-07-16 01:52:09 +00:00
Quentin McGaw
9abb630692
Get and set settings for DNS
2020-07-16 01:45:05 +00:00
Quentin McGaw
9b92ece5a1
Fix race condition for public ip loop
2020-07-16 01:44:48 +00:00
Quentin McGaw
87a3e54044
Set and get settings for openvpn
2020-07-16 01:26:37 +00:00
Quentin McGaw
76b730e2a6
Improve openvpn logging
...
- Show Initialization Sequence completed in green
- Show all other openvpn logs in the openvpn color
2020-07-16 01:20:47 +00:00
Quentin McGaw
51af8d1ab0
PUBLICIP_PERIOD environment variable
2020-07-16 01:12:54 +00:00
Quentin McGaw
002ffacd35
Shadowsocks get and set settings
2020-07-16 00:05:00 +00:00
Quentin McGaw
404cee9371
Tinyproxy set and get settings
2020-07-16 00:05:00 +00:00
Quentin McGaw
f89e7aa8dc
Update readme list of VPN providers supported
2020-07-16 00:04:58 +00:00
Quentin McGaw
a0312ec916
Shadowsocks and Tinyproxy Start and Stop
2020-07-16 00:04:15 +00:00
Quentin McGaw
83cf59b93e
Start and Stop for dns over tls
2020-07-16 00:04:15 +00:00
Quentin McGaw
ad5de13c25
Logging filtering for openvpn process
2020-07-16 00:04:14 +00:00