If your UniFi controller/ Cloud Key/ UDM/ UDR does not have a public IP you, you won't be able to use an external portal solution like Spotipo. However we now have a reverse tunnel solution that will help you in such situation.
The solution works by creating a reverse SSH tunnel from your controller to our server, so that we can access your controller.
Enable SSH access on your UDM/CK/UDR
If you are using a software controller, ie UniFi controller running on a server, skip this.
Make sure to login to your device by going to https://<it's local IP>, and navigate to Console Settings.
Enable Remote Access and SSH, use the Change Password option to set a password.
SSH into your controller
Using your favorite SSH terminal, log in to the UniFi controller. If you got a CK/UDM/UDR etc use root
as username and the password you set above.
Install autoSSH
We will use autossh
to keep the connection active, install the same using below command after logging into the controller.
apt install autossh
Generate SSH Keys
Check if you already have a set of SSH keys under /root/.ssh/id_rsa.pub
if not create them using the command
ssh-keygen
And then copy the content of /root/.ssh/id_rsa.pub
and send to us via chat. In return we will assign a USERNAME to you.
Proceed to the next steps once you have a USERNAME from support.
Check the SSH credentials.
Once you have the username from support, execute the below command on the SSH terminal
ssh <USERNAME_FROM_SUPPORT>@ssh.tunnel.spotipo.com -p 3333
Accept the fingerprint by typing yes and pressing enter.
The command should return something
Create an AutoSSH service
Now create a file /etc/systemd/system/spotipo-tunnel.service
with the below content.
Remember to replace <USERNAME> with the actual username.
[Unit]
Description=AutoSSH tunnel service to spotipo
After=network.target
[Service]
Environment="AUTOSSH_GATETIME=0"
ExecStart=/usr/bin/autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -N -R /:localhost:443 <USERNAME>@ssh.tunnel.spotipo.com -p 3333
[Install]
WantedBy=multi-user.target
Now reload the configuration using the command.
systemctl daemon-reload
And start the service
systemctl start spotipo-tunnel.service
systemctl enable spotipo-tunnel.service
Now check the status of the service by
systemctl status spotipo-tunnel.service
It should say something like
Now you should be able to use <USERNAME>.spotipo.cloud as the Hostname for your server in the Settings tab.