Resistro Cloud

Backup and restore evidence for self-managed Postgres databases

Resistro Cloud provides a backup baseline, monitoring, and restore evidence for small self-managed Postgres setups without an internal backup-ops team.

  • Postgres backup baseline: daily on Solo and Starter, hourly from Business
  • Daily restore-path checks and customer-triggered restore drills
  • Customer-held AES-GCM encryption key, default storage path on Hetzner Germany/EU

Plans start at €9/month. Check setup fit before you connect production data.

Optional: start a no-card trial at cloud.resistro.org. No purchase-close promise, no checkout reliability claim.

For small self-managed Postgres setups. Not for every database stack.

Fits

  • You run a small self-managed Postgres setup, typically 1 to 10 databases.
  • A daily backup on Solo and Starter — or hourly from Business — is sufficient for your setup.
  • You need restore evidence but do not have an internal backup-ops team.
  • You need restore evidence you can explain internally or to customers.

Requires

  • A reachable Linux host where the Resistro Cloud agent can run.
  • A customer-held encryption key that you store and protect yourself.
  • Operator-assisted restore handling instead of a self-service restore portal.

Not for

  • You need hard uptime/support guarantees, service credits, or a fixed restore time.
  • You need hosted or managed database support (managed MySQL/MariaDB, RDS, Supabase), or fully automated self-service restore.
Engine boundary

What each engine gets today

Postgres is the product anchor. MySQL/MariaDB are bounded logical-dump paths, not PITR or physical-backup parity.

Engine
Backup today
Restore evidence
PITR today
Not covered
PostgreSQL
Logical, daily (Solo/Starter), hourly (Business/Pro)
Daily check + drills
Verified E2E on staging (WAL streaming)
Hard RTO/RPO; real-size PITR
MySQL/MariaDB
Request-only, logical
No parity promise
None
PITR, physical, parity
Open-source engine proof

The CLI came first. Cloud adds agent, monitoring, and evidence.

Resistro started as an open-source CLI and engine, not as a SaaS dashboard. Resistro Cloud adds the operating layer for small Postgres setups: setup review, agent attachment, monitoring, restore drills, and evidence. MySQL/MariaDB remain request-only boundary cases without parity claims.

  • Apache-2.0 source: UUXO/resistro
  • Postgres-first backup and restore path
  • Prometheus exporter, textfile metrics and alerting hooks
  • MySQL/MariaDB request-only, without parity claims
  • Operator-assisted restore on top of CLI and agent tooling
Dogfooding

We run our own production database on Resistro Cloud.

The community platform behind our amateur-radio project, 11m-band.de, stores its live PostgreSQL database as an ordinary Resistro Cloud tenant — the same product path we sell, not a separate internal setup. Backups run on an hourly cadence, monitored for silent failures, using the same agent, the same encryption, and the same default storage path through Hetzner data centers in Germany/EU every customer gets. If the restore path broke, we would be the first to notice.

  • Live PostgreSQL of a real production app, not a demo database
  • Runs as an ordinary Resistro Cloud tenant, not a separate internal setup
  • Hourly backup cadence, monitored for silent failures
  • Same encryption and default storage path through Hetzner data centers in Germany/EU every customer gets
Evidence example

What a restore drill produces

A customer-triggered restore drill produces a dated result record and a restore-evidence PDF: selected backup, restore target, outcome, and operator notes. It is evidence for the tested restore path, not a legal certification or SLA.

  • Backup and restore target recorded
  • Restore outcome and checks captured
  • PDF packaged for internal review or customer evidence
Read trust model
Promise summary

What Resistro promises today

Backup baseline

Agent-based baseline

Software, agent attachment, and monitoring instead of a managed-retainer promise.

Postgres baseline

Daily backups on Solo and Starter, hourly from Business. The agent asks for work on a 1h default interval on every plan; the plan decides how often a backup is actually taken.

MySQL/MariaDB

Request-only for self-managed databases; no parity, PITR, or physical backup promise.

Restore evidence

Postgres PITR boundary

PITR is proven, but not a current product promise, not a continuous guarantee, and not a hard RTO/RPO commitment.

Restore tests

Restore tests as ongoing operating checks for the defined restore path.

Restore drills

Customer-triggered drills with restore-evidence PDF and operator-assisted result handling.

Security & storage

Zero knowledge

AES-256-GCM client-side before upload; the server receives only a SHA-256 hash of the key, never the key or plaintext data.

Default storage path

Hetzner data centers in Germany/EU; backups are stored encrypted. Roles, subprocessors, and transfers are reviewed in the privacy/AVV package.

Monitoring

Stale backup

Alerting after roughly one day; current monitor threshold: 28h.

Health smoke

Daily `/healthz` smoke test for public product paths.

Roadmap

What is deliberately not promised yet

These items are intentionally marked as roadmap. They are not part of today's operating promise, but they show which procurement questions Resistro needs to close next.

Roadmap

BYOK / customer-managed key control

Today, backup keys stay on the customer side. The next enterprise step is a clear BYOK flow with auditable rotation, key status, and explicit responsibility when a key is lost.

Roadmap

SOC 2 Type II

SOC 2 Type II is the evidence enterprise and regulated buyers expect for continuously operated controls. Resistro treats SOC 2 Type II as roadmap, not as an existing certification.

FAQ

Hard questions, narrow answers

Who is Resistro Cloud for?

Resistro Cloud is for small self-managed Postgres setups, typically 1 to 10 databases: solo developers, small agencies, and small SaaS teams on their own Linux host. A daily backup on Solo or Starter — or hourly from Business — is enough, restore evidence matters, and there is no internal backup-ops team.

What is explicitly covered today?

A Postgres backup baseline with a plan-based cadence — daily on Solo and Starter, hourly from Business — AES-GCM encryption, customer-held keys, default storage through Hetzner data centers in Germany/EU, a daily restore-path check, stale-backup alerting after roughly one day with a current 28h monitor threshold, and a daily `/healthz` smoke test. MySQL/MariaDB is request-only without a parity promise.

Does the daily restore test mean my specific database is fully validated every day?

No. The daily restore test is an operating check of the defined restore path. It ensures the restore mechanism does not silently break, but it does not mean every customer database is individually validated every day in a full emergency scenario.

Is point-in-time recovery available?

PITR is proven for Postgres, but it is not a current product promise. There is no continuous PITR guarantee, no real-size claim, and no hard RTO/RPO. MySQL/MariaDB PITR is not covered.

Why is Hetzner EU different from AWS Frankfurt?

Storage location is not the whole jurisdiction question. The default storage path uses Hetzner data centers in Germany/EU; backups are stored encrypted. AVV/TOMs, subprocessors, and third-country transfers need to be reviewed in the privacy package before customer use. This is not legal advice and not a promise about authority-access or third-country-transfer risks.

What is the target RPO?

It follows the plan: around one day on Solo and Starter, around one hour from Business. The agent asks for backup work on a 1h default interval on every plan, but the active plan decides how often a backup is accepted. The target is derived from that cadence and is not a hard guarantee.

How does restore work?

Restore is manual and operator-assisted. There is no self-service button. Customers can trigger restore drills on demand to verify the restore path and download a restore-evidence PDF.

What does the restore-evidence PDF show?

The restore-evidence PDF documents the time, scope, and result of a concrete restore drill. It is structured evidence for the tested restore path, not a legal certification and not a compliance certificate.

Is there a support guarantee or a fixed restore time?

No. There is no support guarantee, uptime guarantee, service-credit model, or fixed RTO commitment.

How does Resistro detect backup failure?

Resistro uses heartbeat- and Prometheus-based monitoring. The current stale-backup alert threshold is 28 hours without a successful backup signal.

What does customer-held key mean in practice?

Backup data is encrypted with AES-GCM and the key stays on the customer side. That is the entire promise, including no key recovery if the customer loses the key.

Which setups are outside the intended scope?

Hosted or managed database platforms such as managed MySQL/MariaDB, RDS, or Supabase, requirements outside the defined small Postgres ICP, and any MySQL/MariaDB requirement beyond bounded logical dumps. MySQL/MariaDB-heavy is not an equal primary fit.

Does the daily `/healthz` smoke test mean full platform monitoring?

No. It verifies basic reachability of central public product paths, not a full uptime or end-to-end guarantee.

Why is the communication so narrow?

Because Resistro Cloud sells only what can be narrowly evidenced today: bounded promises, restore verification, and explicit limits instead of broad security rhetoric or implied guarantees.

Check setup fit before production data is attached.

Resistro Cloud fits when you run self-managed Postgres databases, do not have an internal backup-ops team, and need restore verification as an operating process. MySQL/MariaDB fits only as bounded logical-dump support. It does not fit when you need hard uptime/support guarantees, hosted database operations, or fully automated self-service restore.