diff --git a/docs/assets/images/start/auto-backup.png b/docs/assets/images/start/auto-backup.png new file mode 100644 index 0000000..2352538 Binary files /dev/null and b/docs/assets/images/start/auto-backup.png differ diff --git a/docs/start/backup.md b/docs/start/backup.md new file mode 100644 index 0000000..71c2d58 --- /dev/null +++ b/docs/start/backup.md @@ -0,0 +1,58 @@ +--- +title: Data Backup +--- + +## Data Backup + +Backup functionality is provided natively using the [django-dbbackup library](https://django-dbbackup.readthedocs.io/en/master/). This library provides multiple options for creating backups of your InvenTree database and media files. In addition to local storage backup, multiple external storage solutions are supported (such as Amazon S3 or Dropbox). + +Note that a *backup* operation is not the same as [migrating data](./migrate.md). While data *migration* exports data into a database-agnostic JSON file, *backup* exports a native database file and media file archive. + +## Configuration + +The following configuration options are available for backup: + +| Environment Variable | Configuration File | Description | Default | +| --- | --- | --- | --- | +| INVENTREE_BACKUP_STORAGE | backup_storage | Backup storage backend | django.core.files.storage.FileSystemStorage | +| INVENTREE_BACKUP_DIR | backup_dir | Backup storage directory | *No default* | +| INVENTREE_BACKUP_OPTIONS | backup_options | Specific backup options (dict) | *No default* | + +### Storage Providers + +If you want to use an external storage provider, extra configuration is required. As a starting point, refer to the [django-dbbackup documentation](https://django-dbbackup.readthedocs.io/en/master/storage.html). + +Specific storage configuration options are specified using the `backup_options` dict (in the [configuration file](./config.md)). + +## Perform Backup + +#### Manual Backup + +To perform a manual backup operation, run the following command from the shell: + +``` +invoke backup +``` + +### Backup During Update + +When performing an update of your InvenTree installation - via either [docker](./docker.md) or [bare metal](./install.md) - a backup operation is automatically performed. + +### Daily Backup + +If desired, InvenTree can be configured to perform automated daily backups. The run-time setting to control this is found in the *Server Configuration* tab. + +{% with id="auto-backup", url="start/auto-backup.png", description="Automatic daily backup" %} +{% include 'img.html' %} +{% endwith %} + +!!! tip "Optional Feature" + Automated backup is disabled by default, and must be enabled by an admin user + +## Restore from Backup + +To restore from a previous backup, run the following command from the shell (within virtual environment if configured): + +``` +invoke restore +``` \ No newline at end of file diff --git a/docs/start/docker_prod.md b/docs/start/docker_prod.md index 747b5dc..cc3c28d 100644 --- a/docs/start/docker_prod.md +++ b/docs/start/docker_prod.md @@ -225,6 +225,8 @@ docker-compose up -d Database and media files are stored external to the container, in the volume location specified in the `docker-compose.yml` file. It is strongly recommended that a backup of the files in this volume is performed on a regular basis. +Read more about [data backup](./backup.md). + ### Exporting Database as JSON To export the database to an agnostic JSON file, perform the following command: diff --git a/docs/start/install.md b/docs/start/install.md index 8a5e51c..6eee60a 100644 --- a/docs/start/install.md +++ b/docs/start/install.md @@ -261,7 +261,7 @@ Refer to the [production server instructions](./production.md) for further infor Administrators wishing to update InvenTree to the latest version should follow the instructions below. The commands listed below should be run from the InvenTree root directory. !!! info "Update Database" - It is advisable to backup the InvenTree database before performing these steps. The particular backup procedure may depend on your installation details. + It is advisable to [backup the InvenTree database](./backup.md) before performing these steps. The particular backup procedure may depend on your installation details. ### Stop InvenTree Server diff --git a/mkdocs.yml b/mkdocs.yml index 6e00eb2..ccc5f08 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -72,6 +72,7 @@ nav: - Installer: start/installer.md - Development: start/development.md - Production: start/production.md + - Data Backup: start/backup.md - Migrating Data: start/migrate.md - Parts: - Parts: part/part.md