https://github.com/lawndoc/pia-socks
Custom container and deployment configuration for a VPN reverse proxy. Eventually I plan to add compatibility with other VPN providers.
https://github.com/lawndoc/pia-socks
containers dante docker docker-compose dockerfile pia privacy socks5-proxy vpn
Last synced: about 1 month ago
JSON representation
Custom container and deployment configuration for a VPN reverse proxy. Eventually I plan to add compatibility with other VPN providers.
- Host: GitHub
- URL: https://github.com/lawndoc/pia-socks
- Owner: lawndoc
- Created: 2020-10-27T06:24:48.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2020-11-16T18:10:22.000Z (over 5 years ago)
- Last Synced: 2025-04-01T15:19:59.788Z (about 1 year ago)
- Topics: containers, dante, docker, docker-compose, dockerfile, pia, privacy, socks5-proxy, vpn
- Language: Dockerfile
- Homepage:
- Size: 11.7 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# A socks5 reverse proxy for Private Internet Access VPN.
An [Alpine](https://alpinelinux.org/) Linux container running a socks5 proxy (using [dante](https://www.inet.no/dante/)) via Private Internet Access (OpenVPN).
You will need a [PrivateInternetAccess](https://www.privateinternetaccess.com/pages/how-it-works) account.
If you don't have one, you can [sign up here](https://www.privateinternetaccess.com/pages/buy-vpn) for one.
## Starting the VPN Proxy
```sh
docker-compose up -d --build
```
Substitute the environment variables for `REGION`, `USERNAME`, `PASSWORD` as indicated in the docker-compose.yml file. Or, better yet, set them in your deployment environment to reduce risk of committing them to a public repo :)
### Environment Variables
`REGION` is optional. The default region is set to `US Houston`. The spelling/formatting for`REGION` should match the corresponding `.opvn` config name for that region.
See the [PIA VPN Tunnel Network page](https://www.privateinternetaccess.com/pages/network) for details.
Use the `Location` value for your `REGION`.
`USERNAME` / `PASSWORD` - Credentials to connect to PIA. It is recommended to set environment variables on the host machine rather than in the docker-compose.yml file.
### Test connection
- curl:
```shell
# socks5h so the dns is done over the socks proxy
$ curl -x socks5h://:1080 ifconfig.me
```
## Credits
- [OneOfOne/pia-socks-proxy](https://github.com/oneofone/pia-socks-proxy) I borrowed a lot from this repo. It was unmaintained and no longer working (broken dependency), so I broke out the DNSSEC service (unbound) into its own container to adopt a microservices model. I have reworked the Dante config file a little and heavily modified both the docker-compose.yml provided and the Dockerfile. But even then, most of the work was already done for me, so props to OneOfOne for his cool container.