The proper server URL and for remote backup clients

The Administration Manual for UrBackup Server 2.5.x in Sub-Section 8.1.2 Server URL of Section 8 Server settings states that URLs take the form of

http://backups.company.com:55414/

In troubleshooting my first attempt at backing up remote clients (to a Docker-based UrBackup app—Version 1.1.6—running on TrueNAS Scale 25.10.7) I found that I had to omit the trailing slash, in order to not get a “The server port is not valid” error.

Elsewhere I saw a URL using “urbackup” in the protocol part of the URL. urbackup://backups.company.com:55414 was no improvement, however. The client still could not connect to the server through an internet connection.

When trying to add the client to the server again through the “Add new client” button on the Status page of the UrBackup web interface, I chose the “Add new Internet/active client” section and clicked on the “Add client” button.

Studying the resultant page I took note of the instructions following the bullet point “Alternatively after you installed the client from: https://www.urbackup.org/download.html”. The key was to use the authentication key, which goes into the “Internet server password” field of the Internet tab of the UrBackup client, and the URL, ws://hostname.net:55414/socket, which goes into the “Server URL client connects to” field on the same tab.

Unless there were other mistakes I made in going from a failed to a working configuration that kept the client from backing up to the server, I propose that the manual should be updated with an example of a ws://… URL.

You got it working the right way. What trips people up is that two different settings both look like “the server URL”:

  • Server URL (the setting in section 8.1.2 of the manual) is only the web address a client opens when a user picks “Access/restore backups” from the tray icon. Clients don’t use it to connect for backups, so the example there is correct for what it’s for.
  • Internet server name/IP (on the Internet tab) is what internet clients connect to. It accepts three forms:
    • a plain hostname, e.g. backups.example.com. The client then connects over TCP to the “Internet server port”, 55415 by default. urbackup://backups.example.com:55415 means the same thing.
    • ws://backups.example.com:55414/socket, which goes through the web interface port instead
    • wss://…/socket, if you have a reverse proxy with TLS in front of the web interface

That’s why urbackup://…:55414 didn’t work: urbackup:// expects the internet port (55415), not the web port. With a Docker app you’d also need 55415 published and forwarded for that option. ws://…:55414/socket works as long as the web port is reachable, which is often the easier one to expose.

In case anyone worries about plain ws://: internet mode encrypts and authenticates the backup data itself (AES-GCM, with “Encrypted transfer” on by default), so it isn’t sent in the clear.

I agree an example of each form in the manual would help.