2 instances of duplicati lauching in parallel?

Hello there,

I recently installed duplicati on manjaro 21.0 (Kernel 5.15.41-1). I changed the web-GUI port from 8200 to 8300 today. Now it seems that I have 2 instances of duplicati auto-starting during login.

I changed the file /usr/lib/systemd/system/duplicati.service, which looks now like this:

[Unit]
Description=Duplicati
After=network.target

[Service]
ExecStart=/usr/bin/mono /opt/duplicati-latest/Duplicati.Server.exe --webservice-port=8300
Restart=on-abort
Environment=AUTOUPDATER_Duplicati_SKIP_UPDATE=1
#User=root
#Group=root

#User=duplicati
#Group=duplicati

[Install]
WantedBy=default.target

After a reboot, I find web-GUI’s on port 8200 AND 8300. It seems I cannot log into the 8200-instance (password is not accepted). 8300 seems to be just fine.

I am afraid that 2 instances in parallel might cause some trouble some day…

systemctl status duplicati:

duplicati.service - Duplicati
     Loaded: loaded (/usr/lib/systemd/system/duplicati.service; enabled; vendor preset: disabled)
     Active: active (running) since Fri 2022-06-10 20:19:34 CEST; 3min 42s ago
   Main PID: 1240 (mono)
      Tasks: 39 (limit: 38441)
     Memory: 3.8G
        CPU: 8min 43.286s
     CGroup: /system.slice/duplicati.service
             └─ 1240 /usr/bin/mono /opt/duplicati-latest/Duplicati.Server.exe --webservice-port=8300

Jun 10 20:19:34 Workstation systemd[1]: Started Duplicati.

I’d be very greatful if you could help me to figure this out.

Not sure if this is your issue but in Windows after moving to a service based install you need to add --no-hosted-server to the “shortcuts” that launch Duplicati otherwise the TrayIcon will launch it’s own server, which will by default be at 8200.

Thank you, JimboJones. That seems to have done the trick.
However, I do not have a tray-icon. Though, I’d like to have one. Any idea how to accomplish this?

Off the top I’m not certain why that would have removed the trayicon, I don’t have a Linux box kicking around at the moment to play with.

In Windows the command that starts the service should not have the --no-hosted-server switch but all other shortcuts/launchers should have it. Once one of the shortcut/launchers runs (normally via startup group) the trayicon then shows up.

Personally I use an URL shortcut to http://localhost:8300/ngax/ or a bookmark in my browser to get me to the GUI.

Maybe someone else who is more familiar with Duplicati in Linux can chime in with some insight.

Only a vague one. You seem to know systemd, so maybe you can make more sense of the design:

Installing Duplicati on Linux (Arch / Manjaro) looks like their packagers set it up with a user unit file.
systemd/User from Arch Linux says where it might be, if you want to edit (or I think status finds it).

/etc/default/duplicati is another way to add --no-hosted-server option so TrayIcon only does that.
A question to me is whether Server will complain, but it might not matter. It probably ignores extras.
Duplicati.GUI.TrayIcon.exe is the place where the option fits. Note it has trouble with GUI password.

If you want more help, the “Installing” link above should help reach some people who know Manjaro.

Thanks for diving into this. Some feedback:
I ran:

/usr/bin/mono /opt/duplicati-latest/Duplicati.GUI.TrayIcon.exe --webservice-port=8300 --no-hosted-server

but as you predicted, this returns a password error. No tray-icon appears.

In the file

~/.config/systemd/user/default.target.wants/duplicati.service

is designed to start the TrayIcon, and I changed the port and added --no-hosted-server:

ExecStart=/usr/bin/mono /opt/duplicati-latest/Duplicati.GUI.TrayIcon.exe --webservice-port=8300 --no-hosted-server

But I don’t think it is running when I log in. At least: no tray-icon (yet).

I will try some more and (if not suceesful) adress this in the manjaro-forum. Thank you once more.

These conflict. First says to put the server at port 8300. Second says to not run server. Which wins?
One way to find out is to browse to port 8300. You want (I assume) only the started-at-boot Duplicati however the started-at-login TrayIcon connects to that other to provide a bit more control and status.

If you don’t need Duplicati running as root, or when you’re not logged in, then take that path instead.

It’s only predicted if you protect your GUI (e.g. using the Settings screen, or –webservice-password).
If this is nothing you made, it’s possible it’s leftover from defaults the AUR packagers have provided.
If password was picked by you, you could try giving TrayIcon --webserver-password=<password>

Have you used systemctl as specified? You can also use ps -ef | grep -i duplicati to watch.
You should have two processes as root (the start-at-boot), and two as you, which will eventually go
away if it can’t get logged in to the server due to the password problem. It will retry connects briefly.

Hello ts678,

  1. After a reboot, I have duplicati running on port 8300, not on 8200. So this works fine for me.
  2. I have set up password protection for the GUI. This - as wll - is something I am happy with.
base) [dejhost@Workstation ~]$ ps -ef | grep -i duplicati
root        1352       1  0 15:50 ?        00:00:00 /usr/bin/mono /opt/duplicati-latest/Duplicati.Server.exe --webservice-port=8300 --no-hosted-server
dejhost    19770   10523  0 15:53 pts/0    00:00:00 grep --colour=auto -i duplicati

I used stemctl to enable and start duplicati.

Still, no tray-icon. I’d like to have one so I can spot instantly when a backup fails.

That will not work, you need to remove the --no-hosted-server from the Duplicati.Server.exe. You should add the --no-hosted-server to any and all other shortcuts/launchers but not to the server itself.

It doesn’t work fine for TrayIcon, which by default expects a Server at the default port of 8200.
Either let Server run at default, or use TrayIcon option --hosturl=http://localhost:8300

Then you need to tell TrayIcon the password, or it won’t be able to login, so will soon time out.

Hints below on expanding that to useful data.

Are you using its status command to see what happens? Or use journalctl -f to watch?

You can also separate issues and ignore systemd for now, and try starting TrayIcon manually.

duplicati --no-hosted-server --webserver-password=<password> (hosturl if needed)

If that fails, it will write out errors. If it works, then see if you can get systemd to do same thing.

Here’s what you might see if you put your Server back to default so TrayIcon can just go there:

 ps -eF n | grep -i duplicati
       0 17712     1  6 46607 39724   0 19:10 ?        SNsl   0:08 DuplicatiServer /usr/lib/duplicati/Duplicati.Server.exe
       0 17729 17712  2 173593 62568  0 19:11 ?        SNl    0:02 /usr/bin/mono-sgen /usr/share/Duplicati/updates/2.0.6.3/Duplicati.Server.exe
    1000 17745  5117  1 43304 31988   0 19:12 pts/10   Sl+    0:00 Duplicati /usr/lib/duplicati/Duplicati.GUI.TrayIcon.exe --no-hosted-server --webserver-password=password
    1000 17749 17745  4 224937 66128  0 19:12 pts/10   Sl+    0:02 /usr/bin/mono-sgen /usr/lib/duplicati/Duplicati.GUI.TrayIcon.exe --no-hosted-server --webserver-password=password

Agreed. See the above where it’s on TrayIcon so it goes to Server (run as root) instead for its data.

base) [dejhost@Workstation ~]$ ps -eF n | grep -i duplicati
       0    1252       1  0 347002 93340 11 15:00 ?        Ssl    0:02 /usr/bin/mono /opt/duplicati-latest/Duplicati.Server.exe --webservice-port=8300
    1000   50905   18796  0  1671  2528   1 15:11 pts/0    S+     0:00 grep --colour=auto -i duplicati
(base) [dejhost@Workstation ~]$ 

I edited the /home/dejhost/.config/systemd/user/default.target.wants/duplicati.service, which looks like this now:

Description=Duplicati

[Service]
ExecStartPre=/usr/bin/sleep 5
ExecStart=/usr/bin/mono /opt/duplicati-latest/Duplicati.GUI.TrayIcon.exe --webservice-port=8300 --no-hosted-server --hosturl=http://localhost:8300 --webserver-password="mypassword"
Restart=on-abort
Environment=AUTOUPDATER_Duplicati_SKIP_UPDATE=1

[Install]
WantedBy=default.target

But the Tray-Icon still doesn’t start automatically. This command

/usr/bin/mono /opt/duplicati-latest/Duplicati.GUI.TrayIcon.exe --webservice-port=8300 --no-hosted-server --hosturl=http://localhost:8300 --webserver-password=mypassword

works fine when I run it manually and when I put it into a login-sript. But it feels strange to have the password unencrypted.

If I understand this correctly I have these options now:

  • Run Tray-Icon-command at login, using password
  • Switch to port 8200 and see if it works without password

Then the question would be why systemd isn’t doing as well. Did you test any setup directions?

You can practice on system systemd, i.e. systemctl status duplicati and journalctl -f.
If those look reasonable, then the setup directions suggest you can add --user to see that one.
The status command will also show where your unit file lives, so you can check if you edited it.

I doubt it. There’s nothing magic about 8200 that lets you in without a password if you’ve set one.

I’m not sure what the unit file looked like before you started edits. The one I know pulls options in.

# cat /lib/systemd/system/duplicati.service
[Unit]
Description=Duplicati web-server
After=network.target

[Service]
Nice=19
IOSchedulingClass=idle
EnvironmentFile=-/etc/default/duplicati
ExecStart=/usr/bin/duplicati-server $DAEMON_OPTS
Restart=always

[Install]
WantedBy=multi-user.target

/usr/bin/duplicati-server (look at the script) runs Server. /usr/bin/duplicati runs TrayIcon.
If you prefer, you can put the password there or obtain it from any more secured source that you like.
The GUI password is there to protect the GUI, not protect against local users with direct shell access.

I think you should solve systemd, but it’s your choice. Systemd experts out there, feel free to help.

Its been too long so I really don’t remember. You can also clean out Duplicati fully though and get it back to original. You just have to remove the package, then make sure the systemd config is ended and removed, and remove all left over Duplicati folders in user’s .cache, .local or whatever.

Duplicati also didn’t like to be opened from UI. I think this might be the issue here or at least related as it would act weird with duplicates with different ports that way (I’ve definitely noted that it has for me). If you want to get to the UI, try opening the browser then using a bookmark to it (initially just using the URL) eg http://localhost:8200/ngax/index.html

If the second is the cause then you can try to just reboot and see if that fixes the duplicate Duplicati’s. Adjust the port on the URL to match the one you want if not default and if set. Any previously duplicated Duplicati’s should not bring anything up when doing it that way so you need to have that port in the URL to be correct.

That’s all I’m saying on the Linux topic though. Life is a lot easier without Duplicati on Linux :slight_smile: