Mongob is a automated MongoDB backup tool built with python,
inspired by stefanprodan/mgob.
- scheduled backups
- supports MongoDB 4.0 ~ 5.0
- supports amd64, arm64 architecture
- light image
Mongob is available on Docker Hub at janu8ry/mongob.
Supported tags:
janu8ry/mongob:latest
,janu8ry/mongob:amd64
latest build for amd64 architecturesjanu8ry/mongob:arm64
latest build for arm64 architectures
using docker compose is recommended.
docker-compose.yml
# docker-compose.yml
version: "3.9"
services:
mongo:
image: mongo:latest
restart: always
container_name: "mongo"
ports:
- "27017:27017"
volumes:
- /data/db:/data/db
environment:
- TZ=Asia/Seoul"
mongob:
image: janu8ry/mongob:latest
restart: always
container_name: "mongob"
volumes:
- ./config.yml:/mongob/config.yml
- ./backup:/backup
environment:
- TZ=Asia/Seoul
Define your backup plan in /mongob/config.yml
.
The config file should follow the form below.
Backup files are stored in /backup
.
Cron expression is available for hour
, minute
config.
If you're not using authentication, keep username
, password
to null
.
Or, you can add _file
behind parameter to keep your info safe.
The file should contain one line plain text file, like txt format.
Link file using volume in docker-compose.yml
.
Also you can use MONGOB_USERNAME
, MONGOB_PASSWORD
environ to set username and password.
examples
# docker-compose.yml
mongob:
image: janu8ry/mongob:latest
restart: always
container_name: "mongob"
volumes:
- ./config.yml:/mongob/config.yml
- ./backup:/backup
- ./user.txt:/mongob/user.txt
- ./pw.txt:/mongob/pw.txt
# config.yml
target:
host: "mongo"
port: 27017
database: "test"
username_file: "/mongob/user.txt"
password_file: "/mongob/pw.txt"
Mongob will do a test run at start if test
set to true
.
If you don't need test run, set test
to false
.
This is not a necessary parameter, and it defaults to true
if you not set this parameter.
example config.yml
target:
host: "mongo"
port: 27017
database: "mydb"
username: "admin" # or null
password: "password" # or null
scheduler:
hour: "0, 12" # backup at 0 am, 12pm everyday
minute: "0"
test: true
View Mongob logs with docker logs mongob -f
.
docker exec -it mongob /bin/sh
mongorestore --gzip --archive=/backup/xxxx.gz --host mongo:27017 --drop
- amd64 build You need amd64 machine to build amd64 image.
docker build -t mongob:latest --build-arg ARCH=amd64 .
docker image tag mongob:latest mongob:amd64
- arm64 build You need arm64 machine to build arm64 image.
docker build -t mongob:arm64 --build-arg ARCH=arm64 .