Service (8300) tray (8200) toggle


#1

Thus seems to be a common confusion point. Granted, most people that rub into it only do so once but it’s still a barrier.

Would it make sense to implement something like one if these?

  • tray icon defaults to service port connection and only runs it’s own sever if service NOT found? So the opposite of current functionality (with a parm to force extra server even if service is running)
  • UI detects server on “other” port and offers toggle link to switch between them

And yes, I know poster ports 8200 and 8300 don’t always mean tray and service servers. And anybody advanced enough to use custom ports should know how to handle them in them. :slight_smile:


#2

Yes, I think both are good suggestions.

I like the first the best, as it can be done without any user interaction, and “just works”.

It needs some extra tinkering to work correctly on multi-user systems, as the port numbers are shared between the accounts. Not sure what a good solution for this would be …


#3

So right now in a multi user environment using Tray Icons, is this what happens?

  1. User Jon logs in and gets user Jon based backup jobs and a Tray Icon port of 8200 and does NOT log off
  2. User Ken logs in and and gets Ken based backup jobs and a Tray Icon port of 8300

#4

Yes. And the port number is recorded, so on next launch they will use their ports.


#5

Stop me now if I’m asking too many questions but…

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)?


#6

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.

Am I off base here?


#7

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.


#8

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.


MacOS / OSX service installation
#9

Has there been any movement on this?

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?

Thank you…


#10

I don’t believe so.

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: