Backing up Duplicati configs for DR

What do I need in a disaster recovery scenario for my Linux server?
Is having a copy of ~/.config/Duplicati/Duplicati-server.sqlite all I’d need to bootstrap recovery?

It depends on what you mean by “recovery”. If all you want is to restore your files, then you just need what’s in the destination and either a copy of Duplicati, the BackendTool, or the third-party restore script available.

If you want to be creating backups again then TECHNICALLY, you still only need the above items - but things will be a lot easier if you also have:

  • Duplicati-server.sqlite for global settings & logs
  • xxxxxxxxxxxx.sqlite for job specific settings & logs (not the "Backup yyyymmddhhmmss.sqlite ones)

If you don’t want to haul around those sqlite files but also don’t want to have to recreate your jobs (destination, source, filters, etc.) from scratch then you’ll want to export your job(s) to a file and have those somewhere. Keep these safe! and be aware that they do NOT include global settings (there’s currently no method to export those that I am aware of).

if you want to automate that process job export process, check this out:

Backing up the configuration is a similar question, with several answers (some more ambitious than others).

To add to the answer by @JonMikelV you likely also need to make sure you have passwords, including the encryption passphrase you might have had Duplicati use. Also helpful is information on what’s where on the destination, because it’s hard to determine by inspecting backend files. Maybe folder/bucket names will help.

All of the above are (I think) available in any Export of the backup, provided you allow it to export everything. Probably it’s all in Duplicati-server.sqlite because there’s not much in the per-backup SQLite files for configs. Because I haven’t tested your proposal, I’ll give as general advice that Export is the better path to take, and manual looking is also easy (if you ever want to), provided you haven’t encrypted it and lost the passphrase.

Duplicati-server.sqlite configurations can be regenerated by Import of the Export you did before, but per-job sqlite files will have to be recreated if not backed up. Or if you care primarily about DR recovery to the latest version, do a direct restore (or one based on your Export), grab the latest version, and start a fresh backup.

Hmmm. It looks like all the backend credentials & paths as well as encryption passphrases are in Duplicati-server.sqlite.
It seems like I should be able to install Duplicati on a new system along with the database. From there I can recreate the databases for each backup before restoring. Am I right?

My hope is to be able to run a cron job that gpg encrypts the server.sqlite file to dropbox. I guess I’ll build a VM to test the procedure.

Possibly, but I have not tested on my configuration and cannot test yours, which is almost certainly different.

Because you’re looking in databases, please also look in a job database at the Configuration table, and you probably will find settings not in the server database, e.g. blockhash, and filehash (mine are set to defaults). While I’m not sure what to say about those, passphrase differences are from job database having only hash.

Procedure test is a good plan, but a somewhat unconventional path may expose you to greater change risk.

EDIT:
Entire configuration backup responds to a similar question, showing your plan was probably fine in 2017. :wink: Lead developer comments like that increase my confidence that it will remain fine, but please test it yourself