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)
Plan to use VyControl?
- Subscribe to our announce list at https://vycontrol.com/
- Join Slack Channel https://vycontrol.slack.com/archives/C012ZRMB8VB
- Add new enhancement requests at https://github.com/vycontrol/vycontrol/issues
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
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?
- Solve Issues at https://github.com/vycontrol/vycontrol/issues
- Forks and pull requests are welcome!
- Discussion VyControl at VyOS forum https://forum.vyos.io/t/vycenter-alpha-stage-announcement-vyos-web-interface/5221/4
changelog
- create/read/update/delete users
- create/read/update/delete groups
- create/read/update/delete DNS Resolver
- create/read/update/delete email/password in user profile
- create/read/update/delete interfaces and vlans
- lost password recovery using external SMTP server
- create/read/update/delete NTP Serrves
- create/read/update/delete zone based firewall
- improve firewall UI and error returns to end users
- working firewall
- 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
- https://docs.vyos.io/en/latest/appendix/http-api.html
- https://forum.vyos.io/t/http-api-for-show/3922
- https://blog.vyos.io/vyos-rolling-release-has-got-an-http-api
- https://www.facebook.com/vycontrol
screenshoots
Install VyControl
List Users
List VyOS Instances
Add VyOS Instances
List Interfaces
List Firewall
Add Firewall Rule
List Static Routes
Sponsoring
- VyControl is being tested at Under a Brazilian provider of Cloud Computing and Datacenters.