CapsuleCapsule
Encrypted. Automated. Off-server.

The undo button your database never had.

Most developers only think about backups after something breaks. Capsule runs silently on your server, backs up every database on a schedule, and pushes every snapshot to the cloud the moment it's created. A dead server can't take your data with it.

Set it up free
$
curl -fsSL https://trycapsule.xyz/install.sh | sudo sh
Capsule — bash

Capsule

Database Backup Manager

› Manage Connections

Quit

↑/↓ navigate enter select

daemon log

my-postgres backup complete · 2.4 MB

staging-mysql backup complete · 890 KB

mongo-prod next run 02:00

─────────────────────────

uploaded my-postgres.sql.gz.enc → cloud

Works with your stack

PostgreSQLMySQLMongoDBDockerLinuxsystemdUbuntuDebian
01Scheduled backups

Set it once. Sleep better every night.

You shouldn't have to remember to back up your database. Write a cron expression and Capsule's daemon takes it from there — every backup compressed, checksummed, encrypted, and pushed to the cloud the moment it completes. Old backups clean themselves up — you never think about any of it again.

  • Standard cron expressions — daily, weekly, hourly, or custom
  • Pause and resume any schedule with a single keystroke
  • Schedule changes apply instantly — no daemon restart needed
  • Runs as a systemd service — survives reboots and restarts automatically
Schedule Backup
02Instant restore

One click back to before it broke.

Browse your backup history, select a snapshot, confirm. Capsule pulls it from the cloud, verifies the checksum, decrypts and decompresses it, and pipes it directly into your database. No manual commands, no guessing which file is the right one.

  • Every restore is verified — you'll never load a corrupted backup
  • Auto-rollback: if a restore fails halfway, your database is put back the way it was
  • Restore from your terminal, or from the dashboard while you're away from your desk
  • Confirm before overwriting — no accidental data loss
Backups — my-postgres
03Every database

One tool for every database you run.

Postgres on bare metal, MySQL in Docker, MongoDB on a remote box — normally that's three different dump tools, three cron scripts, three things to silently break. Capsule speaks each database's native tooling and puts every backup behind one interface.

  • PostgreSQL, MySQL, MongoDB out of the box
  • Works with Docker containers and remote hosts
  • Each database gets its own schedule and credentials — one place to see them all
Capsule — bash
04Pre-deploy safety net

No backup? No deploy.

Add one step to your deploy pipeline, and Capsule backs up your database before every release. If the backup doesn't succeed, the deploy simply doesn't happen — so even if a release goes wrong, your data from one minute before is safe.

  • Blocks the deploy if the backup fails or times out
  • One-line GitHub Action — or a single curl call from any CI
  • Tag each backup with a note — know exactly which snapshot predates which release
.github/workflows/deploy.yml
- name: Pre-deploy backup
  uses: capsule-infra/backup-action@v1
  with:
    license-key: ${{ secrets.CAPSULE_LICENSE_KEY }}
    connection-label: prod-postgres
    note: deploy ${{ github.sha }}

- name: Deploy Backend
  run: ./deploy.sh

backup confirmed · 2.4 MB — deploy proceeding

How it works

Your backups live off your server.

A backup stored on the same server as your database isn't a backup — it's a copy. Capsule pushes every snapshot to the cloud the moment it's created, so a dead server can't take your data with it.

01

Install the agent on your server.

One command installs the Capsule CLI on the server where your databases live. It registers as a systemd service — starts on boot, restarts on failure, keeps itself up to date, no babysitting.

$curl -fsSL https://trycapsule.xyz/install.sh | sudo sh
02

Authenticate once. Every backup goes off-server.

This is the critical step. Run capsule auth and paste your license key when prompted — this connects your agent to Capsule's cloud. From this point, every backup is encrypted and pushed off-server — so if your server goes down, your data doesn't go with it.

$capsule auth
03

Connect your databases.

Launch the Capsule TUI and add your PostgreSQL, MySQL, or MongoDB connections. Credentials are tested live, encrypted on disk, and never leave your server.

$capsule

After that, it's automatic. The agent backs up on your schedule, pushes to Capsule's cloud, and syncs everything to your web dashboard — servers, connections, backup history, and every failure, so nothing goes wrong silently.

Get started free →

Why Capsule

Not all backup tools are the same.

A cron job and a checkbox aren't a backup strategy. Here's what makes Capsule different.

You hold the encryption keys — we never see your data

Auto-rollback if a restore fails halfway through

Pre-deploy backup gate — a GitHub Action that blocks your deploy until a fresh backup is confirmed

Works on any host, any VPS — no cloud lock-in

Use cases

Built for developers and small teams.

Whether you're shipping a side project, running a startup's self-hosted stack, or managing client databases — Capsule fits the way you already work.

Credentials stay on your server

The agent stores database credentials locally, encrypted on disk. They are never transmitted to Capsule's servers.

We only store encrypted ciphertext

Backups are AES-256 encrypted on your server before upload. Capsule's cloud receives ciphertext — not your data.

We don't hold the decryption key

Your encryption key is derived locally and never leaves your server. We are cryptographically unable to read your backups.

From the school of hard knocks

What it costs to find out the hard way.

Lost 3 weeks of user data when my VPS provider had a storage failure. No backups. I spent 4 days rebuilding from memory and old exports. I won't make that mistake again.

AR

Alex R.

Indie Hacker

Got questions?

We've got answers. And if we don't, we'll get back to you.

Yes — AES-256 before it leaves your server, and encrypted at rest in our cloud. Your keys are derived locally. We never see them.

PostgreSQL, MySQL, and MongoDB out of the box. The agent picks the right dump tool automatically — and if your server is missing the MongoDB tools, capsule install-mongo sets them up for you. More databases are on the way.

In Capsule's cloud, off your server entirely. That's the whole point — if your server goes down, your backups don't go with it.

Only once, at install — to place the binary and register the systemd service that runs your backups on schedule. After that, it only touches the databases you explicitly connect. Your database credentials never leave your server.

It shows up on your dashboard — every failure, even one where the database dump itself broke before a single byte was written. Backups that fail silently in a log file on a server nobody reads aren't backups.

Nothing bad — your backups are already in the cloud. Spin up a new server, reinstall the agent, run capsule auth, and restore. The dead server can't touch your data.

Yes. For Docker containers, Capsule runs the dump command directly inside the container via docker exec — no exposed port needed. Remote hosts and managed databases connect over the standard port.

You get a 30-day window to export anything you need. After that, your data is permanently deleted from our servers.

Run capsule → pick your connection → open Backups → select a snapshot → confirm. The agent downloads it from the cloud, decrypts and decompresses it, and pipes it straight into your database — and rolls back automatically if anything fails midway. You can also kick off restores from the web dashboard.

Still have questions? support@trycapsule.xyz

Stop hoping. Start knowing.

Your databases deserve better than hoping nothing goes wrong.

Capsule takes 60 seconds to install and runs quietly in the background. Start free — upgrade the day it's guarding data you can't afford to lose.

No credit card to start · Cancel anytime