Go
React
PostgreSQL
Docker
DevOps

DumpStation: Self-Hosted PostgreSQL Backup Management System

A production-ready, self-hosted solution for managing PostgreSQL database backups. Automate your database backups with cloud storage integration (AWS S3, Cloudflare R2, MinIO), Discord notifications, cron-based scheduling, and a modern React dashboard. Deploy in minutes with Docker.

Azraf Al Monzim
Updated June 13, 2026
1,084 views
Live
DumpStation: Self-Hosted PostgreSQL Backup Management System cover
Listen to this post··:··

Project Overview

DumpStation combines automated scheduling, cloud storage integration, and real-time notifications in a single, easy-to-deploy application. Perfect for DevOps teams, solo developers, and organizations that need reliable, automated database backups without vendor lock-in. Features include multi-database support (PostgreSQL 12-17), flexible cron-based scheduling, one-click backup and restore, Discord OTP authentication, TOTP 2FA, and comprehensive monitoring.

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."

DumpStation Dashboard

🎯 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.

Database Management

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 Configuration

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 Configuration

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.

Backup Restore

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 Notifications

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 Settings

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.sh

What happens:

  1. ✅ Docker installation check
  2. ✅ Environment file creation from template
  3. ✅ Configuration validation
  4. ✅ Image pull (backend + frontend)
  5. ✅ Service startup with health checks
  6. ✅ 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:

FeatureStatus
📧 Email notificationsPlanned
🔐 Backup encryption at restIn Progress
✅ Automated backup verificationPlanned
📈 Grafana/Prometheus metricsPlanned
🌍 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."

Get Started →

Architecture decision records

Architecture diagram

Technologies:
Go
React
PostgreSQL
Docker
DevOps
Backup
Self-Hosted
AWS S3
Cloudflare R2
MinIO
TanStack
TypeScript
Open Source
Automation
Database
Cloud Storage
Azraf Al Monzim

Interested in this project?

Feel free to explore the source code, try the live demo, or reach out if you'd like to collaborate.