Skip to content

Instantly share code, notes, and snippets.

@ofstudio
Created October 30, 2017 18:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ofstudio/3613597df35d9dce4845382d3cc75d01 to your computer and use it in GitHub Desktop.
Save ofstudio/3613597df35d9dce4845382d3cc75d01 to your computer and use it in GitHub Desktop.
Run OpenVPN Server in Docker container
#!/usr/bin/env bash
# https://hub.docker.com/r/kylemanna/openvpn/
OVPN_DATA="openvpn_data" # Docker volume name
OVPN_HOST="vpn.hostname.org" # Server hostname
OVPN_USER="peter_the_pig" # Client username
# init
docker volume create --name $OVPN_DATA
docker run -v $OVPN_DATA:/etc/openvpn \
--rm kylemanna/openvpn ovpn_genconfig \
-u udp://$OVPN_HOST
docker run -v $OVPN_DATA:/etc/openvpn \
--rm -it kylemanna/openvpn ovpn_initpki
# start
docker run -v $OVPN_DATA:/etc/openvpn \
-d -p 1194:1194/udp --cap-add=NET_ADMIN \
--restart unless-stopped --name=openvpn \
kylemanna/openvpn
# Generate a client certificate without a passphrase
docker run -v $OVPN_DATA:/etc/openvpn \
--rm -it kylemanna/openvpn easyrsa build-client-full \
$OVPN_USER@$OVPN_HOST nopass
# Retrieve the client configuration with embedded certificates
docker run -v $OVPN_DATA:/etc/openvpn \
--rm kylemanna/openvpn ovpn_getclient \
$OVPN_USER@$OVPN_HOST > $OVPN_USER@$OVPN_HOST.ovpn
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment