project-rainstorm / rainstorm

The easiest way to own your cloud. Your data. Your cloud. Rainstorm.
Other
10 stars 5 forks source link

[BACKUPS] Integrate backups into the API/UI #108

Open nullcount opened 3 years ago

nullcount commented 3 years ago

Overview

Users should be able to pick and choose what directories they want to back up. User's should be able to view backup status (last backup, next scheduled, progress of current backup, space used by backups). User's should also be able to "activate" backups (start using backups on a non-backed-up installation), schedule and start backups, and more?

Note on premium

Backups are a premium feature, however, the premium license key generation process is on hold until we can prove this project is worth commercializing.

In the mean time, backups should be enabled for a user if path_to.premium_key_file in config.yml exists. Later, we will do a check to validate this key. For now, just enable it if the file exists.

Note on services

Every service has a data folder at /mnt/usb/apps/{service_name} (read true path from config.yml). This data should certainly be included in the backup for a service. However, some services have paths defined in their variables. For example, plex has app data, but also library data.

A user may want to backup these additional directories in addition to their service data. Need some way to append arbitrary directories to a service's backup queue.

API

/backups/{service_name}/enable

/backups/{service_name}/disable

/backups/{service_name/snapshot}

/services

Add more routes as needed.

UI

The service view for each service should have a component that displays backup status for that service. A user should be able to enable/disable backups for a service on that service's page.

Additionally, there should be a new "backups" page available in the settings tab. Here should show the total backups space used and space consumed by each service. A user should set their desired backups frequency (daily, weekly, etc.)