Web interface (with golang backend) for monitoring and administration of OpenVPN server
Go to file
2017-04-09 21:13:49 +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 initial commit 2017-04-09 21:13:49 +02:00
docs initial commit 2017-04-09 21:13:49 +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 initial commit 2017-04-09 21:13:49 +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.

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 option to modify certificate properties
  • generate random admin password at initialization phase
  • add versioning

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