Video coming soon…

🌐 Setup ZTNET — Self-Hosted ZeroTier Network Controller

Deploy ZTNET on Ubuntu with Docker — the open-source web UI and management platform for ZeroTier networks.

⚠️ This script is provided for demo and testing purposes only. Not intended for production use.

📦 Resources & Setup Scripts

Grab the automated bash script from GitHub to follow along with the video.

Automated install script — one command deploys ZTNET with ZeroTier One, PostgreSQL, and the full web management interface.
View on GitHub

Quick Install:

wget https://raw.githubusercontent.com/mhmdali94/Docker/main/vpn/ztnet/ztnet-ubuntu.sh
chmod +x ztnet-ubuntu.sh
sudo bash ztnet-ubuntu.sh

Tutorial Steps

1 Download the Script

wget https://raw.githubusercontent.com/mhmdali94/Docker/main/vpn/ztnet/ztnet-ubuntu.sh

2 Make it Executable

chmod +x ztnet-ubuntu.sh

3 Run the Installer

The script installs Docker, starts the ZeroTier One daemon on the host, provisions a PostgreSQL database, and launches the ZTNET container.

sudo bash ztnet-ubuntu.sh

4 Access the Web UI

Open your browser and navigate to the ZTNET web interface:

http://<your-server-ip>:3000

Ports Used

PortPurpose
3000ZTNET Web UI
9993/UDPZeroTier One Peer-to-Peer Communication

Overview

ZTNET is an open-source web interface for managing ZeroTier networks. It gives you a self-hosted replacement for the official my.zerotier.com control plane, including network creation, member authorisation, IP route management, and flow rules.

Why Use It

ZTNET removes the dependency on ZeroTier's cloud infrastructure, giving you full sovereignty over your network topology, member authorisation, and audit logs.

When You Need It

    Who Should Use It

      Real Use Cases

        Main Features

          How to Use After Installation

            Security Best Practices

              Ports and Firewall Notes

              ZTNET web UI on port 3000. ZeroTier One uses UDP 9993 — open this on your firewall for NAT traversal. PostgreSQL (5432) and Redis are internal only.

              Backup and Maintenance

                Common Mistakes

                  Troubleshooting

                    Alternatives

                    my.zerotier.com is simplest for up to 25 devices (free). ZeroUI is another self-hosted ZeroTier web UI. WireGuard-Easy for simpler hub-and-spoke. Headscale for WireGuard mesh. Nebula for certificate-based overlay networking.

                    When Not to Use It

                    If you only need a simple point-to-point VPN, WireGuard is simpler. ZTNET requires running a ZeroTier controller which adds operational complexity.

                    PrismaTechWork Professional Help

                    PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support.

                      Contact Us

                      Frequently Asked Questions

                      What is the difference between ZTNET and my.zerotier.com?

                      my.zerotier.com is ZeroTier's cloud-hosted controller. ZTNET is a self-hosted replacement giving you full data sovereignty.

                      How many devices can I connect with ZTNET?

                      No device limit — you can connect hundreds or thousands. The only practical limits are server resources.

                      Does ZeroTier work without port forwarding on client devices?

                      Yes. ZeroTier uses hole-punching and relay fallback to traverse NAT without any router configuration on client devices.

                      Can I use ZTNET alongside the official my.zerotier.com?

                      Yes, but devices connect to one controller at a time. Use separate network IDs for each. It's recommended to migrate fully to avoid confusion.

                      Is ZTNET suitable for production enterprise networks?

                      ZTNET is suitable for many production environments when complemented with monitoring, daily PostgreSQL backups, and an Nginx reverse proxy with TLS.