RaspAP / raspap-webgui

Simple wireless AP setup & management for Debian-based devices
https://raspap.com/
GNU General Public License v3.0
4.42k stars 783 forks source link

Keep a rolling backup of only RaspAP and all the network config files, with a way to restore #1622

Open frankozland opened 1 month ago

frankozland commented 1 month ago

Is your feature request related to a problem?

I can install os, raspap onto device if a mem card goes bad - but it takes a while to get RaspAP reconfigured. Or - i screw something up in settings (a fateful change on wpa_supplicant, openvpn, etc)

Describe the solution you'd like

A rolling backup performed at (crontab) frequency of just raspap and all its dependent pieces as configured. The backup would be tiny. Bonus points if backup could be sent to cloud storage and retrieved, but also acceptable to be able to designate backup location. Notification mechanism when backup completes (touch a file in /tmp for example) so external script can trigger. Restore would check device to make sure same interfaces are available - if names changed prompt user for re-assignment. Restore would look at state of device and whats installed - if restore has openvpn and on restore openvpn isnt installed, restore script would install openvpn. Same goes for wireguard or client cli.
Enhancement augments "Reset" button. Really nice to have would be to silent install full raspap from a backup script - virgin device, web bash script with backup as parameter- would install RaspAP completely as configured in backup.

Describe alternatives you've considered

Timeshift, rsync - they can do it, but its more cumbersome i think.

Additional context

This may also enhance bug reporting as it would be possible for maintainers to easly recreate the environment user had by shipping tiny backup of all settings so a new install with exactly the same config for diagnosis - this could supplicant the generated log file.

frankozland commented 1 month ago

This might be close to what im looking for.... a local git repository - if user has a github account, create a private project and send the changes there - commit on x timeline.

hmmm....

https://rewind.com/blog/constant-backup-using-gitwatch/