Skip to main content

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_recovery-0.3.0b1.tar.gz (32.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_recovery-0.3.0b1-py3-none-any.whl (26.5 kB view details)

Uploaded Python 3

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

Hashes for django_recovery-0.3.0b1.tar.gz
Algorithm Hash digest
SHA256 183d87e4b4d4c486b7c64fee3f16c1ae0a41e9655ab52331e4feece207f7976c
MD5 578aa20d04c9e0002ca78f869b37d7d2
BLAKE2b-256 0f4dd64faa7fff9a223e09e268bf6958b17b76655f520c12671d155c63c3c151

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_recovery-0.3.0b1.tar.gz:

Publisher: publish.yml on m16bappi/django-recovery

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file django_recovery-0.3.0b1-py3-none-any.whl.

File metadata

File hashes

Hashes for django_recovery-0.3.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 959729939fb3e0487b8490e09a1bff05f765e10cbb76f3bf1b9f8230ad11a6e5
MD5 48359697464025055093aa3555e70c15
BLAKE2b-256 a58830b738c57dfc61646eb5774d4aaaae76cd7d8c5e6ad41c52d4fb1d47c04b

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_recovery-0.3.0b1-py3-none-any.whl:

Publisher: publish.yml on m16bappi/django-recovery

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page