{"id":13826406,"url":"https://github.com/2stacks/docker-ovpn","last_synced_at":"2025-07-09T00:33:21.739Z","repository":{"id":19473128,"uuid":"106433668","full_name":"2stacks/docker-ovpn","owner":"2stacks","description":"OpenVPN Server in Docker Container","archived":false,"fork":false,"pushed_at":"2023-02-15T07:58:29.000Z","size":27,"stargazers_count":12,"open_issues_count":4,"forks_count":9,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-05T09:15:14.320Z","etag":null,"topics":["docker-container","easyrsa","freeradius","openvpn-container","openvpn-server"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/2stacks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-10-10T15:11:40.000Z","updated_at":"2024-03-20T01:26:36.000Z","dependencies_parsed_at":"2024-01-07T22:49:40.899Z","dependency_job_id":"7dcb8dea-85bc-48fd-89ff-ab0f3919536e","html_url":"https://github.com/2stacks/docker-ovpn","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2stacks%2Fdocker-ovpn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2stacks%2Fdocker-ovpn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2stacks%2Fdocker-ovpn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2stacks%2Fdocker-ovpn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/2stacks","download_url":"https://codeload.github.com/2stacks/docker-ovpn/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225476383,"owners_count":17480215,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker-container","easyrsa","freeradius","openvpn-container","openvpn-server"],"created_at":"2024-08-04T09:01:36.918Z","updated_at":"2024-11-20T05:30:42.272Z","avatar_url":"https://github.com/2stacks.png","language":"Shell","readme":"## OpenVPN Server in Docker Container\n\nBuilds an OpenVPN server that uses Freeradius/MySQL for backend authentication.\nServer listens for connections on both UDP 1194 and TCP 443.  The server will look\nfor key material in '$PWD/config/ovpn'\n\n[![Build Status](https://travis-ci.org/2stacks/docker-ovpn.svg?branch=master)](https://travis-ci.org/2stacks/docker-ovpn)\n[![Docker Stars](https://img.shields.io/docker/stars/2stacks/docker-ovpn.svg?style=popout-square)](https://hub.docker.com/r/2stacks/docker-ovpn)\n[![Docker Pulls](https://img.shields.io/docker/pulls/2stacks/docker-ovpn.svg?style=popout-square)](https://hub.docker.com/r/2stacks/docker-ovpn)\n[![Build Details](https://images.microbadger.com/badges/image/2stacks/docker-ovpn.svg)](https://microbadger.com/images/2stacks/docker-ovpn)\n\n## Supported tags\n-   `1.5`, `latest`  [*(Dockerfile)*](https://github.com/2stacks/docker-ovpn/blob/master/Dockerfile)\n-   `1.4`  [*(Dockerfile)*](https://github.com/2stacks/docker-ovpn/blob/v1.4/Dockerfile)\n-   `1.3`  [*(Dockerfile)*](https://github.com/2stacks/docker-ovpn/blob/v1.3/Dockerfile)\n-   `1.2`  [*(Dockerfile)*](https://github.com/2stacks/docker-ovpn/blob/1.2/Dockerfile)\n\n## The following key materials are required to launch the server.\n\n-   ca.crt  \n-   site.crt  \n-   site.dh  \n-   site.key  \n-   ta.key\n\nA very basic shell script has been included to generate a set of key material using\nEasyRSA.  This key material uses the EasyRSA package default configuration and is not\nsuitable for use in production.  To generate the keys as well as an example of how\nto use the keys in a client configuration run the following;\n\n```\ndocker run -it --rm -v /$PWD/configs/ovpn:/etc/openvpn 2stacks/docker-ovpn gen-keys\n```\n\nAll files will be copied to the the local volume mapped to /etc/openvpn.\n\n## Environment Variables\n\n-   RADIUS_HOST=freeradius\n-   RADIUS_KEY=testing123\n-   DNS_HOST1=1.1.1.1\n-   DNS_HOST2=1.0.0.1\n-   OVPN_DEBUG=yes\n\nNote: Setting OVPN_DEBUG ENV to anything will enable server logging to /tmp\n\n## Build the OpenVPN Container\n```bash\ndocker build --pull -t 2stacks/docker-ovpn .\n```\n\n## Run the OpenVPN Container\n```bash\ndocker run -itd \\\n  -h openvpn \\\n  --restart=always \\\n  --name openvpn \\\n  --cap-add=NET_ADMIN \\\n  -e \"RADIUS_HOST=freeradius\" \\\n  -e \"RADIUS_KEY=testing123\" \\\n  -e \"DNS_HOST1=1.1.1.1\" \\\n  -e \"DNS_HOST2=1.0.0.1\" \\\n  -p 1194:1194/udp \\\n  -p 443:443 \\\n  -v /$PWD/configs/ovpn:/etc/openvpn \\\n  2stacks/docker-ovpn\n```\n\n## Run using Docker Compose (can be used to launch freeradius and mysql)\n```bash\ndocker-compose -f docker-compose.yml up -d\n```\n\n## Testing\nIf you launch the stack using the included docker-compose file you should be able to test that everything is working with;\n```bash\ndocker run -it --rm -v $PWD/configs/ovpn/client.conf:/etc/openvpn/client.conf --device /dev/net/tun:/dev/net/tun --net=docker-ovpn_backend --cap-add=NET_ADMIN 2stacks/ovpn-client client.conf\n```\n  - Enter Auth Username: testing\n  - Enter Auth Password: password\n\nExample 'docker-compose.yml' File\n\n```bash\nversion: '3.2'\n\nservices:\n  ovpn:\n    image: \"2stacks/docker-ovpn:latest\"\n    ports:\n      - \"443:443\"\n      - \"1194:1194/udp\"\n    volumes:\n      - \"./configs/ovpn:/etc/openvpn\"\n    environment:\n      #- RADIUS_HOST=freeradius\n      #- RADIUS_KEY=testing123\n      #- DNS_HOST1=1.1.1.1\n      #- DNS_HOST2=1.0.0.1\n      - OVPN_DEBUG=yes\n    cap_add:\n      - NET_ADMIN\n    restart: always\n    networks:\n      - backend\n\n  freeradius:\n    image: \"2stacks/freeradius\"\n    #ports:\n      #- \"1812:1812/udp\"\n      #- \"1813:1813/udp\"\n    #volumes:\n      #- \"./configs/radius/users:/etc/raddb/users\"\n    environment:\n      #- DB_NAME=radius\n      - DB_HOST=mysql\n      #- DB_USER=radius\n      #- DB_PASS=radpass\n      #- DB_PORT=3306\n      #- RADIUS_KEY=testing123\n      #- RAD_CLIENTS=10.0.0.0/24\n      - RAD_DEBUG=yes\n    depends_on:\n      - mysql\n    links:\n      - mysql\n    restart: always\n    networks:\n      - backend\n\n  mysql:\n    image: \"mysql:5.7\"\n    command: mysqld\n    #ports:\n      #- \"3306:3306\"\n    volumes:\n      - \"./configs/mysql/master/data:/var/lib/mysql\"\n      - \"./configs/mysql/master/conf.d:/etc/mysql/conf.d\"\n      - \"./configs/mysql/radius.sql:/docker-entrypoint-initdb.d/radius.sql\"\n    environment:\n      - MYSQL_ROOT_PASSWORD=radius\n      - MYSQL_USER=radius\n      - MYSQL_PASSWORD=radpass\n      - MYSQL_DATABASE=radius\n    restart: always\n    networks:\n      - backend\n\nnetworks:\n  backend:\n    ipam:\n      config:\n        - subnet: 10.0.0.0/24\n```\n","funding_links":[],"categories":["\u003ca id=\"7cf7e8a30b73997985f20698eaf6b0c9\"\u003e\u003c/a\u003eOpenVPN"],"sub_categories":["\u003ca id=\"8ea8f890cf767c3801b5e7951fca3570\"\u003e\u003c/a\u003e公网访问局域网"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2stacks%2Fdocker-ovpn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F2stacks%2Fdocker-ovpn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2stacks%2Fdocker-ovpn/lists"}