Metadata-Version: 2.1
Name: django-gdrive-backup
Version: 0.0.7
Summary: Backs up django postgres databases, local folders and S3 folders to a Google Drive folder through a google service account.
Home-page: https://github.com/jonesim/django-gdrive-backup
Author: Ian Jones
License: UNKNOWN
Description: 
        **django-gdrive-backup** 
        
        Backs up django postgres databases, local folders and S3 folders to a Google Drive folder through a google service account.
        
        **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')
                }
            }
                    
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
