.github | ||
.husky | ||
backend | ||
docker | ||
docs | ||
frontend | ||
.dockerignore | ||
.gitignore | ||
.prettierrc.json | ||
CHANGELOG.md | ||
commitlint.config.js | ||
docker-compose.yml | ||
LICENSE | ||
package.json | ||
README.md | ||
yarn.lock |
ZeroUI - ZeroTier Controller Web UI - is a web user interface for a self-hosted ZeroTier network controller.
Explore the docs »
Report Bug
·
Request Feature
Table of Contents
About
This project is highly inspired by ztncui and was developed to address the current limitations of applying the self-hosted network controllers. Some ztncui problems cannot be fixed because of the core architecture of the project. ZeroUI tries to solve them and implements the following features:
Wait, I haven't heard about ZeroTier yet...ZeroTier is awesome open source project that is avalible on wide range of platforms. Most of your hard networking problems could be solved with ZeroTier. It could replace all your complex VPN setups. You can place all your devices on a virtual LAN and manage it easily. To sum up, ZeroTier combines the capabilities of VPN and SD-WAN, simplifying network management. |
Built With
Frontend:
Backend:
Deploy:
Getting Started
Prerequisites
The recommended method to install ZeroUI is by using Docker and Docker Compose. To install Docker and Docker Compose on your system, please follow the installation guide from the official Docker documentation.
For HTTPS setup you will need a domain name.
Installation
The most simple one-minute installation. Great for the fresh VPS setup.
- Download the
docker-compose.yml
filewget https://raw.githubusercontent.com/dec0dOS/zero-ui/main/docker-compose.yml
- Replace
example.com
with your domain name indocker-compose.yml
- Pull the images
docker-compose pull
- Run the containers
docker-compose up -d --no-build
- Check if everything is okay
docker-compose logs
- Disable your firewall for the following ports:
80/tcp
,443/tcp
and9993/udp
- on ubuntu/debian with ufw installed:
ufw allow 80/tcp ufw allow 443/tcp ufw allow 9993/udp
- or you may use the old good iptables:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A INPUT -p udp --dport 9993 -j ACCEPT
- on ubuntu/debian with ufw installed:
- Navigate to
https://YOURDOMAIN.com/app/
. Now you could use your ZeroUI instance with HTTPS support and automated certificate renewal.
To disable HTTPS, please remove https-proxy from
docker-compose.yml
, setZU_SECURE_HEADERS
tofalse
and change zero-ui portexpose
toports
.
Advanced manual setups are also supported. Check the following environment variables as a reference:
Name | Default value | Description |
---|---|---|
NODE_ENV | unset | You could learn more here |
ZU_SERVE_FRONTEND | true | You could disable frontend serving and use ZeroUI instance as REST API for your ZeroTier controller |
ZU_SECURE_HEADERS | true | Enables helmet |
ZU_CONTROLLER_ENDPOINT | http://localhost:9993/ | ZeroTier controller API endpoint |
ZU_CONTROLLER_TOKEN | from /var/lib/zerotier-one/authtoken.secret | ZeroTier controller API token |
ZU_DEFAULT_USERNAME | unset (docker-compose.yml: admin) | Default username that will be set on the first run |
ZU_DEFAULT_PASSWORD | unset (docker-compose.yml: zero-ui) | Default password that will be set on the first run |
ZU_DATAPATH | data/db.json | ZeroUI data storage path |
ZeroUI could be deployed as a regular nodejs web application, but it requires ZeroTier controller that is installed with zerotier-one
package. More info about the network controller you could read here
Usage
After installation, log in with your credentials that are declared with ZU_DEFAULT_USERNAME and ZU_DEFAULT_PASSWORD.
Currently, almost all actions are available through the UI. Refer to the roadmap for more information.
For the screenshots, please refer to the screenshots
Update
To get the latest version just run
docker-compose pull && docker-compose up -d --no-build
in the folder where docker-compose.yml
is located. Backup is not required as your data is saved in Docker volumes but recommended.
You could also set up watchtower for automatic updates.
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
--restart always \
containrrr/watchtower \
--cleanup --include-restarting \
zu-main zu-controller
Backup
The easiest way to create your ZeroUI data backup is to use the following commands:
docker run --rm --volumes-from zu-controller -v $(pwd):/backup ubuntu tar cvf /backup/backup-controller.tar /var/lib/zerotier-one
docker run --rm --volumes-from zu-main -v $(pwd):/backup ubuntu tar cvf /backup/backup-ui.tar /app/backend/data
Roadmap
See the open issues for a list of proposed features (and known issues).
Contributing
Contributions are what makes the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a pull request
ZeroUI uses conventional commits, so please follow the guidelines.
Development environment
To set up a development environment, please follow these steps:
- Clone the repo
git clone https://github.com/dec0dOS/zero-ui.git
- Install packages
yarn installDeps
- Start the development server
yarn dev
- Navigate to http://localhost:3000
It is also required to install ZeroTier controller. On Linux installing zerotier-one
package is enough, other platforms require some tweaking. Firstly you should get the controller token. On macOS, you could find it with the following command:
sudo cat "/Library/Application Support/ZeroTier/One/authtoken.secret"
After you could start ZeroUI development environment:
ZU_CONTROLLER_TOKEN=TOKEN_FROM_authtoken.secret yarn dev
Support
Reach out to me at one of the following places:
- Telegram: REMOVED
- E-Mail: REMOVED
Security
ZeroUI follows good practices of security, but 100% security can't be granted in software. ZeroUI is provided "as is" without any warranty. Use at your own risk.
For enterprise support, a more reliable and scalable solution, please use ZeroTier Central.
For more info, please refer to the security
Copyright notice
ZeroUI is not affiliated or associated with or endorsed by ZeroTier Central or ZeroTier, Inc.
License
See LICENSE for more information.