I assume if the machine is rebooted and Kees logs in first he’ll get port 8200 meaning if Ken logs in next he’ll keep his 8300 but if Jon then logs in he’ll get 8400? (Which could cause some confusion if users bookmark their individual servers…)
And I suppose that means each user with their own tray icon port has their own server as well - meaning concurrent backups could be running (vs. sharing a single port like with the service where all users share the same list of backup jobs and an asynchronous schedule)?
I would think that the setting would be saved in a central config file.
This is interesting–I usually assume that backup software is always installed as a service, so after an unintended reboot, backups just pick back up. This model is designed around multiple users working on one machine, and being logged in at the same time.
So the question I have is: how many folks are actually using this as designed, meaning they want each user to have their own backup configuration?
On Windows, I would assume this is not the case.
On Linux, certainly possible, but I would need to better understand who is using Duplicati.
I haven’t read through the forum history enough to get a better sense.
It occurs to me that perhaps the easiest option is to just make the “default” install be as a service, with the tray icon by default not run the service. Only if someone wants to have multiple Duplicati servers running on one machine would they change this.
Unfortunately the “easiest” design / user experience may not be the easiest implementation path.
Personally I agree - Duplicati is so relatively light on resources a default service install seems sensible. And the current “per user” configuration could be handled by relative paths and user security, but all run through the single service.
But that’s how it looks from outside the code and after months (instead of years) of use. My guess is we’re hitting an inflection point where the user base is expanding beyond CLI techie types so functionally being asked for is shifting as well.
I’m hoping to get a look at the usage statistics code to see if we can flesh it out a bit to get more detail like what you are asking for.
Duplicati tries different ports, starting with 8200. The first user to log in will get that port, the next will get port 8300, next on 8400. The port number is recorded in the settings database, such that the next launch will attempt to keep this number.
This can go wrong, say that Kees is 8200, Ken is 8300, but then the machine reboots and Jon logs in for the first time. He will then get 8200, and when Kees logs in, Duplicati will see that 8200 is taken and scan for a new one, finding 8300, etc.
If the users have bookmarks, then it all breaks.
Yes, all users in the normal setup have their own server and thus their own scheduler.
Honestly, I do not know how many are using shared-system machines and performing individual backups. But given that it is slightly cumbersome to set up, I would guess: not many.
Yes, that is also the plan. It requires me to modify the MSI packages, and they are time consuming to work with. But eventually there will be a radio button that says “install as service” / “install individually”. This will also make it much easier for users to enable VSS snapshots.
We install nearly 100% on servers and we install it as a service. We too have experienced issues where the tray will be started before the service or after and the resultant port will change from 8200 to 8300 etc… We also use the remote feature so that we can manage many servers from a single machine… So I guess I have a few questions…
Is there a way to lock it to a single port that never changes, e.g. 8200?
Is there a way to make the service run such that logging in to the server is not necessary?
However there are already parameters to force specific ports (--webservice-port=####) and have the tray icon NOT start it’s own server and instead try to connect to an existing service / daemon server (--no-hosted-server).
If you’re asking how to have the Duplicati service run even if nobody has logged into the machine (which in this case is a server) then you might want to read through this post to see if it covers what you need: