Battle plan for migrating to .Net8

I think this is sort-of what we are aiming for. The UI is important for most users, because they would not be comfortable with the commandline approach. Unfortunately, the GUI libraries are also one of the places where operating systems are not very common at the library level.

At the core I think Duplicati is a “single machine” type application, so I would like to have the option of “download and run” without needing a separate server. On the other hand, the projects are already divided into server and GUI parts. I think the future could have some kind of aggregated control panel for multiple (headless) clients, but we are not there yet.

The implementation relies heavily on relational data and some constraints. It is not a problem to use another database, but there are many roundtrips to the database in a backup run, so having something out-of-process would likely slow it down. For most RDMS there is a setup and maintenance involved, which we can skip with SQLite.

I would personally rather rewrite the logic to avoid using relational database and have some simple key-value store with denormalized data. But that is off-topic.

Yes, I think that sounds like a very nice architecture, but at the moment, the core product is single-user-single-machine, but I did mention the non-UI Docker images. I think these could be the CLI and/or the server component. That would allow you to start the server on a machine, and connect to it via the WebUI on HTTP.

Not entirely what you suggest, but at least some of the way.