Skip to content
/ mgob Public

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

maxisam/mgob

This branch is up to date with main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7027350 · Feb 7, 2025
Oct 1, 2023
Oct 28, 2024
Sep 14, 2023
Nov 22, 2024
Dec 24, 2022
Feb 3, 2025
Oct 1, 2023
Sep 12, 2022
Feb 7, 2025
Nov 9, 2024
Jan 13, 2018
Oct 28, 2024
Dec 28, 2017
Sep 9, 2023
Jun 12, 2023
Feb 7, 2025
May 1, 2017
Jun 12, 2023
Aug 28, 2024
Nov 9, 2024
Feb 7, 2025
Feb 7, 2025
Sep 14, 2022

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.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published