2016-08-04 18:16:42 +00:00
|
|
|
# Quick Start with docker-compose
|
|
|
|
|
|
|
|
* Add a new service in docker-compose.yml
|
|
|
|
|
2017-01-29 00:07:51 +00:00
|
|
|
```yaml
|
|
|
|
version: '2'
|
|
|
|
services:
|
|
|
|
openvpn:
|
|
|
|
cap_add:
|
|
|
|
- NET_ADMIN
|
|
|
|
image: kylemanna/openvpn
|
|
|
|
container_name: openvpn
|
|
|
|
ports:
|
|
|
|
- "1194:1194/udp"
|
|
|
|
restart: always
|
|
|
|
volumes:
|
|
|
|
- ./openvpn-data/conf:/etc/openvpn
|
|
|
|
```
|
|
|
|
|
2016-08-04 18:16:42 +00:00
|
|
|
|
|
|
|
* Initialize the configuration files and certificates
|
|
|
|
|
2017-01-29 00:07:51 +00:00
|
|
|
```bash
|
|
|
|
docker-compose run --rm openvpn ovpn_genconfig -u udp://VPN.SERVERNAME.COM
|
|
|
|
docker-compose run --rm openvpn ovpn_initpki
|
|
|
|
```
|
|
|
|
|
2016-08-04 18:16:42 +00:00
|
|
|
* Fix ownership (depending on how to handle your backups, this may not be needed)
|
|
|
|
|
2017-01-29 00:07:51 +00:00
|
|
|
```bash
|
|
|
|
sudo chown -R $(whoami): ./openvpn-data
|
|
|
|
```
|
2016-08-04 18:16:42 +00:00
|
|
|
|
|
|
|
* Start OpenVPN server process
|
|
|
|
|
2017-01-29 00:07:51 +00:00
|
|
|
```bash
|
|
|
|
docker-compose up -d openvpn
|
|
|
|
```
|
|
|
|
|
|
|
|
* You can access the container logs with
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker-compose logs -f
|
|
|
|
```
|
2016-08-04 18:16:42 +00:00
|
|
|
|
2017-01-29 00:07:51 +00:00
|
|
|
* Generate a client certificate
|
2016-08-04 18:16:42 +00:00
|
|
|
|
2017-01-29 00:07:51 +00:00
|
|
|
```bash
|
|
|
|
export CLIENTNAME="your_client_name"
|
|
|
|
# with a passphrase (recommended)
|
2017-02-12 12:50:42 +00:00
|
|
|
docker-compose run --rm openvpn easyrsa build-client-full $CLIENTNAME
|
2017-01-29 00:07:51 +00:00
|
|
|
# without a passphrase (not recommended)
|
2017-02-12 12:50:42 +00:00
|
|
|
docker-compose run --rm openvpn easyrsa build-client-full $CLIENTNAME nopass
|
2017-01-29 00:07:51 +00:00
|
|
|
```
|
2016-08-04 18:16:42 +00:00
|
|
|
|
|
|
|
* Retrieve the client configuration with embedded certificates
|
|
|
|
|
2017-01-29 00:07:51 +00:00
|
|
|
```bash
|
2017-02-12 12:50:42 +00:00
|
|
|
docker-compose run --rm openvpn ovpn_getclient $CLIENTNAME > $CLIENTNAME.ovpn
|
2017-01-29 00:07:51 +00:00
|
|
|
```
|
2016-08-04 18:16:42 +00:00
|
|
|
|
2017-05-02 16:10:12 +00:00
|
|
|
* Revoke a client certificate
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# Keep the corresponding crt, key and req files.
|
|
|
|
docker-compose run --rm openvpn ovpn_revokeclient $CLIENTNAME
|
|
|
|
# Remove the corresponding crt, key and req files.
|
|
|
|
docker-compose run --rm openvpn ovpn_revokeclient $CLIENTNAME remove
|
|
|
|
```
|
|
|
|
|
2016-08-04 18:16:42 +00:00
|
|
|
## Debugging Tips
|
|
|
|
|
|
|
|
* Create an environment variable with the name DEBUG and value of 1 to enable debug output (using "docker -e").
|
|
|
|
|
2017-01-29 00:07:51 +00:00
|
|
|
```bash
|
2019-01-18 14:35:09 +00:00
|
|
|
docker-compose run -e DEBUG=1 -p 1194:1194/udp openvpn
|
2017-01-29 00:07:51 +00:00
|
|
|
```
|