docker-compose.yml
services:
  openvpn:
    container_name: openvpn
    image: kylemanna/openvpn
    ports:
     - "1194:1194/udp"
    restart: always
    volumes:
     - /dev/net/tun:/dev/net/tun
     - ./openvpn:/etc/openvpn
    cap_add:
     - NET_ADMIN
Makefile
OVPN_HOST="65.109.154.49"
OVPN_NETWORK="10.0.10.0 255.255.255.0"
OVPN_DATA="./openvpn"
OVPN_NAME="openvpn"
OVPN_USER="${user}"
 
default:
	@echo
	@echo "# User managment:"
	@echo "make user_list - list users"
	@echo "make user_get user=<username> - get user config"
	@echo "make user_add user=<username> - add user"
	@echo "make user_del user=<username> - delete user"
	@echo
build:
	mkdir -p ${OVPN_DATA}
	docker compose run --rm ${OVPN_NAME} ovpn_genconfig -u udp://${OVPN_HOST} -p "route ${OVPN_NETWORK}" -b -d -D -N
	docker compose run --rm ${OVPN_NAME} ovpn_initpki nopass
run:
	docker compose up -d
stop:
	docker compose down
user_list:
	docker compose run --rm ${OVPN_NAME} ovpn_listclients
user_add:
	docker compose run --rm ${OVPN_NAME} easyrsa build-client-full ${OVPN_USER} nopass
	docker compose run --rm ${OVPN_NAME} ovpn_getclient ${OVPN_USER}
user_del:
	docker compose run --rm ${OVPN_NAME} ovpn_revokeclient ${OVPN_USER} remove
user_get:
	docker compose run --rm ${OVPN_NAME} ovpn_getclient ${OVPN_USER}
Navigation
Print/export
QR Code
QR Code wiki:docker-compose-openvpn (generated for current page)