Skip to content
/ mgob Public
forked from maxisam/mgob

MongoDB dockerized backup agent. Runs schedule backups with retention, S3 & SFTP upload, notifications, instrumentation with Prometheus and more.

License

Notifications You must be signed in to change notification settings

sjiep/mgob

 
 

Repository files navigation

mgob

Release Build Status Docker Pulls GitHub release GitHub Sponsors GitHub

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.

Enhancements in This Fork

  • 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 Chart

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>

Breaking Changes

  • v2: in config, sftp.private_key -> sftp.privateKey

Original Features

  • 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

Installation

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

Configuration

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.

READ MORE

On-Demand Operations

MGOB exposes a set of HTTP endpoints for on-demand operations like backup, restore, status, metrics, and version.

READ MORE: On-Demand Operations

Logs

READ MORE: Logs

Metrics

READ MORE: Metrics

Restore

READ MORE: Restore

Special Thanks

  • stefanprodan for the original repository
  • First awesome sponsor!!

Sponsors GitHub Sponsors

About

MongoDB dockerized backup agent. Runs schedule backups with retention, S3 & SFTP upload, notifications, instrumentation with Prometheus and more.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 87.7%
  • Makefile 5.6%
  • Dockerfile 2.7%
  • Shell 2.4%
  • Other 1.6%