{"id":13585635,"url":"https://github.com/vycontrol/vycontrol","last_synced_at":"2025-04-07T10:31:22.939Z","repository":{"id":38095601,"uuid":"258033816","full_name":"vycontrol/vycontrol","owner":"vycontrol","description":"vyos frontend","archived":false,"fork":false,"pushed_at":"2024-02-09T11:55:43.000Z","size":496,"stargazers_count":232,"open_issues_count":25,"forks_count":29,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-02-14T21:13:43.788Z","etag":null,"topics":["bgp","django","firewall","firewall-configuration","firewall-management","frontend","gui","ipsec","nat","openvpn","python","vpn","vyatta","vyos"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vycontrol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-22T22:25:03.000Z","updated_at":"2024-06-10T21:07:48.778Z","dependencies_parsed_at":"2023-02-10T02:46:28.051Z","dependency_job_id":"d3d9aab3-1110-48c9-b644-82968d9837cb","html_url":"https://github.com/vycontrol/vycontrol","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vycontrol%2Fvycontrol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vycontrol%2Fvycontrol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vycontrol%2Fvycontrol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vycontrol%2Fvycontrol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vycontrol","download_url":"https://codeload.github.com/vycontrol/vycontrol/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247636312,"owners_count":20970901,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bgp","django","firewall","firewall-configuration","firewall-management","frontend","gui","ipsec","nat","openvpn","python","vpn","vyatta","vyos"],"created_at":"2024-08-01T15:05:03.259Z","updated_at":"2025-04-07T10:31:22.675Z","avatar_url":"https://github.com/vycontrol.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg align=\"center\" width=\"150\" height=\"30\" src=\"https://storage.googleapis.com/vycontrol/logos/logotxt.png\" alt=\"VyControl\"\u003e\n\u003c/p\u003e\n\n\nVyControl is web frontend interface to manage a single or multiple VyoS servers. It is developed in Python/Django using VyOS API.\n\n# Future Roadmap\nVyControl currently is deprecated since VyOS will bring a new API.\n\n\n# Use Cases:\n\nVyControl 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\n\nVyControl 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\n\nVyControl 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).\n\n\n# Main links\n* [VyOS](https://www.vyos.io/) linux firewall website (only compatible with rolling release / 1.3 VyOS)\n* [Reddit](https://www.reddit.com/r/vycontrol/) \n\n# Plan to use VyControl?\n- [ ] Add new enhancement requests at https://github.com/vycontrol/vycontrol/issues\n\n# Install instructions \n\n* download [VyOS](https://www.vyos.io/) Rolling Release, since VyControl needs the latest VyOS API.\n* configure VyOS-API according VyOS documentation\n\n## Docker\nlatest VyControl is being autobuilt at dockerhub https://hub.docker.com/r/robertoberto/vycontrol\n\ndownload latest docker image:\n```\ndocker pull robertoberto/vycontrol\n```\n\nrun docker:\n```\ndocker run -p 8000:8000 -t robertoberto/vycontrol\n```\n\nnow you can access http://127.0.0.1:8000\n\n\n## by docker compose\nRight now we are using db.sqlite3, you can edit composer and to change to mySQL/PostgreSQL if needed.\n\n```\nfind vycontrol | grep migrations | xargs rm -rf\ndocker-compose build\ndocker-compose up\n```\n\n## manual install instructions\n\n### setup virtual env and pip requirements\n```\nvirtualenv env\nsource env/bin/activate\npip3 install -r requirements.txt\n```\n\n### create your own configuration\n```\ncp -a vycontrol/vycontrol/settings_example/ /vycontrol/vycontrol/settings_available/\n```\nedit according your needs:\n* ALLOWED_HOSTS currently 127.0.0.1 is ok for tests\n* for tests you don't need to edit EMAIL settings, but forget password will not work\n* sqlite is ok for tests, but you can change to MySQL/PostgreSQL. \n* SECRET_KEY edit to anything random, you can use openssl for example:\n\n```\nopenssl rand -hex 32\n```\n\n### setup initial database\n```\nsource env/bin/activate\ncd vycontrol\npython3 manage.py makemigrations config --settings=vycontrol.settings_available.production \npython3 manage.py makemigrations --settings=vycontrol.settings_available.production \npython3 manage.py migrate --settings=vycontrol.settings_available.production \n```\n\n### run webserver\n```\nsource env/bin/activate\ncd vycontrol\npython3 manage.py runserver --settings=vycontrol.settings_available.production 0.0.0.0:8000\n```\n\n## access webpage\nhttp://127.0.0.1:8000/\n\n\n## setup vyos new instance\n* click on *Add new instance*\n* configure vyos services like explained here https://docs.vyos.io/\n* click on *List Instances*\n* click on *Test Connection*\n\n## setup email provider\nVyControl 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.\n\n* edit vycontrol/settings/production.py\n* change according your mail provider, you can use gmail accounts, sendergrid, amazon ses, mailgun etc\n```\nEMAIL_HOST = 'email-smtp.us-east-1.amazonaws.com'\nEMAIL_PORT = 587\nEMAIL_HOST_USER = 'user'\nEMAIL_HOST_PASSWORD = 'password'\nEMAIL_USE_TLS = True\n```\n\n# Plan to help develop VyControl?\n- [ ] Solve Issues at https://github.com/vycontrol/vycontrol/issues\n- [ ] Forks and pull requests are welcome!\n- [ ] Discussion VyControl at VyOS forum https://forum.vyos.io/t/vycenter-alpha-stage-announcement-vyos-web-interface/5221/4\n\n# changelog\n- [x] create/read/update/delete users \n- [x] create/read/update/delete groups\n- [x] create/read/update/delete DNS Resolver\n- [x] create/read/update/delete email/password in user profile\n- [x] create/read/update/delete interfaces and vlans\n- [x] lost password recovery using external SMTP server\n- [x] create/read/update/delete NTP Serrves\n- [x] create/read/update/delete zone based firewall\n- [x] improve firewall UI and error returns to end users\n- [x] working firewall\n- [x] version created to start project framework, organize permission systems and concept test with some firewall and interface functions and statics routes\n\n# roadmap\n\n## vpn services\n- [ ] openvpn\n- [ ] ipsec\n\n## basic router configuration\n- [ ] ssh service\n- [ ] logins\n- [ ] hostname\n- [ ] domain-name\n- [ ] timezone\n\n## dynamic routing\n- [ ] OSPF\n- [ ] BGP\n\n## addons features \n- [ ] FastNetMon integration\n- [ ] save/commit/load\n- [ ] s3 backup scheduler\n\n## IPV6\n- [ ] ipv6\n\n# references\n* https://docs.vyos.io/en/latest/appendix/http-api.html\n* https://forum.vyos.io/t/http-api-for-show/3922\n* https://blog.vyos.io/vyos-rolling-release-has-got-an-http-api \n* https://www.facebook.com/vycontrol\n\n\n# screenshoots \n\n## Install VyControl\n![Install VyControl](https://storage.googleapis.com/vycontrol/screenshoots/20.05.01/install.png)\n\n## List Users\n![List Users](https://storage.googleapis.com/vycontrol/screenshoots/20.05.01/list_users.png)\n\n## List VyOS Instances\n![List VyOS Instances](https://storage.googleapis.com/vycontrol/screenshoots/20.05.01/list_instances.png)\n\n## Add VyOS Instances\n![Add VyOS Instances](https://storage.googleapis.com/vycontrol/screenshoots/20.05.01/add_instance.png)\n                      \n## List Interfaces\n![List Interfaces](https://storage.googleapis.com/vycontrol/screenshoots/20.05.01/list_instances.png)\n\n## List Firewall\n![List Dashboard](https://storage.googleapis.com/vycontrol/screenshoots/20.05.01/list_firewall.png)\n\n## Add Firewall Rule\n![Add Firewall Rule](https://storage.googleapis.com/vycontrol/screenshoots/20.05.01/add_firewall_rule.png)\n\n## List Static Routes\n![List Static Routes](https://storage.googleapis.com/vycontrol/screenshoots/20.05.01/list_static.png)\n\n\n# Sponsoring\n* VyControl is being tested at [Under](https://under.com.br) a Brazilian provider of Cloud Computing and Datacenters.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvycontrol%2Fvycontrol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvycontrol%2Fvycontrol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvycontrol%2Fvycontrol/lists"}