Web interface (with golang backend) for monitoring and administration of OpenVPN server
Go to file
2017-04-21 14:01:33 +02:00
build initial commit 2017-04-09 21:13:49 +02:00
conf initial commit 2017-04-09 21:13:49 +02:00
controllers fix documentation 2017-04-21 14:01:33 +02:00
docs do not expose mi port 2017-04-10 22:19:07 +02:00
lib initial commit 2017-04-09 21:13:49 +02:00
models initial commit 2017-04-09 21:13:49 +02:00
routers initial commit 2017-04-09 21:13:49 +02:00
static initial commit 2017-04-09 21:13:49 +02:00
swagger initial commit 2017-04-09 21:13:49 +02:00
vendor initial commit 2017-04-09 21:13:49 +02:00
views initial commit 2017-04-09 21:13:49 +02:00
.gitignore initial commit 2017-04-09 21:13:49 +02:00
LICENSE initial commit 2017-04-09 21:13:49 +02:00
main.go initial commit 2017-04-09 21:13:49 +02:00
README.md fix documentation 2017-04-21 14:01:33 +02:00

OpenVPN-web-ui

Summary

OpenVPN server web administration interface.

Goal: create quick to deploy and easy to use solution that makes work with small OpenVPN environments a breeze.

If you have docker and docker-compose installed, you can jump directly to installation.

Status page

Please note this project is in alpha stage. It still needs some work to make it secure and feature complete.

Motivation

Features

  • status page that shows server statistics and list of connected clients
  • easy creation of client certificates
  • ability to download client certificates as a zip package with client configuration inside
  • log preview
  • modification of OpenVPN configuration file through web interface

Screenshots

Screenshots

Usage

After startup web service is visible on port 8080. To login use the following default credentials:

  • username: admin
  • password: b3secure (this will be soon replaced with random password)

Please change password to your own immediately!

Prod

Requirements:

  • docker and docker-compose
  • on firewall open ports: 1194/udp and 8080/tcp

Execute commands

curl -O https://raw.githubusercontent.com/adamwalach/openvpn-web-ui/master/docs/docker-compose.yml
docker-compose up -d

It starts two docker containers. One with OpenVPN server and second with OpenVPNAdmin web application. Through a docker volume it creates following directory structure:

.
├── docker-compose.yml
└── openvpn-data
    ├── conf
    │   ├── dh2048.pem
    │   ├── ipp.txt
    │   ├── keys
    │   │   ├── 01.pem
    │   │   ├── ca.crt
    │   │   ├── ca.key
    │   │   ├── index.txt
    │   │   ├── index.txt.attr
    │   │   ├── index.txt.old
    │   │   ├── serial
    │   │   ├── serial.old
    │   │   ├── server.crt
    │   │   ├── server.csr
    │   │   ├── server.key
    │   │   └── vars
    │   ├── openvpn.log
    │   └── server.conf
    └── db
        └── data.db

Dev

Requirements:

  • golang environments
  • beego

Execute commands:

go get github.com/adamwalach/openvpn-web-ui
cd $GOPATH/src/github.com/adamwalach/openvpn-web-ui
bee run -gendoc=true

Todo

  • add unit tests
  • add option to modify certificate properties
  • generate random admin password at initialization phase
  • add versioning
  • add automatic ssl/tls (check how ponzu did it)

License

This project uses MIT license

Remarks

Vendoring

https://github.com/kardianos/govendor is used for vendoring.

To update dependencies from GOPATH:

govendor update +v

Template

AdminLTE - dashboard & control panel theme. Built on top of Bootstrap 3.

Preview: https://almsaeedstudio.com/themes/AdminLTE/index2.html