Relationship between Web-UI and CLI?

Hi, I’m wondering what’s the relationship between the Web-UI and CLI. Is the GUI a kind of ‘wrapper’, and has a sub-set of functionality of the CLI? Or does the web-ui have a different feature set? (I’ve also read that the web-ui is rather limited and janky).

Ideally, in the long run I’d like to learn to use the CLI. Though can the web-UI initially be used as ‘learning tool’ - that is, say when setting up a repository via the web-ui, these configs can then be looked/edited via the CLI?

(I run a headless debian server, so have some experience of CLI, though still consider my self as a noob).

During each backup web ui creates a ktemporary CLI repository based on the information provided by the user in the UI, and runs Duplicacy CLI to do all the work.

You can’t edit those CLI repositories, because they are overwritten every time.

I would recommend starting with CLI. It’s self-documenting and rather simple. I don’t think web ui is a good learning tool

I have an idea about the basic commands of the cli, but where I get stuck is automating things (backups of different repos, pruning, scheduling). There seems to be fair bit of fiddling about via scripts, unless I’m missing something?

I’m aware there are some scripts, but I don’t really understand them. And at the moment, don’t have time to learn/figure them out. For example, the duplicacy-utils by @TheBestPessimist looks good, though can’t find any info on how to install/run. Also, if the scripts stopped working for some reason, I’d be dependent on others to fix.

What if I did use the web-ui initially, and set up repos and storage, scheduling and pruning - is it reliable for these basic tasks?

And when I have more time to learn the cli/automating, I’m assuming I wouldn’t need to start from scratch and could still access the repos and storage via the cli/wouldn’t need to re-upload data?

There is absolutely no need to fiddle with anything to setup schedules, prune, and everything else.

Exactly. To use those scripts you have to understand how duplicacy works, what you want it to do, and then understand how scripts work, and whether they do wha you want. Too much extra work.

Judging by the link I assume you are using windows.

Your question boils down to two:

On the first point, it’s really, really simple. The beauty of CLI interface is that if you don’t know how to do something – the help is self discoverable.

For example, you don’t know what even to begin with? Run duplicacy.exe. It will print help, and list of commands. read them. You’ll realize “init” is the one you want first. But you still don’t know how to use it. Well, run duplicacy.exe init – you will get help on this specific command. Etc.

To summarize – you need to run init once, to initialize storage and repository. then you can run duplicacy backup, duplicacy prune…, duplicacy check, duplicacy restore, etc. as needed. Likely you want to use Tash Scheduler to schedule daily calls to duplicacy backup.

The important bit to understand is how duplicacy works. What it calls “repository” is a source directory you want to backup. you normally cd to that directory, and call duplicacy init. Then to backup – you cd to that directly again and call duplicacy backup. That’s pretty much it for the basic use. All data duplicacy needs to backup is stored in the .duplicacy folder right in the repository

Slightly more advanced – you don’t have to cd there all the time, and don’t have to store .duplicacy folder along with your data. How to initialize storage this way – see help for init command.

Lastly, a useful trick of you have to backup a few different folders that are not in the same folder hierarchy – you can create an empty folder, put symlinks to other folders you want to backup, and backup that folder. Duplicacy follows first level symlinks, so it will just work.

Yes, it will work just fine.

You can leverage duplicacy_web and steal the .duplicacy/preference files it creates and build on top of them, to avoid going through repository initialization, but you don’t have to, you can just initialize the same storage again (this time it will be recognized as already initialized and added instead) and backup will continue.

Ultimately, described what have you tried, and where did you get stuck – and we’ll try to guide you. Keep in mind, if it seems too complicated, probably you are not taking the most optimal path, there must be an easier way :slight_smile:

Thanks for your reply.

I think I’ll give the cli a go :slightly_smiling_face:
It’ll be installed a linux server - but will start a new thread with questions.