services: backup-manager: image: nomad4tech/backup-manager:latest ports: - "8080:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock - ./data:/app/data - ./backups:/app/backups environment: - SPRING_PROFILES_ACTIVE=docker
services: backup-manager: image: nomad4tech/backup-manager:latest ports: - "8080:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock - ./data:/app/data - ./backups:/app/backups environment: - SPRING_PROFILES_ACTIVE=docker
services: backup-manager: image: nomad4tech/backup-manager:latest ports: - "8080:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock - ./data:/app/data - ./backups:/app/backups environment: - SPRING_PROFILES_ACTIVE=docker
docker compose up -d
docker compose up -d
docker compose up -d - someone deleted the crontab. ("crontab -r" instead of "crontab -e" its terrifyingly easy to mistype, and you won't even notice)
- someone deleted the backup script itself during a cleanup
- dump silently failed because there wasn't enough disk space, or the database container was restarted mid-dump - bash script - I write it, I maintain it, I remember to add rotation, error handling, disk space checks. I already did that. Then I built this.
- restic - powerful, but no Docker-native workflow, no UI, setup per-project.
- pgBackRest - its own config system, its own repository concept. Overkill for "give me a daily dump and email me if it fails." - Gzip compression enabled by default, per task
- Test S3, email, and heartbeat integrations directly from the UI before saving
- Inline task editing - no need to recreate tasks to change a schedule
- Full backup history with details
- REST API with Swagger documentation
- Container re-creation via docker-compose down/up doesn't break tasks - containers are resolved by name, not ID - Linux only - Windows and macOS are on the roadmap
- Early stage - tested on databases up to ~500 GB, but edge cases are still being found
- AI Involvement - I used AI coding assistants to speed up development. However, all architectural decisions, core logic, and testing strategies are entirely mine 💡 A Note on the UI I’m a Java dev, not a frontend engineer. I’ll be honest: the web interface was 100% generated by AI assistants. My role was defining the UX flow, API contracts, and wiring it all together. It’s a testament to how far developer tools have come
- 💡 A Note on the UI I’m a Java dev, not a frontend engineer. I’ll be honest: the web interface was 100% generated by AI assistants. My role was defining the UX flow, API contracts, and wiring it all together. It’s a testament to how far developer tools have come
- Single maintainer - that's me! Response times may vary depending on my availability, but feedback is always welcome - 💡 A Note on the UI I’m a Java dev, not a frontend engineer. I’ll be honest: the web interface was 100% generated by AI assistants. My role was defining the UX flow, API contracts, and wiring it all together. It’s a testament to how far developer tools have come