989
Multi‑database streaming backup manager with real-time monitoring for S3‑compatible storage
SnapVault is a lightweight, self‑hosted backup and monitoring tool that streams PostgreSQL, MySQL, and MongoDB dumps directly to S3-compatible storage — without writing temporary files to disk. Now includes a full real-time database monitoring system with 25 metrics per database.
Designed for Docker-first environments, SnapVault provides a secure web UI, per-database cron scheduling, flexible retention policies, AES‑256‑GCM credential encryption, and 24/7 background monitoring — all inside a single container.
Most backup tools create large temporary dump files before uploading them. SnapVault avoids this completely by streaming:
Database → gzip → S3 (multipart upload)
✅ No temporary files ✅ No disk space requirements ✅ Faster backups ✅ 24/7 database monitoring ✅ Production-ready ✅ Single container deployment
mongodb+srv://SnapVault includes a full monitoring system that runs 24/7 in the background — no page visits required.
25 metrics per database covering:
| Category | Metrics |
|---|---|
| Overview | Heartbeat, DB size, cache hit rate |
| Connections | Active, total, idle, connections by state |
| Performance | Deadlocks, long running queries, I/O stats |
| Transactions | Total, commits, rollbacks |
| Locks | Waiting queries, blocked query details |
| Storage | Table sizes, bloat, temp files, dead row % |
| Maintenance | Index usage, vacuum/analyze status |
| Queries | Slow query log with execution details |
Features:
/api/monitor/:id/data)version: "3.9"
services:
snapvault:
image: irtazaghaffar/snapvault:latest
container_name: snapvault
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- snapvault_data:/data
environment:
INIT_USERNAME: admin
INIT_PASSWORD: changeme123
JWT_SECRET: your-long-random-secret
ENCRYPTION_KEY: your-long-random-encryption-key
networks:
- snapvault_net
volumes:
snapvault_data:
networks:
snapvault_net:
driver: bridge
Start:
docker compose up -d
Then open:
http://localhost:3000
| Variable | Required | Description |
|---|---|---|
| INIT_USERNAME | ✅ | Initial admin username (used once) |
| INIT_PASSWORD | ✅ | Initial admin password |
| JWT_SECRET | ✅ | Secret for signing authentication tokens |
| ENCRYPTION_KEY | ⚠️ Recommended | Enables AES‑256‑GCM encryption of credentials |
| DATA_DIR | ✅ | Defaults to /data (Map in Docker Compose) |
| PORT Mapping | ✅ | Defaults to 3000 (Map in Docker Compose) |
| TZ | ✅ | Automatically Detect Container Time zone |
No temporary files are ever created.
Yes — recommended setup:
SnapVault stores configuration and logs in:
/data/snapvault.db
Always mount a volume:
volumes:
- snapvault_data:/data
Official image supports:
Works on:
MIT © Irtaza Ghaffar
🔗 Docker Hub: https://hub.docker.com/r/irtazaghaffar/snapvault
Content type
Image
Digest
sha256:5def28c80…
Size
166.2 MB
Last updated
4 months ago
docker pull irtazaghaffar/snapvault