Commit Graph

96 Commits

Author SHA1 Message Date
Quentin McGaw
f4cd1896c9 Go HTTP control server with restart openvpn route
- Fix #147
- Dockerfile updated
- Documentation updated
- Using contexts to restart openvpn
- Code foundation for more http routes
2020-04-30 23:41:57 +00:00
Quentin McGaw
ef0959a15e Update Golangci-lint to v1.25.0 2020-04-26 13:28:26 +00:00
Quentin McGaw
768147095f Golangcilint in build pipeline and fix lint errors
- Fix bad permissions bits for files
- VPNSP is 'private internet access' instead of 'pia' (retro compatible)
- Check errors of deferred unsetEnv functions in params package
-  Other lint errors fixing and code simplifications
2020-04-12 20:05:28 +00:00
Quentin McGaw
3ac3e5022c IP_STATUS_FILE and routing improvements (#130)
- Obtains VPN public IP address from routing table
- Logs and writes VPN Public IP address to `/ip` as soon as VPN is up
- Obtain port forward, logs it and writes it as soon as VPN is up
- Routing fully refactored and tested
- Routing reads from `/proc/net/route`
- Routing mutates the routes using `ip route ...`
2020-04-12 08:55:13 -04:00
Quentin McGaw
0235df74a0 SHADOWSOCKS_METHOD environment variable (#117) 2020-03-29 20:06:27 -04:00
Quentin McGaw
e5adccd9c5 Custom UID and GID for subprocesses and files written (#116) Fix #116
- Environment variables `UID` and `GID`, both defaulting to `1000`
- All subprocesses (openvpn, tinyproxy, etc.) run using the UID and GID given
- All files are written with an ownership for the UID and GID given
- Port forwarded file has also ownership for UID, GID and read permission only
2020-03-29 19:52:49 -04:00
Quentin McGaw
76cea56864 Windscribe support (#114) 2020-03-29 16:42:06 -04:00
Quentin McGaw
643745d33e OPENVPN_AUTH variable, refers to #94 2020-03-29 16:22:21 -04:00
Quentin McGaw
98b076e2cb Rename ENCRYPTION to PIA_ENCRYPTION (#98) 2020-03-26 08:11:50 -04:00
Quentin McGaw
9435db8e1e Fix #90 add env variable OPENVPN_TARGET_IP 2020-03-18 23:49:40 +00:00
Quentin McGaw
d2b361b998 Fix #81, new env variable OPENVPN_ROOT 2020-03-18 23:05:47 +00:00
Quentin McGaw (desktop)
9d786bf338 Update to Go 1.14 2020-03-18 01:04:44 +00:00
Quentin McGaw (desktop)
0c48d2d5a0 DOT_IPV6 environment variable added, refers to #88 2020-03-05 00:51:04 +00:00
Quentin McGaw (desktop)
5ee4e2fde0 Shadowsocks log defaults to off 2020-02-22 17:43:17 +00:00
Quentin McGaw (desktop)
ac60cf8ab8 Minor changes 2020-02-22 17:07:06 +00:00
Quentin McGaw (desktop)
f45f40eee1 Added OPENVPN_VERBOSITY environment variable 2020-02-22 15:48:09 +00:00
Quentin McGaw (desktop)
f181ff0005 Added Mullvad environment variables and getters 2020-02-16 20:30:29 +00:00
Quentin McGaw (desktop)
321579333d Added simple healthcheck 2020-02-08 21:50:17 +00:00
Quentin McGaw (desktop)
a76aa5276d Added DOT_PRIVATE_ADDRESS environment variable 2020-02-08 21:28:33 +00:00
Quentin McGaw (desktop)
0264f8726a Added DOT_CACHING environment variable 2020-02-08 21:28:03 +00:00
Quentin McGaw (desktop)
247dc01f8a Minor changes
- Added missing environment variables to Dockerfile
- Constant ca certificates filepath
- Removed dns/os.go unused file
- Formatting improvements
- Added comments
- Readme TODOs update
2020-02-08 21:08:49 +00:00
Quentin McGaw
64649039d9 Rewrite of the entrypoint in Golang (#71)
- General improvements
    - Parallel download of only needed files at start
    - Prettier console output with all streams merged (openvpn, unbound, shadowsocks etc.)
    - Simplified Docker final image
    - Faster bootup
- DNS over TLS
    - Finer grain blocking at DNS level: malicious, ads and surveillance
    - Choose your DNS over TLS providers
    - Ability to use multiple DNS over TLS providers for DNS split horizon
    - Environment variables for DNS logging
    - DNS block lists needed are downloaded and built automatically at start, in parallel
- PIA
    - A random region is selected if the REGION parameter is left empty (thanks @rorph for your PR)
    - Routing and iptables adjusted so it can work as a Kubernetes pod sidecar (thanks @rorph for your PR)
2020-02-06 20:42:46 -05:00
Quentin McGaw (desktop)
a21bb009e5 openvpn runs without root by default 2019-11-24 11:04:55 -05:00
Quentin McGaw (desktop)
8b313cf211 Small changes and cleanup 2019-11-24 11:04:37 -05:00
Quentin McGaw
0af0632304 Building Docker images for all CPU architectures (#57)
* Created Travis config to build images for all CPU architectures
* Updated readme
2019-11-23 18:01:18 -05:00
Quentin McGaw (desktop)
9a2d0ec3ef Simplified ARM build instructions 2019-11-21 20:45:21 -05:00
Quentin McGaw (desktop)
e8300f123f Uses new files from github.com/qdm12/files 2019-11-18 07:12:30 -05:00
elmerfdz
6856276fd7 Added tzdata so that users can set timezone via TZ var (#51)
* Update Dockerfile
* Update README.md
2019-09-16 09:10:15 -04:00
Quentin McGaw
0d41564f7d Fixes several small bugs regarding #48
- Proxies are `off` by default so `SHADOWSOCKS_PASSWORD` is not required
- Documentation fixed and clarified
- `PORT_FORWARDING` should be `on` or `off` only now (although it's backward compatible with `false` and `true`)
2019-09-10 09:05:49 -04:00
Quentin McGaw
bea809778b Shadowsocks proxy built-in, fixes #30 (#46)
* Added ShadowSocks proxy to container

* Updated docker-compose.yml example

* Updated readme with new instructions for Shadowsocks proxy
2019-09-09 20:39:47 -04:00
Quentin McGaw
87c84afb4c Small fixes 2019-09-09 13:56:50 -04:00
Quentin McGaw
aca632ab94 Tinyproxy variables renamed 2019-09-09 12:40:00 -04:00
Quentin McGaw
38f8f5ae19 Adopted new opencontainers.org labelling scheme for Dockerfile 2019-09-09 11:50:06 -04:00
Juggels
d35437bd73 Make forwarded_port file location configurable (#43)
* Make port forwarding status file dynamic

* Readme updates
2019-09-02 10:38:41 -04:00
Gauthier Delacroix
55492015cb Fix/improve port forwarding handling 2019-07-15 22:02:40 +02:00
Quentin McGaw
e4336c02d7 Fixes #28 allowing to set the port of Tinyproxy 2019-07-03 11:07:37 +02:00
Quentin McGaw
cb7bba6d42 Large refactoring: proxy+firewall+readme
- Cleaner logs
- HTTP proxy is working... finally
- Firewall was adjusted
- Firewall cannot be turned off anymore
- portforward script changes the firewall
- readme reworked
- Possibility to pass commands to Openvpn with Docker command
2019-06-29 13:42:44 +02:00
Quentin McGaw
8ce905bd1d Added web HTTP proxy 2019-06-27 13:12:03 +02:00
Quentin McGaw
95e69b5c9c More modularity and reworked readme
- Docker's init added to avoid zombie processes (i.e. Unbound)
- Added environment variables to enable or disable features: `DOT`, `FIREWALL`
- Reworked readme
2019-06-27 13:10:51 +02:00
Quentin McGaw
62f4cc56b4 Added port forwarding, fixes #14 2019-06-26 17:24:10 +02:00
Quentin McGaw
302aa58dbe Updated packages and Alpine to 3.10 2019-06-26 17:23:24 +02:00
Quentin McGaw
21aba4680d Readme update and typo fixes 2019-04-26 21:43:26 +02:00
Quentin McGaw
39ed1d93f5 Dropped building of ARM images in Travis CI in favor of manual building 2019-04-26 16:20:23 +02:00
Quentin McGaw
99f48b964b Adding QEMU static arm binary to build ARM images 2019-04-26 16:02:14 +02:00
Quentin McGaw
29d9fb5879 Reworked Travis CI to produce ARM images 2019-04-26 12:28:32 +02:00
Quentin McGaw
305b5954f9 Upgrade to Alpine 3.9 2019-04-23 10:32:31 +02:00
Quentin McGaw
aad11510f5 More defaults and fixing typos 2019-04-23 10:32:15 +02:00
Quentin McGaw
b26cb508de Splitted BLOCK_MALICIOUS with BLOCK_NSA and UNBLOCK env variable 2019-04-23 10:29:44 +02:00
Quentin McGaw
27802ba886 Runs OpenVPN as root by default, fixes #19 2019-03-18 11:27:36 +01:00
Quentin McGaw
a3bfa2d77a Changed healthcheck to only ping 1.1.1.1 to check connectivity
This is because your VPN public IP might not be the VPN server entrance IP address, resulting in the container being unhealthy most of the time.
2019-01-15 14:40:28 +01:00