A simple, self-hosted web UI to backup and restore Docker container volumes. No scripts, no CLI — just point, click, and protect your data.
Real Screenshot.
This project was built entirely through AI-assisted "vibe coding". It is functional and covered by automated tests, but it is provided as is, without warranty of any kind.
- Use it at your own risk. The authors and contributors are not responsible for any data loss, corruption, or damage resulting from the use of this software.
- It mounts your Docker socket, which grants broad control over your host. Only run it on machines you control and trust.
- Never rely on this tool as your only backup strategy. Always verify your backups independently and test your restores before you need them.
By using this software you accept these conditions. See LICENSE for the full terms.
- Automatic discovery — detects all Docker containers and their volumes
- One-click backup — create compressed
.tar.gzbackups of any volume - Scheduled backups — cron-based automatic backups with retention policies
- Instant restore — restore any backup to its original volume
- Storage providers — configure local directories as backup destinations
- Backup history — full audit trail with status, size, and duration
- Clean UI — responsive dashboard built with Next.js and Tailwind CSS
# Clone the repository
git clone https://github.com/Revolutionnnn/docker-ultimate.git
cd docker-ultimate
# Start the application
docker compose up -dThe frontend will be available at http://localhost:3000 and the API at http://localhost:8080.
By default, a random API token is generated on first run. Check your backend logs:
docker compose logs backend | grep VAULT_TOKENSet the token as a VAULT_TOKEN environment variable in .env to use a fixed token.
The frontend currently accepts the token in browser — paste it into localStorage:
localStorage.setItem("vault_token", "your-token-here");| Layer | Technology |
|---|---|
| Frontend | Next.js 16 + TypeScript + TailwindCSS |
| Backend | Go + Echo + GORM + SQLite |
| Backup Engine | Docker containers (Alpine + tar) |
| Storage | Local filesystem (S3/Cloudflare R2 planned) |
This application mounts the Docker socket (/var/run/docker.sock) and needs it to discover containers and run backups. The API is protected by a bearer token (see Authentication above).
- The backend binds to
127.0.0.1by default — only the frontend can reach it within the Docker network. - Do not expose the backend port directly to the internet.
- Always set a strong
VAULT_TOKENin production.
# Backend
cd backend && go run .
# Frontend
cd frontend && npm install && npm run dev
# Or with Docker Compose (dev mode with hot reload)
docker compose -f docker-compose.dev.yml up- Container & volume discovery
- Manual backup (one click)
- Backup history
- Manual restore
- Scheduled backups (cron)
- Retention policies
- S3 / MinIO / Cloudflare R2 upload
- Encryption (Restic)
- Multi-host support
- Authentication UI (login page)
- Slack / Webhook alerts
GNU General Public License v3.0 (GPL-3.0) — see LICENSE.
This is free software: you can redistribute it and/or modify it under the terms of the GNU GPL as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. It is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.
