Skip to content

Latest commit

History

48 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Docker Windscribe Image

About the image

Run a Windscribe VPN instance in docker via the Windscribe CLI tool. This can be used by other containers in the following way:

  1. Set a container to use the Windscribe container network. This way you keep the VPN and the apps using it seprately from one another. It also allows you to use the same VPN connection for multiple containers.

  2. Extend this image and build your application into it. Preparations for this is already included in this image.

  3. Launch this image and mount your app directory to /app in the container (#See: Extending the image)

Extending the image

To extend this image you simply need to place a single file into the /app directory called app-run.sh. This file will be executed on container start after the VPN has been configured and started. This file is executed as the PUID user.

You can optionally include app-init.sh which is executed before anything else, even before the VPN has been setup. This file is executed as root and allows for app configurations before luanch.

Another optional file is app-health-check.sh which is periodically called to check the health state of the app. This should exit with status codes such as 0 for HEALTHY.

Keep running

When the file app-run.sh is available, it becomes it's job to keep the container alive. If the file exists then the container will shut down. This control is passed to the app-run.sh to give custom applications full control of the containers lifecicle.

It is also a good idea to update /var/run/init.pid with the correct pid that keeps the container running so to allow things like health check to signal the process to stop.

Example

You could add something like this to the end of the app-init.sh script.

trap: TERM INT; sleep infinity &echo$!> /var/run/init.pid;wait

Usage

docker

docker create \
--name=docker-windscribe \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=America/New_York \
-e WINDSCRIBE_USERNAME=username \
-e WINDSCRIBE_PASSWORD=password \
-e WINDSCRIBE_PROTOCOL=stealth \
-e WINDSCRIBE_PORT=80 \
-e WINDSCRIBE_PORT_FORWARD=9999 \
-e WINDSCRIBE_LOCATION=US \
-e WINDSCRIBE_LANBYPASS=on \
-e WINDSCRIBE_FIREWALL=on \
-e VPN_PORT=8080
-v /location/on/host:/app \
--dns 1.1.1.1 \
--cap-add NET_ADMIN \
--restart unless-stopped \
dk-zero-cool/docker-windscribe:latest

docker-compose

---
version: "2.1"
services:
docker-windscribe:
image: dk-zero-cool/docker-windscribe:latest
container_name: docker-windscribe
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- WINDSCRIBE_USERNAME=username
- WINDSCRIBE_PASSWORD=password
- WINDSCRIBE_PROTOCOL=stealth
- WINDSCRIBE_PORT=80
- WINDSCRIBE_LOCATION=US
- WINDSCRIBE_LANBYPASS=on
- WINDSCRIBE_FIREWALL=on
- VPN_PORT=9999
volumes:
- /location/on/host:/app
dns:
- 1.1.1.1
cap_add:
- NET_ADMIN
restart: unless-stopped

Parameters

Container images are configured using parameters passed at runtime (such as those above).

ParameterExamples/OptionsFunction
PUID1000The nummeric user ID to run the application as, and assign to the user docker_user
PGID1000The numeric group ID to run the application as, and assign to the group docker_group
TZ=Europe/LondonThe timezone to run the container in
WINDSCRIBE_USERNAMEusernameThe username used to connect to windscribe
WINDSCRIBE_PASSWORDpasswordThe password associated with the username
WINDSCRIBE_PROTOCOLstealth OR tcp OR udpThe protocol to use when connecting to windscribe, which must be on 'windscribe protocol' list
WINDSCRIBE_PORT443, 80, 53The port to connect to windscribe over, which must be on 'windscribe port' list for that protocol
WINDSCRIBE_LOCATIONUSThe location to connect to, which must be on 'windscribe location' list
WINDSCRIBE_LANBYPASSon, offAllow other applications on the docker bridge to connect to this container if on
WINDSCRIBE_FIREWALLon, offEnable the windscribe firewall if on, which is recommended.
VPN_PORT9898The port you have configured to forward via windscribe. Not used by this container, but made available

Volumes

VolumeFunction
/appThe home directory of docker_user PUID

Building locally

git clone https://github.com/dk-zero-cool/docker-windscribe.git
cd docker-windscribe
docker build \
--no-cache \
-t dk-zero-cool/docker-windscribe:latest .

About

Windscribe docker container, as a base for other images

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages