Awesome Open Source
Awesome Open Source

VyControl

VyControl is web frontend interface to manage a single or multiple VyoS servers. It is developed in Python/Django using VyOS API.

Future Roadmap

If you are interested on future of VyControl, please check VyControl v2 Roadmap.

Use Cases:

VyControl can be a web gui for one single VyOS installation, but it requires a separeted webserver from VyOS to a single network admin user or a TI department from a company

VyControl can be a web gui for multiple VyOS installation in a same enterprise, to a single network admin user or a TI department from a company

VyControl can be a web gui for multiple VyOS installation in a datacenter. Each of datacenter customer have a VyControl user to manage their own VyOSes (each user can manage several VyOS).

Main links

  • VyControl website
  • VyOS linux firewall website (only compatible with rolling release / 1.3 VyOS)
  • Reddit

Plan to use VyControl?

Install instructions

  • download VyOS Rolling Release, since VyControl needs the latest VyOS API.
  • configure VyOS-API according VyOS documentation

Docker

latest VyControl is being autobuilt at dockerhub https://hub.docker.com/r/robertoberto/vycontrol

download latest docker image:

docker pull robertoberto/vycontrol

run docker:

docker run -p 8000:8000 -t robertoberto/vycontrol

now you can access http://127.0.0.1:8000

by docker composer

Right now we are using db.sqlite3, you can edit composer and to change to mySQL/PostgreSQL if needed.

find vycontrol | grep migrations | xargs rm -rf
docker-compose build
docker-compose up

manual install instructions

setup virtual env and pip requirements

virtualenv env
source env/bin/activate
pip3 install -r requirements.txt

create your own configuration

cp -a vycontrol/vycontrol/settings_example/ /vycontrol/vycontrol/settings_available/

edit according your needs:

  • ALLOWED_HOSTS currently 127.0.0.1 is ok for tests
  • for tests you don't need to edit EMAIL settings, but forget password will not work
  • sqlite is ok for tests, but you can change to MySQL/PostgreSQL.
  • SECRET_KEY edit to anything random, you can use openssl for example:
openssl rand -hex 32

setup initial database

source env/bin/activate
cd vycontrol
python3 manage.py makemigrations config --settings=vycontrol.settings_available.production 
python3 manage.py makemigrations --settings=vycontrol.settings_available.production 
python3 manage.py migrate --settings=vycontrol.settings_available.production 

run webserver

source env/bin/activate
cd vycontrol
python3 manage.py runserver --settings=vycontrol.settings_available.production 0.0.0.0:8000

access webpage

http://127.0.0.1:8000/

setup vyos new instance

  • click on Add new instance
  • configure vyos services like explained here https://docs.vyos.io/
  • click on List Instances
  • click on Test Connection

setup email provider

VyControl send email to users when they click on Forget Password. So you need to setup a email provider to be able to use this features.

  • edit vycontrol/settings/production.py
  • change according your mail provider, you can use gmail accounts, sendergrid, amazon ses, mailgun etc
EMAIL_HOST = 'email-smtp.us-east-1.amazonaws.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'user'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_USE_TLS = True

Plan to help develop VyControl?

changelog

  • [x] create/read/update/delete users
  • [x] create/read/update/delete groups
  • [x] create/read/update/delete DNS Resolver
  • [x] create/read/update/delete email/password in user profile
  • [x] create/read/update/delete interfaces and vlans
  • [x] lost password recovery using external SMTP server
  • [x] create/read/update/delete NTP Serrves
  • [x] create/read/update/delete zone based firewall
  • [x] improve firewall UI and error returns to end users
  • [x] working firewall
  • [x] version created to start project framework, organize permission systems and concept test with some firewall and interface functions and statics routes

roadmap

vpn services

  • [ ] openvpn
  • [ ] ipsec

basic router configuration

  • [ ] ssh service
  • [ ] logins
  • [ ] hostname
  • [ ] domain-name
  • [ ] timezone

dynamic routing

  • [ ] OSPF
  • [ ] BGP

addons features

  • [ ] FastNetMon integration
  • [ ] save/commit/load
  • [ ] s3 backup scheduler

IPV6

  • [ ] ipv6

references

screenshoots

Install VyControl

Install VyControl

List Users

List Users

List VyOS Instances

List VyOS Instances

Add VyOS Instances

Add VyOS Instances

List Interfaces

List Interfaces

List Firewall

List Dashboard

Add Firewall Rule

Add Firewall Rule

List Static Routes

List Static Routes

Sponsoring

  • VyControl is being tested at Under a Brazilian provider of Cloud Computing and Datacenters.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Python (1,140,439
Django (12,700
Frontend (6,628
Gui (4,437
Vpn (1,094
Firewall (622
Nats (504
Openvpn (490
Bgp (204
Related Projects