Minor changes
This commit is contained in:
@@ -7,8 +7,8 @@ WORKDIR /tmp/gobuild
|
|||||||
ENV CGO_ENABLED=0
|
ENV CGO_ENABLED=0
|
||||||
COPY go.mod go.sum ./
|
COPY go.mod go.sum ./
|
||||||
RUN go mod download 2>&1
|
RUN go mod download 2>&1
|
||||||
COPY internal/ ./internal/
|
|
||||||
COPY cmd/main.go .
|
COPY cmd/main.go .
|
||||||
|
COPY internal/ ./internal/
|
||||||
RUN go test ./...
|
RUN go test ./...
|
||||||
RUN go build -ldflags="-s -w" -o entrypoint main.go
|
RUN go build -ldflags="-s -w" -o entrypoint main.go
|
||||||
|
|
||||||
|
|||||||
36
README.md
36
README.md
@@ -1,6 +1,6 @@
|
|||||||
# Private Internet Access Client
|
# Private Internet Access Client
|
||||||
|
|
||||||
*Lightweight swiss-knife-like VPN client to tunnel to private internet access servers, using OpenVPN, iptables, DNS over TLS, ShadowSocks, Tinyproxy and more*
|
*Lightweight swiss-knife-like VPN client to tunnel to Private Internet Access or Mullvad VPN servers, using Go, OpenVPN, iptables, DNS over TLS, ShadowSocks and Tinyproxy*
|
||||||
|
|
||||||
**ANNOUCEMENT**: *Support for [Mullvad](http://mullvad.net)*
|
**ANNOUCEMENT**: *Support for [Mullvad](http://mullvad.net)*
|
||||||
|
|
||||||
@@ -59,10 +59,10 @@
|
|||||||
|
|
||||||
### Extra niche features
|
### Extra niche features
|
||||||
|
|
||||||
- Possibility of split horizon DNS by selecting multiple DNS over TLS providers
|
- Possibility of split horizon DNS by selecting multiple DNS over TLS providers
|
||||||
- Subprograms all drop root privileges once launched
|
- Subprograms all drop root privileges once launched
|
||||||
- Subprograms output streams are all merged together
|
- Subprograms output streams are all merged together
|
||||||
- Can work as a Kubernetes sidecar container, thanks @rorph
|
- Can work as a Kubernetes sidecar container, thanks @rorph
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
@@ -103,19 +103,21 @@
|
|||||||
```
|
```
|
||||||
|
|
||||||
Note that you can:
|
Note that you can:
|
||||||
|
|
||||||
- Change the many [environment variables](#environment-variables) available
|
- Change the many [environment variables](#environment-variables) available
|
||||||
- Use `-p 8888:8888/tcp` to access the HTTP web proxy (and put your LAN in `EXTRA_SUBNETS` environment variable)
|
- Use `-p 8888:8888/tcp` to access the HTTP web proxy (and put your LAN in `EXTRA_SUBNETS` environment variable)
|
||||||
- Use `-p 8388:8388/tcp -p 8388:8388/udp` to access the SOCKS5 proxy (and put your LAN in `EXTRA_SUBNETS` environment variable)
|
- Use `-p 8388:8388/tcp -p 8388:8388/udp` to access the SOCKS5 proxy (and put your LAN in `EXTRA_SUBNETS` environment variable)
|
||||||
- Pass additional arguments to *openvpn* using Docker's command function (commands after the image name)
|
- Pass additional arguments to *openvpn* using Docker's command function (commands after the image name)
|
||||||
|
|
||||||
1. You can update the image with `docker pull qmcgaw/private-internet-access:latest`. There are also docker tags available:
|
1. You can update the image with `docker pull qmcgaw/private-internet-access:latest`. There are also docker tags available:
|
||||||
- `qmcgaw/private-internet-access:v1` linked to the [v1 release](https://github.com/qdm12/private-internet-access-docker/releases/tag/v1.0)
|
- `qmcgaw/private-internet-access:v1` linked to the [v1 release](https://github.com/qdm12/private-internet-access-docker/releases/tag/v1.0) (shell scripting based, no support)
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
Check the PIA IP address matches your expectations
|
Check the PIA IP address matches your expectations
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
docker run --rm --network=container:pia alpine:3.10 wget -qO- https://ipinfo.io
|
docker run --rm --network=container:pia alpine:3.11 wget -qO- https://ipinfo.io
|
||||||
```
|
```
|
||||||
|
|
||||||
## Environment variables
|
## Environment variables
|
||||||
@@ -267,7 +269,7 @@ openvpn: Sat Feb 22 15:55:02 2020 WARNING: 'auth' is used inconsistently, local=
|
|||||||
openvpn: Sat Feb 22 15:55:02 2020 WARNING: 'keysize' is used inconsistently, local='keysize 256', remote='keysize 128'
|
openvpn: Sat Feb 22 15:55:02 2020 WARNING: 'keysize' is used inconsistently, local='keysize 256', remote='keysize 128'
|
||||||
openvpn: Sat Feb 22 15:55:02 2020 WARNING: 'comp-lzo' is present in remote config but missing in local config, remote='comp-lzo'
|
openvpn: Sat Feb 22 15:55:02 2020 WARNING: 'comp-lzo' is present in remote config but missing in local config, remote='comp-lzo'
|
||||||
openvpn: Sat Feb 22 15:55:02 2020 [a121ce520d670b71bfd3aa475485539b] Peer Connection Initiated with [AF_INET]xx.xx.xx.xx:1197
|
openvpn: Sat Feb 22 15:55:02 2020 [a121ce520d670b71bfd3aa475485539b] Peer Connection Initiated with [AF_INET]xx.xx.xx.xx:1197
|
||||||
```
|
```
|
||||||
|
|
||||||
It is mainly because the option [disable-occ](https://openvpn.net/community-resources/reference-manual-for-openvpn-2-4/) was removed for transparency with you.
|
It is mainly because the option [disable-occ](https://openvpn.net/community-resources/reference-manual-for-openvpn-2-4/) was removed for transparency with you.
|
||||||
|
|
||||||
@@ -306,21 +308,21 @@ The following will build the Docker image locally and replace the previous one y
|
|||||||
|
|
||||||
- Build the latest image
|
- Build the latest image
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
docker build -t qmcgaw/private-internet-access https://github.com/qdm12/private-internet-access-docker.git
|
docker build -t qmcgaw/private-internet-access https://github.com/qdm12/private-internet-access-docker.git
|
||||||
```
|
```
|
||||||
|
|
||||||
- Find a [commit](https://github.com/qdm12/private-internet-access-docker/commits/master) you want to build for, in example `095623925a9cc0e5cf89d5b9b510714792267d9b`, then:
|
- Find a [commit](https://github.com/qdm12/private-internet-access-docker/commits/master) you want to build for, in example `095623925a9cc0e5cf89d5b9b510714792267d9b`, then:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
docker build -t qmcgaw/private-internet-access https://github.com/qdm12/private-internet-access-docker.git#095623925a9cc0e5cf89d5b9b510714792267d9b
|
docker build -t qmcgaw/private-internet-access https://github.com/qdm12/private-internet-access-docker.git#095623925a9cc0e5cf89d5b9b510714792267d9b
|
||||||
```
|
```
|
||||||
|
|
||||||
- Find a [branch](https://github.com/qdm12/private-internet-access-docker/branches) you want to build for, in example `mullvad`, then:
|
- Find a [branch](https://github.com/qdm12/private-internet-access-docker/branches) you want to build for, in example `mullvad`, then:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
docker build -t qmcgaw/private-internet-access https://github.com/qdm12/private-internet-access-docker.git#mullvad
|
docker build -t qmcgaw/private-internet-access https://github.com/qdm12/private-internet-access-docker.git#mullvad
|
||||||
```
|
```
|
||||||
|
|
||||||
</p></details>
|
</p></details>
|
||||||
|
|
||||||
@@ -365,12 +367,12 @@ You can try:
|
|||||||
1. In Visual Studio Code, press on `F1` and select `Remote-Containers: Open Folder in Container...`
|
1. In Visual Studio Code, press on `F1` and select `Remote-Containers: Open Folder in Container...`
|
||||||
1. Your dev environment is ready to go!... and it's running in a container :+1:
|
1. Your dev environment is ready to go!... and it's running in a container :+1:
|
||||||
|
|
||||||
|
The Go code is in the Go file [cmd/main.go](https://github.com/qdm12/private-internet-access-docker/blob/master/cmd/main.go) and the [internal directory](https://github.com/qdm12/private-internet-access-docker/tree/master/internal),
|
||||||
|
you might want to start reading the main.go file.
|
||||||
|
|
||||||
## TODOs
|
## TODOs
|
||||||
|
|
||||||
- Case insensitive for env variables values
|
- Support Windscribe
|
||||||
- Support other VPN providers
|
|
||||||
- ~Mullvad~
|
|
||||||
- Windscribe
|
|
||||||
- Gotify support for notificactions
|
- Gotify support for notificactions
|
||||||
- Periodic update of malicious block lists with Unbound restart
|
- Periodic update of malicious block lists with Unbound restart
|
||||||
- Improve healthcheck
|
- Improve healthcheck
|
||||||
@@ -378,7 +380,7 @@ You can try:
|
|||||||
- Check for DNS provider somehow if this is even possible
|
- Check for DNS provider somehow if this is even possible
|
||||||
- Support for other VPN protocols
|
- Support for other VPN protocols
|
||||||
- Wireguard (wireguard-go)
|
- Wireguard (wireguard-go)
|
||||||
- Show new versions/commits at start
|
- Show new versions/commits available at start
|
||||||
- Colors & emojis
|
- Colors & emojis
|
||||||
- Setup
|
- Setup
|
||||||
- Logging streams
|
- Logging streams
|
||||||
|
|||||||
1
ci.sh
1
ci.sh
@@ -1,6 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if [ "$TRAVIS_PULL_REQUEST" = "true" ] || [ "$TRAVIS_BRANCH" != "master" ]; then
|
if [ "$TRAVIS_PULL_REQUEST" = "true" ] || [ "$TRAVIS_BRANCH" != "master" ]; then
|
||||||
|
echo "Building without pushing to Docker Hub"
|
||||||
docker buildx build \
|
docker buildx build \
|
||||||
--progress plain \
|
--progress plain \
|
||||||
--platform=linux/amd64,linux/386,linux/arm64,linux/arm/v7,linux/arm/v6,linux/ppc64le,linux/s390x \
|
--platform=linux/amd64,linux/386,linux/arm64,linux/arm/v7,linux/arm/v6,linux/ppc64le,linux/s390x \
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
version: "3.7"
|
version: "3.7"
|
||||||
services:
|
services:
|
||||||
pia:
|
pia:
|
||||||
build: https://github.com/qdm12/private-internet-access-docker.git
|
|
||||||
image: qmcgaw/private-internet-access
|
image: qmcgaw/private-internet-access
|
||||||
container_name: pia
|
container_name: pia
|
||||||
cap_add:
|
cap_add:
|
||||||
|
|||||||
Reference in New Issue
Block a user