#!/usr/bin/env bash # The name of the setup container OVPN_SETUP="ovpn_setup" # The name of the server container OVPN_SERVER="ovpn_server" # The hostname of our server OVPN_HOSTNAME="vpn.domain.tld" # create the container volume docker run --name "$OVPN_SETUP" -v /etc/openvpn hypriot/armhf-busybox # initialize OpenVPN container docker run --volumes-from "$OVPN_SETUP" --rm evolvedm/openvpn-rpi ovpn_genconfig -u udp://"$OVPN_HOSTNAME" docker run --volumes-from "$OVPN_SETUP" --rm -it evolvedm/openvpn-rpi ovpn_initpki # start OpenVPN server process docker run --volumes-from "$OVPN_SETUP" -d -p 1194:1194/udp --cap-add=NET_ADMIN -e --restart=always --name "$OVPN_SERVER" evolvedm/openvpn-rpi declare -a CLIENTS=("barts-laptop" "lisas-phone") for CLIENT in "${CLIENTS[@]}" do # generate client configuration docker run --volumes-from "$OVPN_SETUP" --rm -it evolvedm/openvpn-rpi easyrsa build-client-full "$CLIENT" nopass # download client configuration from docker container to local machine docker run --volumes-from "$OVPN_SETUP" --rm evolvedm/openvpn-rpi ovpn_getclient "$CLIENT" > "$CLIENT.ovpn" done