[feature] Add backup and restore functionality for all user data
Is your feature request related to a problem? Please describe. There is currently no native backup/export and restore/import functionality for all user data, only export and import for devices. This can lead to loss of important data that the user has spent a lot of time and effort configuring.
Describe the solution you'd like
Ideally there should be automatic backups with configurable destination, schedule, retention policy, etc. At the bare minimum an export and an import button for all data (templates, device groups, organizations, ..., not just devices). Backups from the latest release should work on edge and vice-versa.
Describe alternatives you've considered
At the moment the only alternative is to backup/restore the Docker volumes directly (all of them, since users don't know where the data they care about is). This can be cumbersome, unreliable, requires stopping OpenWISP and I suspect it breaks things when switching from latest to edge or vice-versa.
Additional context
There was a somewhat similar discussion in https://github.com/openwisp/ansible-openwisp2/issues/427, some info about what to backup is explained there, not sure if it applies here.
@nemesifier It may, but in the absence of a native solution I feel safer backing up all Docker volumes and all the OpenWISP folder. Although, as I said, I suspect this has caused issues when switching from edge to latest (or vice-versa). Some of my devices now always show UNKNOWN health status. Thankfully config updates still work for all devices. At some point I also wasn't able to select templates for device groups, but now I can.