Skip to content

Repository files navigation


[English][Русский][中国人]

Build VersionBuild StatusTests StatusBuild TimeDocker PullsGitter chatGitHub

🔐DockOvpn


Out of the box stateless VPN server docker image which starts in just a few seconds and doesn't require persistent storage. To get it running, just copy & paste the snippet below and follow instructions in your terminal:

docker run -it --rm --cap-add=NET_ADMIN \
-p 1194:1194/udp -p 80:8080/tcp \
--name dockovpn alekslitvinenk/openvpn

To get more detailed information, go to Quick Start tutorial or watch video.

Content

Resources
Container properties
Video Quide
Quick Start
Persisting configuration
Alternative way. Run with docker-compose
Other resources

Resources

Website

https://dockovpn.io

Socail media

NameURL
LinkedInhttps://www.linkedin.com/company/dockovpn
Facebookhttps://www.facebook.com/dockovpn

Repos

NameURL
GitHubhttps://github.com/dockovpn/dockovpn
Docker Hubhttps://hub.docker.com/r/alekslitvinenk/openvpn

Container properties

Docker Tags

TagDescription
latestThis tag is added to every newly built version be that v#.#.# or v#.#.#-regen-dh
v#.#.#Standard fixed release version, where {1} is major version, {2} - minor and {3} is a patch. For instance, v1.1.0
v#.#.#-regen-dhRelease version with newly generated Deffie Hellman security file. In order to keep security high this version is generated every hour. Tag example - v1.1.0-regen-dh
devDevelopment build which contains the most recent changes from the active development branch (master)

Environment variables

VariableDescriptionDefault value
NET_ADAPTERNetwork adapter to use on the host machineeth0
HOST_ADDRHost address override if the resolved address doesn't worklocalhost
HOST_TUN_PORTTunnel port to advertise in the client config file1194
HOST_CONF_PORTHTTP port on the host machine to download the client config file80

⚠️ Note: In the provided code snippet we advertise the configuration suitable for the most users. We don't recommend setting custom NET_ADAPTER and HOST_ADDR unless you absolutely have to. Now host address is resolved automatically when container starts.. More often you'd like to customize HOST_TUN_PORT and HOST_CONF_PORT. If this is the case, use the snippet below (dont forget to replace <custom port> with your values):

DOCKOVPN_CONFIG_PORT=<custom port>
DOCKOVPN_TUNNEL_PORT=<custom port>
docker run -it --rm --cap-add=NET_ADMIN \
-p $DOCKOVPN_TUNNEL_PORT:1194/udp -p $DOCKOVPN_CONFIG_PORT:8080/tcp \
-e HOST_CONF_PORT="$DOCKOVPN_CONFIG_PORT" \
-e HOST_TUN_PORT="$DOCKOVPN_TUNNEL_PORT" \
--name dockovpn alekslitvinenk/openvpn

Container options

Short nameLong nameDescription
-r--regenerateRegenerates PKI and DH file
-n--noopInitialise container, but don's start VPN server
-q--quitQuit after container was initialized

⚠️ Note: We strongly recommend always run your container with -r option, even though it will take container a bit longer to start. In future releases we will apply this option by default:

docker run -it --rm --cap-add=NET_ADMIN \
-p 1194:1194/udp -p 80:8080/tcp \
--name dockovpn alekslitvinenk/openvpn -r

Container commands

After container was run using docker run command, it's possible to execute additional commands using docker exec command. For example, docker exec <container id> ./version.sh. See table below to get the full list of supported commands.

CommandDescriptionParametersExample
./version.shOutputs full container version, i.e Dockovpn v1.2.0docker exec dockovpn ./version.sh
./genclient.shGenerates new client configurationz — Optional. Puts newly generated client.ovpn file into client.zip archive.

zp paswd — Optional. Puts newly generated client.ovpn file into client.zip archive with password pswd

o — Optional. Prints cert to the output.

oz — Optional. Prints zipped cert to the output. Use with output redirection.

ozp paswd — Optional. Prints encrypted zipped cert to the output. Use with output redirection.
docker exec dockovpn ./genclient.sh

docker exec dockovpn ./genclient.sh z

docker exec dockovpn ./genclient.sh zp 123

docker exec dockovpn ./genclient.sh o > client.ovpn

docker exec dockovpn ./genclient.sh oz > client.zip

docker exec dockovpn ./genclient.sh ozp paswd > client.zip
./rmclient.shRevokes client certificate thus making him/her anable to connect to given Dockovpn server.Client Id, i.e vFOoQ3Hngz4H790IpRo6JgKR6cMR3YAp.docker exec dockovpn ./rmclient.sh vFOoQ3Hngz4H790IpRo6JgKR6cMR3YAp

📺 Video Guide


🚀 Quick Start

Prerequisites

  1. Any hardware or vps/vds server running Linux. You should have administrative rights on this machine.
  2. Docker installation on your server.
  3. Public ip address assigned to your server.

1. Run dockovpn

Copy & paste the following command to run docker-openvpn:

docker run -it --rm --cap-add=NET_ADMIN \
-p 1194:1194/udp -p 80:8080/tcp \
--name dockovpn alekslitvinenk/openvpn

⚠️ Note: This snippet runs Dockovpn in attached mode, which means if you close your terminal window, container will be stopped. To prevent this from happening, you first need to detach container from ssh session. Type Ctrl+P Ctrl+Q.

If everything went well, you should be able to see the following output in your console:

Sun Jun 9 08:56:11 2019 Initialization Sequence Completed
Sun Jun 9 08:56:12 2019 Client.ovpn file has been generated
Sun Jun 9 08:56:12 2019 Config server started, download your client.ovpn config at http://example.com:8080/
Sun Jun 9 08:56:12 2019 NOTE: After you download you client config, http server will be shut down!

2. Get client configuration

Now, when your dockovpn is up and running you can go to <your_host_public_ip>:8080 on your device and download ovpn client configuration. As soon as you have your config file downloaded, you will see the following output in the console:

Sun Jun 9 09:01:15 2019 Config http server has been shut down

Import client.ovpn into your favourite openvpn client. In most cases it should be enough to just doubleclick or tap on that file.

3. Connect to your docker-openvpn container

You should be able to see your newly added client configuration in the list of available configurations. Click on it, connection process should initiate and be established within few seconds.

Congratulations, now you're all set and can safely browse the internet.

Persisting configuration

There's a possibility to persist generated files in volume storage. Run docker with

-v openvpn_conf:/opt/Dockovpn_data

Alternative way. Run with docker-compose

Sometimes it is more convenient to use docker-compose.

To run dockvpn with docker-compose run:

docker-compose up -d && \
docker-compose exec -d dockovpn wget -O /doc/Dockovpn/client.ovpn localhost:8080

After run this command you can find your client.ovpn inside openvpn_conf folder.

Other resources

Contrubition Guidelines
Code Of Conduct
Release Guideline
License Agreement

About

🔐 Out of the box stateless openvpn-server docker image which starts in less than 2 seconds

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages