2.1 KiB
What's planned / considered
Daemon mode
Instead of relying on scheduled tasks, we could launch backup & housekeeping operations as deamon. Caveats:
- We need a windows service (nuitka commercial implements one)
- We need to use apscheduler (wait for v4)
- We need a resurrect service config for systemd and windows service
Web interface (planned)
Since runner can discuss in JSON mode, we could simply wrap it all in FastAPI Caveats:
- We'll need a web interface, with templates, whistles and bells
- We'll probably need an executor (Celery ?) in order to not block threads
KVM Backup plugin (planned, already exists as external script)
Since we run cube backup, we could "bake in" full KVM support Caveats:
- We'll need to re-implement libvirt controller class for linux
SQL Backups
That's a pre-script job ;)
Perhaps, provide pre-scripts for major SQL engines
Perhaps, provide an alternative dump | npbackup-cli syntax.
In the latter case, shell (bash, zsh, ksh) would need shopt -o pipefail
, and minimum backup size set.
The pipefail will not be given to npbackup-cli, so we'd need to wrap everything into a script, which defeats the prometheus metrics.
Key management
Possibility to add new keys to current repo, and delete old keys if more than one key present
Provision server (planned)
Possibility to auto load repo settings for new instances from central server We actually could improve upgrade_server to do so
Hyper-V Backup plugin
That's another story. Creating snapshots and dumping VM is easy Shall we go that route since alot of good commercial products exist ? Probably not
Full disk cloning
Out of scope of NPBackup. There are plenty of good tools out there, designed for that job
Rust rewrite
That would be my "dream" project in order to learn a new language in an existing usecase. But this would need massive sponsoring as I couldn't get the non-paid time to do so.
More backends support
Rustic is a current alternative backend candidate I tested. Might happen if enough traction.
Branding manager
We might want to put all files into resources
directory and have customization.py
files generated from there.