https://github.com/py-package/masonite-backup
Backup Solution for Masonite
https://github.com/py-package/masonite-backup
Last synced: 2 months ago
JSON representation
Backup Solution for Masonite
- Host: GitHub
- URL: https://github.com/py-package/masonite-backup
- Owner: py-package
- License: mit
- Created: 2022-07-09T03:15:01.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2024-02-05T09:34:49.000Z (over 1 year ago)
- Last Synced: 2025-04-23T14:14:31.515Z (2 months ago)
- Language: Python
- Size: 128 KB
- Stars: 12
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
# Masonite Backup
Backup solution for Masonite.
### Features
- [x] Backup Database
- [x] Backup Files
- [x] Store Backup Locally in the filesystem
- [x] Email Backup
- [x] Store Backup in other Masonite Supported Storage Drivers [s3]### Installation
```bash
pip install masonite-backup
```### Configuration
Add BackupProvider to your project in `config/providers.py`:
```python
# config/providers.py
# ...
from backup import BackupProvider# ...
PROVIDERS = [
# ...
# Third Party Providers
BackupProvider,
# ...
]
```Then you can publish the package resources (if needed) by doing:
```bash
python craft package:publish backup
```### Usage
Once you publish the package resources, you can use the `backup` command to backup your database and files. Before that if you want to configure options of backup then you can do that by updating `config/backup.py` configuration file.
```python
# config/backup.pyFILENAME = "backup"
DIRECTORY = "backup"
SOURCE = {
"root": base_path(),
"excludes": [
".git",
"storage",
"venv",
"node_modules",
"__pycache__",
# add more...
],
}S3_BACKUP = False # Whether or not to backup to S3.
EMAIL_BACKUP = False # Whether or not to email the backup.
EMAIL_BACKUP_TO = "" # The email address to send the backup to.
EMAIL_SUBJECT = "System Backup" # The email subject.
```
> Note: Make sure you have `EMAIL_BACKUP` set to `True` and `EMAIL_BACKUP_TO` set to a valid email address, to send the backup via email. Also don't forget to setup SMTP in `config/mail.py` configuration file or in `.env` file. In case you want to backup to S3, then make sure you have `S3_BACKUP` set to `True` and S3 storage configuration.```sh
MAIL_DRIVER=smtp
MAIL_FROM=
MAIL_HOST=
MAIL_PORT=
MAIL_USERNAME=
MAIL_PASSWORD=AWS_CLIENT=
AWS_SECRET=
AWS_BUCKET=
AWS_REGION=
```**Backup Database and Files**
```bash
python craft backup:run
```**Backup Database Only**
```bash
python craft backup:run --only-db
```**Backup Files Only**
```bash
python craft backup:run --only-files
```## License
Backup is open-sourced software licensed under the [MIT license](LICENSE).