Encrypted, deduplicated Django database and media backups, powered by restic
Project description
django-recovery
Encrypted, deduplicated Django database and media backups, powered by restic.
django-recovery turns your Django DATABASES (and optionally your media directory)
into restic snapshots: always encrypted, deduplicated across backups, and restorable
through a management command.
Status: 🚧 beta / under active development. APIs and settings may change before 1.0.
Highlights
- Encryption is always on — every snapshot is encrypted client-side; there is no plaintext mode to forget to turn on.
- Deduplication — daily backups cost only the delta, not a full copy each time.
- Atomic failure semantics — a failed dump produces no snapshot, never a half-written one.
- Any storage — local disk, S3 (and compatibles), GCS, Azure, SFTP, or anything via rclone.
- Guarded restores — typed confirmation plus a tag guard that refuses to restore a snapshot into the wrong database.
Install
pip install django-recovery
Requires the restic binary (>= 0.16) on PATH, plus the
command-line client for each database engine you back up (pg_dump/psql,
mysqldump/mysql, or sqlite3).
Quickstart
# settings.py
import os
INSTALLED_APPS = [
# ...
"django_recovery",
]
RECOVERY = {
"BACKEND": "django_recovery.backends.LocalBackend",
"OPTIONS": {"path": "/var/backups/myapp-restic"},
"PASSWORD": os.environ["RESTIC_PASSWORD"],
"DATABASES": ["default"],
}
python manage.py recovery init
python manage.py recovery backup
python manage.py recovery snapshots
Documentation
Full documentation — settings reference, storage backends, management commands, scheduling, and FAQ — lives at m16bappi.github.io/django-recovery.
Related
- restic — the backup engine that does the real work.
- Source repository — issues and contributions welcome.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_recovery-0.3.0b1.tar.gz.
File metadata
- Download URL: django_recovery-0.3.0b1.tar.gz
- Upload date:
- Size: 32.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
183d87e4b4d4c486b7c64fee3f16c1ae0a41e9655ab52331e4feece207f7976c
|
|
| MD5 |
578aa20d04c9e0002ca78f869b37d7d2
|
|
| BLAKE2b-256 |
0f4dd64faa7fff9a223e09e268bf6958b17b76655f520c12671d155c63c3c151
|
Provenance
The following attestation bundles were made for django_recovery-0.3.0b1.tar.gz:
Publisher:
publish.yml on m16bappi/django-recovery
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
django_recovery-0.3.0b1.tar.gz -
Subject digest:
183d87e4b4d4c486b7c64fee3f16c1ae0a41e9655ab52331e4feece207f7976c - Sigstore transparency entry: 2188362041
- Sigstore integration time:
-
Permalink:
m16bappi/django-recovery@6eeb1270d7e7e3b4922c8d9a4bf40ebfe578abe0 -
Branch / Tag:
refs/tags/v0.3.0b1 - Owner: https://github.com/m16bappi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6eeb1270d7e7e3b4922c8d9a4bf40ebfe578abe0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file django_recovery-0.3.0b1-py3-none-any.whl.
File metadata
- Download URL: django_recovery-0.3.0b1-py3-none-any.whl
- Upload date:
- Size: 26.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
959729939fb3e0487b8490e09a1bff05f765e10cbb76f3bf1b9f8230ad11a6e5
|
|
| MD5 |
48359697464025055093aa3555e70c15
|
|
| BLAKE2b-256 |
a58830b738c57dfc61646eb5774d4aaaae76cd7d8c5e6ad41c52d4fb1d47c04b
|
Provenance
The following attestation bundles were made for django_recovery-0.3.0b1-py3-none-any.whl:
Publisher:
publish.yml on m16bappi/django-recovery
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
django_recovery-0.3.0b1-py3-none-any.whl -
Subject digest:
959729939fb3e0487b8490e09a1bff05f765e10cbb76f3bf1b9f8230ad11a6e5 - Sigstore transparency entry: 2188362052
- Sigstore integration time:
-
Permalink:
m16bappi/django-recovery@6eeb1270d7e7e3b4922c8d9a4bf40ebfe578abe0 -
Branch / Tag:
refs/tags/v0.3.0b1 - Owner: https://github.com/m16bappi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6eeb1270d7e7e3b4922c8d9a4bf40ebfe578abe0 -
Trigger Event:
push
-
Statement type: