DumpStation is a comprehensive, self-hosted PostgreSQL backup management system that I built to solve a problem every developer eventually faces: reliable, automated database backups without the complexity. It combines the power of Go's performance with React's modern UI to deliver a production-ready solution that deploys in under 5 minutes.
"Set it and forget it — your databases are protected 24/7 with instant Discord alerts."

🎯 The Problem I Solved
Every developer knows the sinking feeling: a database corruption, an accidental DROP TABLE, or a failed migration — and no recent backup. I've been there. The existing solutions were either:
- Enterprise tools with steep learning curves and expensive licenses
- Manual scripts that break silently and require constant babysitting
- Cloud-only services with vendor lock-in and recurring costs
- Bare-bones utilities without notifications or monitoring
I wanted something different: a beautiful, self-hosted backup system that's actually enjoyable to use, completely free, and doesn't require a DevOps degree to set up.
✨ What Makes DumpStation Special?
🖥️ Modern Dashboard Experience
Unlike traditional CLI-only backup tools, DumpStation features a stunning React 19 dashboard built with shadcn/ui and Tailwind CSS. Every interaction is smooth, responsive, and works perfectly on mobile devices.

Dashboard Highlights:
- Real-time statistics with live updates
- One-click backup triggers
- Visual backup history with status indicators
- Dark/Light mode toggle
- Mobile-responsive design
🗃️ Unlimited Database Management
Manage all your PostgreSQL databases from a single interface — whether you have 2 or 200. DumpStation automatically detects database versions (PostgreSQL 12-17) and uses the correct pg_dump and pg_restore tools for each.
Key Capabilities:
- Add unlimited PostgreSQL databases
- Connection testing before scheduling
- Pause/Resume backups without losing config
- Multi-tenant isolation for team environments
- Human-readable backup names like
swift-falcon-20251208
⏰ Smart Scheduling & Rotation
Set up cron-based backup schedules with an intuitive interface. No more cryptic cron syntax — or use it if you prefer! DumpStation handles cleanup automatically based on your retention policies.

Scheduling Features:
- Visual cron expression builder
- Manual on-demand backups
- Keep last N backups OR retain for M days
- Automatic cleanup of expired backups
- Pause scheduling during maintenance
☁️ Cloud Storage Integration
Store your backups securely in the cloud with native support for AWS S3, Cloudflare R2, and MinIO. Each database can use different storage providers — perfect for compliance requirements or cost optimization.

Storage Options:
- AWS S3 (any region)
- Cloudflare R2 (zero egress fees!)
- MinIO (self-hosted S3-compatible)
- Reusable storage configurations
- Per-database storage assignment
🔄 One-Click Backup & Restore
Restoring a backup should be as easy as creating one. With DumpStation, it is. Restore to the same database or migrate to a completely different server — all from the dashboard.

Restore Capabilities:
- Restore to original database
- Restore to different target server
- Cross-version restoration (PostgreSQL 12→17)
- Progress tracking with logs
- Rollback verification
🔔 Discord-First Notifications
I'm a Discord power user, so I built DumpStation with Discord as a first-class citizen. Get instant notifications for backup success, failures, and system events. Even authentication works through Discord OTP — no passwords to remember!

Discord Integration:
- Passwordless login via Discord OTP
- Real-time backup status alerts
- Customizable notifications per database
- System event announcements
- Rich embeds with backup details
🔐 Enterprise-Grade Security
Security isn't an afterthought. DumpStation implements multiple layers of protection to keep your data safe, even when self-hosted.

Security Features:
- JWT-based API authentication
- TOTP 2FA with Google Authenticator
- 12 backup recovery codes
- Role-based access control (Admin/User/Demo)
- Comprehensive activity logging
- SSL/TLS encrypted connections
🛠️ Under the Hood: The Tech Stack
I chose technologies that prioritize performance, reliability, and developer experience.
Backend (Go 1.24+)
- HTTP Router: gorilla/mux
- ORM: GORM with PostgreSQL
- Scheduler: robfig/cron v3
- Authentication: JWT + TOTP + Discord OTP
- Cloud Storage: AWS SDK v2 (S3-compatible)
- API Docs: Swagger/OpenAPI 3.0
Why Go? Minimal memory footprint, single binary deployment, excellent concurrency for backup operations, and battle-tested pg_dump integration.
Frontend (React 19.2)
- Build Tool: Vite 7
- Router: TanStack Router
- State Management: TanStack Query
- UI Components: Radix UI + shadcn/ui
- Styling: Tailwind CSS
- Deployment: Cloudflare Workers
Why React 19? Server components, concurrent rendering, and the incredible TanStack ecosystem for type-safe routing and data fetching.
Infrastructure
- Container: Docker with multi-stage builds
- Internal DB: PostgreSQL 15+
- Target DBs: PostgreSQL 12, 13, 14, 15, 16, 17
- Storage: AWS S3, Cloudflare R2, MinIO
🏗️ System Architecture
┌─────────────────────────────────────────────────────────┐
│ DumpStation │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ React Frontend │ ◄─────► │ Go Backend │ │
│ │ (Port 3000) │ REST │ (Port 8080) │ │
│ │ │ API │ │ │
│ │ • TanStack │ │ • JWT Auth │ │
│ │ • shadcn/ui │ │ • GORM ORM │ │
│ │ • Tailwind │ │ • Cron Jobs │ │
│ └─────────────────┘ └────────┬────────┘ │
│ │ │
│ ┌────────────────────────────────────┼────────────┐ │
│ │ │ │ │
│ │ ┌──────────────┐ ┌──────────▼─────────┐ │ │
│ │ │ PostgreSQL │ │ Backup Service │ │ │
│ │ │ (Internal) │ │ • pg_dump Runner │ │ │
│ │ │ • Users │ │ • Version Manager │ │ │
│ │ │ • Configs │ │ • Upload Handler │ │ │
│ │ │ • Logs │ └──────────┬─────────┘ │ │
│ │ └──────────────┘ │ │ │
│ │ │ │ │
│ │ ┌──────────────┐ │ │ │
│ │ │ Discord │◄──────────────┤ │ │
│ │ │ Webhook │ Alerts │ │ │
│ │ └──────────────┘ │ │ │
│ │ │ │ │
│ └───────────────────────────────────┼────────────┘ │
│ │ │
└───────────────────────────────────────┼───────────────┘
│
┌─────────────────────────┼─────────────────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ AWS S3 │ │Cloudflare│ │ MinIO │
│ │ │ R2 │ │ │
└──────────┘ └──────────┘ └──────────┘
│ │ │
└─────────────────────────┴─────────────────────────┘
Cloud Storage Layer🚀 Get Started in 5 Minutes
DumpStation is designed for instant deployment. With Docker Compose and a single script, you're up and running.
# Clone the repository
git clone https://github.com/monzim/DumpStation.git
cd DumpStation/configs
# Run the automated deployment
./deploy.shWhat happens:
- ✅ Docker installation check
- ✅ Environment file creation from template
- ✅ Configuration validation
- ✅ Image pull (backend + frontend)
- ✅ Service startup with health checks
- ✅ Access URLs displayed
That's it! Navigate to http://localhost:3000, authenticate via Discord OTP, and start adding your databases.
👥 Who Is This For?
Solo Developers
- Automated backups for side projects
- Single dashboard for all your databases
- Discord notifications so you never miss a failure
- Free forever — no subscription fees
Startup Teams
- Centralized backup management
- Multi-user access with isolation
- Shared storage configurations
- Activity logs for compliance
Enterprise Organizations
- Multi-tenant architecture
- Role-based access control
- Comprehensive audit trails
- Docker-ready for Kubernetes deployment
🎮 Try the Live Demo
Experience DumpStation without installing anything! The live demo at dumpstation.monzim.com features:
- 12 sample databases with realistic configurations
- 248 example backups showing the history view
- 3 storage providers configured and ready
- Read-only mode — explore everything safely
No signup required. Just click "Try Demo" and start exploring!
🗺️ What's Next?
DumpStation is actively developed. Here's what's coming:
| Feature | Status |
|---|---|
| 📧 Email notifications | Planned |
| 🔐 Backup encryption at rest | In Progress |
| ✅ Automated backup verification | Planned |
| 📈 Grafana/Prometheus metrics | Planned |
| 🌍 Multi-region replication | Researching |
| 📦 Incremental WAL backups | Researching |
💡 Why I Built This
As someone who manages multiple PostgreSQL databases across different projects, I was frustrated with the fragmented backup landscape. Commercial tools were overkill, scripts were fragile, and I wanted something that felt modern.
DumpStation represents my vision of what database backup management should be: simple, beautiful, and reliable. It's the tool I wish existed when I first started deploying production databases.
📄 Open Source & MIT Licensed
DumpStation is 100% open source under the MIT License. Use it, modify it, deploy it commercially — no strings attached.
"Never lose your PostgreSQL data again."

