UISP (UNMS) on Hetzner Cloud with Ubuntu
Last updated: 17. June 2021
Ubiquiti offers UISP hosting for free, but only if you have 10 or more devices. Therefore, for smaller installations, or if you don’t want to rely on Ubiquiti’s cloud, self-hosting is an good option.
The UISP/UNMS application is provided as a docker container which contains all necessary dependencies.
- Hetzner Cloud account
- (Sub)domain name which can be used to access the controller, in this article we’ll use
- SSH key, needed to connect to the cloud server once its up and running
Setting up the server in Hetzner Cloud
Login to the Hetzner cloud console and create a new Project (e.g. Ubiquiti), if necessary.
Make sure you have registered an SSH key in the project security settings.
Create a new floating IP address (in this article we’ll use
198.51.100.456 as an example). Make sure that the IP address and the server you create later are located in the same data centre.
uisp.example.com as the reverse DNS (rDNS) entry of the floating IP.
Head over to the DNS management service of your domain name (e.g. Hetzner DNS) and add a new A-Record for
uisp.example.com, which points to the newly obtained IP address.
Create a new server in the Cloud console:
- Location (same as floating IP)
- Image: Ubuntu 20.04
- Type: CX11 (Standard, local NVMe SSD, 1 vCPU, 2 GB RAM, 20 GB SSD)
- Volume: (none)
- Network: (none)
- User data: (none)
- Backup: recommended
- Name: uisp
Once the server has been created, assign floating IP address to this server.
Login to the server via SSH, using username
root and your SSH key.
Note that for the first login, you have to use the auto-generated server IP address, as the floating IP has not yet been configured on the server (see next step).
Configuring the network
Add the floating IP address to the network settings, by creating the file
/etc/netplan/60-floating-ip.yaml and editing it using the Nano editor:
touch /etc/netplan/60-floating-ip.yaml nano /etc/netplan/60-floating-ip.yaml
Add the following content (replace the IP with your actual floating IP address):
network: version: 2 ethernets: eth0: addresses: - 198.51.100.456/32
Hit Ctrl+x to exit Nano.
Apply the new network settings:
Also, set the hostname of the system:
hostnamectl set-hostname uisp.example.com
Run the following one-liner to install the software with the required libraries, and start the service:
curl -fsSL https://unms.com/v1/install > /tmp/unms_inst.sh && sudo bash /tmp/unms_inst.sh
Access the GUI via the hostname or IP of your server: https://uisp.example.com/
During the guided setup in the GUI, you will have the option to generate self-renewing Let’s Encrypt certificate.
Updates of the UISP software can be applied in the GUI directly.
- Configure either the system or the Hetzner Cloud Firewall to only allow the necessary ports, and allow access only from known source network addresses.