Skip to content

Instantly share code, notes, and snippets.

@mdp
Created November 21, 2017 21:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mdp/c08bd30a206c4f4ef4a088b4e6561945 to your computer and use it in GitHub Desktop.
Save mdp/c08bd30a206c4f4ef4a088b4e6561945 to your computer and use it in GitHub Desktop.
OpenVPN setup on docker
#!/bin/bash
arg=$1
host=$2
OVPN_DATA="ovpn-data"
set -x
if [ "$arg" == "setup" ]; then
if [[ -n "$host" ]]; then
echo "You need to specify a hostname for this VPN service"
echo "Example: openvpn.sh setup myhostname"
fi
read -p "Are you sure you want to run setup? " -n 1 -r
if [ "$REPLY" == "y" ]; then
docker volume rm $OVPN_DATA 2> /dev/null
docker volume create --name $OVPN_DATA
docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://$host
docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full CLIENTNAME nopass
docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient CLIENTNAME > $host.ovpn
fi
else
docker run -v $OVPN_DATA:/etc/openvpn -d --rm -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn
docker run -v $OVPN_DATA:/etc/openvpn -d --rm -p 110:1194/tcp --cap-add=NET_ADMIN kylemanna/openvpn ovpn_run --proto tcp
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment