Monzim
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
DumpStation: Self-Hosted PostgreSQL Backup Management System cover

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 โ†’

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