Logo ### MongoDB MongoDB + Backups & Retention [![Version](https://img.shields.io/badge/dynamic/json.svg?label=Version&style=for-the-badge&url=https://git.zakscode.com/api/v1/repos/ztimson/mongodb/tags&query=$[0].name)](https://git.zakscode.com/ztimson/mongodb/tags) [![Pull Requests](https://img.shields.io/badge/dynamic/json.svg?label=Pull%20Requests&style=for-the-badge&url=https://git.zakscode.com/api/v1/repos/ztimson/mongodb&query=open_pr_counter)](https://git.zakscode.com/ztimson/mongodb/pulls) [![Issues](https://img.shields.io/badge/dynamic/json.svg?label=Issues&style=for-the-badge&url=https://git.zakscode.com/api/v1/repos/ztimson/mongodb&query=open_issues_count)](https://git.zakscode.com/ztimson/mongodb/issues) ---
DocumentationRelease NotesReport a BugRequest a Feature
---
## Table of Contents - [MongoDB](#top) - [About](#about) - [Environment Variables](#environment-variables) - [Built With](#built-with) - [Setup](#setup) - [Production](#production) ## About Custom MongoDB Docker image extending `mongo:latest` with automated backup functionality. Installs cron to run scheduled mongodump operations with compression and retention management, while preserving all native MongoDB server functionality. Backups can be manually triggered with: `docker --exec -t mongodb backup` To restore a backup, uncompress it and use the official `mongorestore` ### Environment Variables | Variable | Description | Default | Example | |-------------------------|----------------------------|---------------|---------------| | `MONGO_INITDB_DATABASE` | Database name to backup | - | `myapp` | | `BACKUP_CRON` | Cron schedule expression | - | `0 */6 * * *` | | `BACKUP_DIR` | Directory to store backups | /data/backups | `/backups` | | `BACKUP_RETENTION` | Number of backups to keep | - | `7` | ### Built With [![Docker](https://img.shields.io/badge/Docker-384d54?style=for-the-badge&logo=docker)](https://docker.com/) [![MongoDB](https://img.shields.io/badge/mongodb-000000?style=for-the-badge&logo=mongodb)](https://www.mongodb.com/) ## Setup

Production

#### Prerequisites - [Docker](https://docs.docker.com/install/) #### Instructions 1. Run the docker image: ```shell docker run -d \ --name mongodb \ --restart unless-stopped \ -p 27017:27017 \ -e MONGO_INITDB_DATABASE=myapp \ -e BACKUP_CRON="0 3 * * *" \ -e BACKUP_RETENTION=7 \ -v ./mongodb/data:/data/db \ -v ./mongodb/backups:/data/backups \ ztimson/mongodb:latest ```