I am trying to understand Duplicati and backups. I am running macOS. I am running Duplicati as a service using a launchd
setup:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.duplicati.server</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/Duplicati.app/Contents/MacOS/duplicati-server</string>
<string>--webservice-port=8200</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>LaunchOnlyOnce</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
I took the following steps:
- Logged in to duplicati.
- Checked the version in ‘About’. I am running 2.0.5.1
- I got a message about an update
- I installed the update
- I activated the update
At this point, the UI failed to reconnect. I looked at the processes running:
hermione:~ gerben$ ps laxww|grep upli
0 340 1 0 20 0 4328784 3036 - Ss ?? 16:52.28 /Applications/Duplicati.app/Contents/MacOS/duplicati-server --webservice-port=8200
0 725 340 0 20 0 4404412 24780 - S ?? 0:02.18 /opt/local/bin/mono /Applications/Duplicati.app/Contents/Resources/Duplicati.Server.exe --webservice-port=8200
0 10581 725 0 20 0 4463600 49688 - S ?? 0:00.82 /opt/local/bin/mono-sgen /Library/Application Support/Duplicati/updates/2.0.6.3/Duplicati.Server.exe --webservice-port=8200
What this tells me is:
- The
/Application/Duplicati.com/Contents/MacOS/duplicati-server
is still called, this is a 2.5.0.1 binary. This one forks mono to run/Applications/Duplicati.app/Contents/Resources/Duplicati.Server.exe
which is a 2.5.0.1 mono binary. This one apparently goes into/Library/Application Support/updates
to fork the true binary. -
/Applications/Duplicati.com
will show itself as 2.0.5.1 even if it effectively runs 2.0.6.3 - The Web UI will say
Same as the base install version: 2.0.5.1_beta_2020-01-18
I noticed /Library/Application Support/Duplicati/updates/2.0.4.23
exists. I haven’t been running that, apparently I installed 2.0.5.1 by downloading Duplicati again.
So, do I understand correctly that there is a ‘base install’ that can download and activate follow-ups in the channel based on that base version. If I install a newer ‘base install’ then older versions in the update channel are kept but never used? Can I remove that older version?
And more importantly: is there a difference between migrating the setup (settings, backups, info in a database) from an old to a new version between:
- Killing a running instance; installing the new version in /Applications; launching a new instance
- Using install & activate in the Web UI?
i.e. does ‘activate’ do some magic on settings before launching the new version?
I unloaded the launchd plist. I had to kill the mono session and its child by hand. I loaded the launchd plist again. Now Duplicati works again. Before I tell me remote users (family members) how to update, I’d like to understand better what is going on exactly and what the best way to update is.