ZeroUI - ZeroTier Controller Web UI - is a web user interface for a self-hosted ZeroTier network controller.
Explore the screenshots »
Bug Report
·
Feature Request
·
Ask a Question
This project drew inspiration from ztncui and was developed to address the current limitations of self-hosted network controllers. Some of the issues in ztncui cannot be resolved due to the core architecture of the project. ZeroUI aims to resolve these issues and introduces the following features:
Frontend:
Backend:
Ready-to-use deployment solution:
The recommended way to install ZeroUI is by using Docker and Docker Compose. To install Docker and Docker Compose on your system, please follow the installation guide in the official Docker documentation.
For HTTPS setup, you will need a domain name. You can obtain one for free at https://www.duckdns.org.
Here's a straightforward one-minute installation guide, perfect for a fresh VPS setup:
mkdir -p /srv/zero-ui/
cd /srv/zero-ui/
docker-compose.yml
filewget https://raw.githubusercontent.com/dec0dOS/zero-ui/main/docker-compose.yml
or
curl -L -O https://raw.githubusercontent.com/dec0dOS/zero-ui/main/docker-compose.yml
YOURDOMAIN.com
with your domain name and set admin credentials (ZU_DEFAULT_PASSWORD
) in docker-compose.yml
docker pull dec0dos/zero-ui
docker-compose up -d --no-build
CTRL-C
to stop log preview)docker-compose logs -f
80/tcp
, 443/tcp
, and 9993/udp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 9993/udp
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
https://YOURDOMAIN.com/app/
.
Now you can use your ZeroUI instance with HTTPS support and automated certificate renewal.To disable Caddy proxy and HTTPS, remove the
https-proxy
fromdocker-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 | |
LISTEN_ADDRESS | 0.0.0.0 |
Express server listen address | |
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 | |
ZU_DISABLE_AUTH | false |
If set to true, automatically log in all users. This is useful if ZeroUI is protected by an authentication proxy. Note that when this value is changed, the localStorage of instances of logged-in panels should be cleared | |
ZU_LAST_SEEN_FETCH | true |
Enables Last Seen feature | |
ZU_LAST_SEEN_SCHEDULE | */5 * * * * |
Last Seen cron-like schedule | |
ZU_LOGIN_LIMIT | false |
Enable rate limiter for /login endpoint | |
ZU_LOGIN_LIMIT_WINDOW | 30 | The duration of the IP ban in minutes | |
ZU_LOGIN_LIMIT_ATTEMPTS | 50 | Login attemps before ban |
ZeroUI could be deployed as a regular nodejs web application, but it requires a ZeroTier controller that is installed with the zerotier-one
package. For more info about the network controller, you could read here.
For Ansible Role, please refer to the zero-ui-ansible repository.
After installation, log in with the credentials declared with ZU_DEFAULT_USERNAME
and ZU_DEFAULT_PASSWORD
.
Currently, some main ZeroTier Central features are missing. Refer to the roadmap for more information.
For screenshots, please refer to the screenshots section.
To get the latest version, simply run
docker-compose pull && docker-compose up -d --no-build
in the folder where docker-compose.yml
is located. Backups may not be necessary since most of your data is usually saved at the controller level, but it's still a good idea to consider them as a precautionary measure.
You should regularly back up the zerotier-one
and data
folders in your ZeroUI installation directory. You can do this manually before upgrading using the following commands:
tar cvf backup-ui.tar data/
tar cvf backup-zt.tar zerotier-one/
For a list of proposed features (and known issues), see the open issues.
When creating bug reports, please ensure they are:
Firstly, thank you for considering contributing! Contributions are what make the open-source community thrive. Any contributions you make will benefit everyone, and they are highly appreciated.
To contribute:
git checkout -b feat/amazing_feature
).git commit -m 'feat: add amazing_feature'
).git push origin feat/amazing_feature
).ZeroUI uses conventional commits, so please follow the guidelines. You can use yarn commit
to open a Text-Based User Interface (TUI) that follows conventional commits guidelines.
To set up a development environment, follow these steps:
git clone https://github.com/dec0dOS/zero-ui.git
cd zero-ui
yarn install
yarn dev
You will also need to install the ZeroTier controller. On Linux, installing the zerotier-one
package is sufficient, but other platforms may require some adjustments. First, you should obtain the controller token. On macOS, you can find it using the following command:
sudo cat "/Library/Application Support/ZeroTier/One/authtoken.secret"
Afterward, you can start the ZeroUI development environment:
ZU_CONTROLLER_TOKEN=TOKEN_FROM_authtoken.secret yarn dev
For other platforms, please refer to the ZeroTier manual.
If you need assistance or have questions, reach out through GitHub Discussions.
ZeroUI follows best practices for security, but complete security cannot be guaranteed. ZeroUI is provided "as is" without any warranty. Use at your own risk.
For enterprise support and a more reliable and scalable solution, please consider using ZeroTier Central.
For more information and to report security issues, please refer to our security documentation.
ZeroUI is not affiliated with, associated with, or endorsed by ZeroTier Central or ZeroTier, Inc.
See LICENSE for more information.