MGOB is a MongoDB backup automation tool designed using Go. This fork introduces a variety of enhancements over the original repository by stefanprodan, which is set to be archived. Check out the archival discussion here.
Note: New features are being added to this fork exclusively.
- Backup validation
- Retry mechanism for backups
- MS Team notification support
- Updated email notification mechanism addressing the certificate issue
- Go updated to 1.21
- Dependencies updated
- Introduced
warnOnly
option for all notification channels - Integrated Github Actions for CI/CD
- New Helm Chart with enhanced metrics, liveness probe, and other features
- Multiple Docker image releases catering to different backup solutions
- Option to skip local backup when retention is set to 0 (#42, Credit: @aneagoe)
- On-demand restore API
- Load config from environment variables to override config file. syntax:
PLAN_ID__KEY_PROPERTY
(e.g.mongo_test__SMTP_SERVER=smtp.company.com
)
helm pull oci://registry-1.docker.io/maxisam/mgob --version 2.1.0
helm upgrade <my-release> oci://registry-1.docker.io/maxisam/mgob --version <new-version>
- v2: in config, sftp.private_key -> sftp.privateKey
- schedule backups
- local backups retention
- upload to S3 Object Storage (Minio, AWS, Google Cloud, Azure)
- upload to gcloud storage
- upload to SFTP
- upload to any Rclone supported storage
- notifications (Email, Slack)
- instrumentation with Prometheus
- http file server for local backups and logs
- distributed as an Alpine Docker image
MGOB is available on Docker Hub at maxisam/mgob.
Supported tags:
maxisam/mgob:latest
latest stable release
Compatibility matrix:
MGOB | MongoDB |
---|---|
stefanprodan/mgob:0.9 |
3.4 |
stefanprodan/mgob:0.10 |
3.6 |
stefanprodan/mgob:1.0 |
4.0 |
stefanprodan/mgob:1.1 |
4.2 |
maxisam/mgob:1.10 |
5.0 |
maxisam/mgob:1.12 |
7.0 |
Docker:
docker run -dp 8090:8090 --name mgob \
-v "/mgob/config:/config" \
-v "/mgob/storage:/storage" \
-v "/mgob/tmp:/tmp" \
-v "/mgob/data:/data" \
stefanprodan/mgob \
-LogLevel=info
Define a backup plan (yaml format) for each database you want to backup inside the config
dir.
The yaml file name is being used as the backup plan ID, no white spaces or special characters are allowed.
MGOB exposes a set of HTTP endpoints for on-demand operations like backup, restore, status, metrics, and version.
READ MORE: On-Demand Operations
READ MORE: Logs
READ MORE: Metrics
READ MORE: Restore
- stefanprodan for the original repository
- First awesome sponsor!!