Run OpenVPN Server within Docker Container
Go to file
2024-09-12 20:12:08 +02:00
.gitea/workflows 🔨 improve release notes template 2024-08-27 20:29:30 +02:00
.editorconfig 👷 release ci 2024-08-24 21:20:30 +02:00
clientmgmt 🐛 fix regex precedence (fix #1) 2024-08-27 22:39:12 +02:00
Dockerfile 🎉 initial codebase 2024-08-24 21:05:07 +02:00
entrypoint.sh 🐛 use echo, lib log not loaded 2024-09-12 20:12:08 +02:00
LICENSE 📄 add license 2024-08-24 20:56:08 +02:00
README.md 💄 use alert boxes for notes 2024-09-07 13:25:07 +02:00

OpenVPN Docker

Run OpenVPN Server within Docker Container

Setup Instructions

Docker Run (not recommended):

$ docker run -d --name "openvpn" --cap-add=NET_ADMIN -v ./data:/etc/openvpn-data -p 1194:1194/tcp -p 1194:1194/udp drmaxnix/openvpn

Docker Compose (recommended):

services:
  main:
    image: drmaxnix/openvpn
    restart: unless-stopped
    volumes:
      - ./data:/etc/openvpn-data
    ports:
      - "1194:1194/udp"
      - "1194:1194/tcp"
    cap_add:
      - NET_ADMIN
$ docker compose up -d

Tip

For both variants, persistent config and key files will be stored in the ./data directory. Feel free to change this to your needs.

Client Management

Generate new client keys and output its config:

$ docker compose exec main clientmgmt add

List registered client keys:

$ docker compose exec main clientmgmt list

Revoke a client's keys:

$ docker compose exec main clientmgmt revoke

Note

If you are using docker run, replace docker compose exec main with docker exec -it openvpn.