# kylemanna/docker-openvpn

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/kylemanna-docker-openvpn).**

9,089 stars · 2,431 forks · Shell · MIT

## Links

- GitHub: https://github.com/kylemanna/docker-openvpn
- Homepage: https://hub.docker.com/r/kylemanna/openvpn/
- awesome-repositories: https://awesome-repositories.com/repository/kylemanna-docker-openvpn.md

## Topics

`docker` `docker-container` `docker-openvpn` `easyrsa-pki` `openvpn` `openvpn-server` `pki`

## Description

This project provides a complete OpenVPN server deployment packaged as a Docker container, with an integrated EasyRSA certificate authority for automated public-key infrastructure management. It handles the full lifecycle of a VPN server, from initial PKI bootstrap and server configuration generation to client certificate issuance and revocation, all within a containerized environment.

The server is configured entirely through Docker environment variables, eliminating the need for manual configuration file editing. It supports time-based one-time password (TOTP) authentication as a second factor, adding an extra layer of security beyond certificate-based authentication. The container uses Docker volumes for persistent state, ensuring configuration and certificates survive container restarts and upgrades, and can be managed as a systemd service for automatic startup and failure recovery.

The toolkit includes utilities for generating single-file OpenVPN client configurations with embedded certificates for easy distribution, as well as tools for listing, revoking, and managing client certificates. It also provides operational features such as debug logging activation and server status reporting for monitoring connected clients and traffic statistics.

## Tags

### DevOps & Infrastructure

- [Containerized Server Deployments](https://awesome-repositories.com/f/devops-infrastructure/containerized-server-deployments.md) — Initializes a data volume with configuration and certificates, then starts an OpenVPN server inside a Docker container. ([source](https://github.com/kylemanna/docker-openvpn/blob/master/docs/docker-compose.md))
- [OpenVPN Deployments](https://awesome-repositories.com/f/devops-infrastructure/openvpn-deployments.md) — Provides a complete OpenVPN server deployment packaged as a Docker container with integrated EasyRSA PKI management.
- [VPN Server Orchestration](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-orchestration-interfaces/container-orchestrators/vpn-server-orchestration.md) — Runs a full OpenVPN server inside a Docker container with persistent data volumes and systemd service integration.
- [OpenVPN Server Startups](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-orchestration-interfaces/container-orchestrators/vpn-server-orchestration/openvpn-server-startups.md) — Starts the OpenVPN server inside the container using the generated configuration and certificates. ([source](https://github.com/kylemanna/docker-openvpn/tree/master/bin))
- [Environment Variable Configuration](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/environment-management/environment-variable-management/environment-variable-configurations/environment-variable-configuration.md) — Controls server behavior entirely through Docker environment variables, avoiding manual config file editing.
- [Systemd Service Deployments](https://awesome-repositories.com/f/devops-infrastructure/installer-scripting/plugin-deployment-scripts/systemd-service-deployments.md) — Automatically starts, restarts on failure, and cleans up a Docker-based OpenVPN container using systemd. ([source](https://github.com/kylemanna/docker-openvpn/blob/master/README.md))
- [Certificate Revocation Tools](https://awesome-repositories.com/f/devops-infrastructure/openvpn-deployments/certificate-revocation-tools.md) — Ships a dedicated command to revoke client certificates and remove VPN access.
- [Docker Container Service Automation](https://awesome-repositories.com/f/devops-infrastructure/systemd-service-configurations/docker-container-service-automation.md) — Manages a Docker-based OpenVPN server as a systemd service with automatic startup and restart.

### Artificial Intelligence & ML

- [VPN](https://awesome-repositories.com/f/artificial-intelligence-ml/language-model-orchestration/mcp-server-configurations/server-configuration-generators/vpn.md) — Generates the OpenVPN server configuration file with default settings for the containerized VPN. ([source](https://github.com/kylemanna/docker-openvpn/tree/master/bin))
- [TOTP Authentication Systems](https://awesome-repositories.com/f/artificial-intelligence-ml/agentic-systems-frameworks/agent-orchestration-multi-agent/security-and-auth/authentication-strategies/passwords-mfa/totp-authentication-systems.md) — Integrates time-based one-time password verification via an authentication script for OpenVPN logins.

### Development Tools & Productivity

- [VPN Client Configuration Exports](https://awesome-repositories.com/f/development-tools-productivity/client-configuration/vpn-client-configuration-exports.md) — Produces single-file OpenVPN client configurations with embedded certificates for easy distribution. ([source](https://github.com/kylemanna/docker-openvpn/blob/master/README.md))

### Networking & Communication

- [Client Configuration Bundles](https://awesome-repositories.com/f/networking-communication/tcp-connection-lifecycles/tcp-client-connections/openvpn-connection-routings/client-configuration-bundles.md) — Produces single-file OpenVPN client configurations with embedded certificates for easy distribution.
- [Full-Tunnel VPN Routers](https://awesome-repositories.com/f/networking-communication/traffic-routing-rules/selective-traffic-routing/full-tunnel-vpn-routers.md) — Forces all client network traffic through the VPN tunnel using the redirect-gateway def1 option. ([source](https://github.com/kylemanna/docker-openvpn/blob/master/README.md))
- [VPN Client Configuration Generators](https://awesome-repositories.com/f/networking-communication/vpn-client-configuration-generators.md) — Generates single-file OpenVPN client configurations with embedded certificates for easy distribution and import.
- [OpenVPN Client Configuration Generators](https://awesome-repositories.com/f/networking-communication/vpn-client-configuration-generators/openvpn-client-configuration-generators.md) — Produces ready-to-use OpenVPN client configuration files with embedded certificates for easy distribution.

### Security & Cryptography

- [Certificate Authorities](https://awesome-repositories.com/f/security-cryptography/certificate-authorities.md) — Generates Diffie-Hellman parameters, server keys, a self-signed CA, and TLS auth key for the VPN. ([source](https://github.com/kylemanna/docker-openvpn/blob/master/README.md))
- [Client Certificate Generators](https://awesome-repositories.com/f/security-cryptography/certificate-authorities/client-certificate-generators.md) — Creates client certificates and keys using EasyRSA for authenticating VPN connections. ([source](https://github.com/kylemanna/docker-openvpn/blob/master/README.md))
- [Certificate Authority Managers](https://awesome-repositories.com/f/security-cryptography/cryptography/ssl-tls-certificate-management/certificate-authority-management/certificate-authority-managers.md) — Creates and manages a public-key infrastructure with EasyRSA for issuing, listing, and revoking client certificates.
- [PKI Management](https://awesome-repositories.com/f/security-cryptography/pki-management.md) — Generates a complete public-key infrastructure inside the container using EasyRSA.
- [Certificate Revocations](https://awesome-repositories.com/f/security-cryptography/certificate-revocations.md) — Invalidates client certificates to prevent further VPN connections, with optional file deletion. ([source](https://github.com/kylemanna/docker-openvpn/blob/master/docs/docker-compose.md))
- [One-Time Passwords](https://awesome-repositories.com/f/security-cryptography/one-time-passwords.md) — Requires time-based one-time passwords from authenticator apps as a second factor for VPN logins. ([source](https://github.com/kylemanna/docker-openvpn/tree/master/alpine/google-authenticator))
- [TOTP Secret Provisioners](https://awesome-repositories.com/f/security-cryptography/one-time-passwords/custom-otp-format-configurations/totp-secret-provisioners.md) — Generates TOTP secrets, displays QR codes for authenticator app scanning, and stores backup credentials. ([source](https://github.com/kylemanna/docker-openvpn/blob/master/docs/otp.md))
- [Two-Factor Authentication](https://awesome-repositories.com/f/security-cryptography/two-factor-authentication.md) — Enforces time-based one-time passwords from authenticator apps as a second factor for OpenVPN client logins.
- [Multi-Factor VPN Authenticators](https://awesome-repositories.com/f/security-cryptography/user-access-management/access-authentication/multi-factor-vpn-authenticators.md) — Enforces time-based one-time passwords from authenticator apps as a second factor for VPN logins. ([source](https://github.com/kylemanna/docker-openvpn/blob/master/docs/otp.md))

### Data & Databases

- [Docker Volume Persistence](https://awesome-repositories.com/f/data-databases/persistent-storage-volumes/docker-volume-persistence.md) — Stores configuration, certificates, and keys on a Docker volume for persistence across restarts.

### Operating Systems & Systems Programming

- [Systemd Service Registrations](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/boot-startup-management/auto-start-services/systemd-service-registrations.md) — Manages the container lifecycle with a systemd unit that auto-starts and restarts on failure.
