Skip to main content

⚠️ Deprecated — project renamed to django-cloud-backup

This is the final release of django-gdrive-backup and it will receive no further updates or support. Development continues as django-cloud-backup (module cloud_backup), which adds S3-compatible (AWS, Backblaze B2, Cloudflare R2) and Azure Blob Storage destinations alongside Google Drive, multiple named backup destinations, client-side encryption and ransomware protection. See its README for migration notes (renamed settings, URL namespace, Celery task names).


PyPI version

django-gdrive-backup

Backs up django postgres databases, local folders and S3 folders to a Google Drive folder through a google service account.

encrypted-credentials

This package uses encrypted-credentials and the instructions there could be useful. Adding the following lines to settings.py will initialise the package

from encrypted_credentials.django_credentials import add_encrypted_settings

add_encrypted_settings(globals())

Create service account

Requires a Google service account with the Google Drive API enabled

https://console.cloud.google.com/apis/credentials/serviceaccountkey

Add to gdrive_backup installed apps

settings.py

INSTALLED_APPS = [ ..
        'gdrive_backup',
    ]

Store service account key

By default encrypted-credentials is used to store the key. Create a directory off the django projects BASE_DIR called credentials and save the json key.

settings.py

CREDENTIAL_FOLDER = os.path.join(BASE_DIR, 'credentials')
CREDENTIAL_FILES = {
    'drive': 'service-account.json',
}

Create Google Drive folder and share with service account

With a Google Drive account create a folder and share with the email address of the service account.

Ensure psql is available to python subprocess

For docker containers you may need to something similar to the following line in the Dockerfile dependent on the version of Postgres.

RUN apt-get -y install postgresql-client-11

Configure database backup

settings.py

BACKUP_GDRIVE_DIR = 'django_backup'

Management commands

python manage.py backup_website
python manage.py restore_db

Management page

urls.py

urlpatterns = [
                path('backup/', include('gdrive_backup.urls')),
                ....

An enhanced version of the management page will be shown if the following django apps are installed

'django_modals', 'django_datatables', 'django_menus', 'ajax_helpers'

from the following PyPi packages

django-nested-modals, django-filtered-datatables, django-tab-menus, django-ajax-helpers

Configure S3 folder backups

settings.py

        AWS_ACCESS_KEY_ID = id
        AWS_SECRET_ACCESS_KEY = key
        AWS_PRIVATE_STORAGE_BUCKET_NAME = bucket
        
        S3_BACKUP_DIRS = [('S3-source-folder1', 'google-drive-folder1'),
                          ('S3-source-folder2', 'google-drive-folder2')
        ]

Configure cleaning of old datatabase backups

settings.py

BACKUP_DB_RETENTION = [{'hours': 1, 'number': 4}, 
                       {'hours': 2, 'number': 10},
                       {'days': 1, 'number': 10},
                       {'months': 1, 'number': 36},
                       ]

Schedule backup with celery beat

CELERY_BEAT_SCHEDULE = {
    'backup': {
        'task': 'gdrive_backup.tasks.backup',
        'schedule': crontab(hour='8-19', minute=10, day_of_week='mon-fri')
    }
}

Download files

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

Source Distribution

django_gdrive_backup-0.0.12.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

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

django_gdrive_backup-0.0.12-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

File details

Details for the file django_gdrive_backup-0.0.12.tar.gz.

File metadata

  • Download URL: django_gdrive_backup-0.0.12.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for django_gdrive_backup-0.0.12.tar.gz
Algorithm Hash digest
SHA256 960cc4f7a0d4537d9243341339fd2910203c41f450599a5f068f2ebeec55d188
MD5 4c53eadf31d17b7c24f8e192034d36e4
BLAKE2b-256 440a164da5e9d8b39c55d0b583fd286e2457dfbdbdce3ae8317c09e6e4e5b517

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_gdrive_backup-0.0.12.tar.gz:

Publisher: publish.yml on jonesim/django-gdrive-backup

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_gdrive_backup-0.0.12-py3-none-any.whl.

File metadata

File hashes

Hashes for django_gdrive_backup-0.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 a8e2947b0ebfa1c39a48ceb03e699e00109b38f02bb54281b2ba543521a1c4c9
MD5 a235ea12a6cfd9583e9e84ceea124a9f
BLAKE2b-256 cdcfd1726722e41dd4f743616e22717eaf1743ea579adb3de417a0e9c5f41af1

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_gdrive_backup-0.0.12-py3-none-any.whl:

Publisher: publish.yml on jonesim/django-gdrive-backup

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