Backups
Pro onlyCreate backups via CLI
Self-HostedBackups can be created via a CLI command or an API request. The backup archive contains a database export and all uploaded files.
Execute following command to create a backup:
docker compose run --rm app python3 manage.py backup > backup.zipBackups can be encrypted using a 256-bit AES key. Specify the key as hex string via the --key CLI argument.
docker compose run --rm app python3 manage.py backup --key "<aes-key-as-hex>" > backup.zip.cryptCreate a backup during update
When updating SysReptor, you can use the --backup switch, which will create a backup before applying the update.
Create backups via web interface
Cloud · Self-HostedUsers with superuser permissions and access to the BACKUP_KEY can create backups using the web interface.
If no BACKUP_KEY is configured, you cannot create backups via the web interface.
Create backups via API
Cloud · Self-HostedUsers with superuser permissions and system users can create backups via the API in combination with the configured BACKUP_KEY.
If no BACKUP_KEY is configured, the backup API endpoint is disabled.
The backup can optionally be encrypted via a 256-bit AES key provided in the HTTP request body or pushed to an S3 bucket (see API parameters).
API Requests
# Create backup
curl -X POST https://sysreptor.example.com/api/v1/utils/backup/ -d '{"key": "<backup-key>"}' -H 'Authorization: Bearer <api-token>' -H "Content-Type: application/json" -o backup.zip
# Create encrypted backup
curl -X POST https://sysreptor.example.com/api/v1/utils/backup/ -d '{"key": "<backup-key>", "aes_key": "<aes-key-as-base64>"}' -H 'Authorization: Bearer <api-token>' -H "Content-Type: application/json" -o backup.zip.cryptRestore backups
Self-HostedMake sure that you have an empty database and empty data directories (i.e. empty docker volumes). Otherwise, you will lose your old data. During the backup restore, all existing data in the database and file storages is deleted.
It is recommended to import the backup into the same SysReptor version like the one that was used to create the backup. If a different version is used the database schema might not be compatible.
cat backup.zip | docker compose run --rm --no-TTY app python3 manage.py restorebackupEncrypted backups can be restored as well. Specify the AES key as hex string via the --key CLI argument.
cat backup.zip.crypt | docker compose run --rm --no-TTY app python3 manage.py restorebackup --key "<aes-key-as-hex>"