Deployment

This page explains how vaultsuite.dev deploys and manages your CryptPad instance. Understanding the architecture helps you see why we can offer dedicated instances at such low prices.

Infrastructure overview

VaultSuite runs on Fly.io, a global application platform. All customer instances are deployed in the Amsterdam (AMS) region to ensure EU data residency.

The platform consists of:

  • Edge proxy: routes traffic to the correct instance, handles TLS, enforces suspension
  • Control plane: manages instance lifecycle, billing, backups
  • Customer instances: one Fly app per customer, running CryptPad (and optionally OnlyOffice)
  • Database: Neon Postgres for control-plane data (accounts, billing, instance metadata)

Per-tenant isolation

Each customer gets their own Fly app. This means:

  • Separate container (no shared tenancy at the OS level)
  • Separate volume (your data is on its own persistent disk)
  • Separate network (instances can't talk to each other)

This is stronger isolation than typical multi-tenant SaaS, where all customers share the same application server and database.

Scale-to-zero

Lite and Default tiers use Fly.io's scale-to-zero feature: when your instance is idle (no active users), the container is stopped. When you access your instance again, Fly wakes it up in ~5 seconds.

The edge proxy handles the wake-up transparently: when a request arrives for a stopped instance, the proxy sends a wake signal, waits for the instance to be ready, then forwards the request. You don't need to do anything — it just works.

The Team tier is always-on: the container never stops, so there's no cold-start delay. This is ideal for teams that need instant access.

OnlyOffice deployment

For Default and Team tiers, OnlyOffice runs in the same container as CryptPad. The documentserver listens on localhost:3000 and CryptPad connects to it internally.

OnlyOffice uses scale-to-zero independently: when no documents are open for a period of time, the documentserver process is idle. When you open a document, it wakes up in ~5 seconds. This keeps costs down while preserving the ability to edit rich documents.

Backups

Every instance volume is snapshotted daily by the platform's scheduled snapshot system. Snapshots are encrypted at rest, kept for 14 days, and pruned automatically. Need a restore? Contact support and we roll your instance back to any snapshot in the window. Off-platform backup copies are on our roadmap.

TLS and certificates

All connections use TLS. Your instance's *.vaultsuite.dev hostname is covered by managed certificates that renew automatically — there is nothing for you to configure.

We enforce HSTS (HTTP Strict Transport Security) to prevent downgrade attacks.

DNS and routing

The edge proxy receives all tenant traffic and routes it to the correct instance based on the Host header. Your instance is only ever reachable over HTTPS at its own hostname.

Monitoring

We watch the health of the platform:

  • Every deployment is verified end-to-end — an instance isn't marked live until it answers on its public URL
  • Instance and proxy health (is the container running and responding?)
  • Billing webhook delivery (did Stripe events arrive and process?)

In the event of an outage, we post updates by email and on our support channels.

Updates and maintenance

When CryptPad releases a new version, we:

  1. Test the update in our canary instance (a dogfood instance we run ourselves)
  2. If tests pass, schedule the update for all customer instances
  3. Update instances one at a time to minimize blast radius
  4. Monitor for issues after each update

Updates typically take <1 minute per instance. We schedule them during low-traffic periods (early morning EU time) when possible.

Cost control

We implement several cost controls to keep prices low:

  • Scale-to-zero: idle instances don't consume compute
  • Idle reaper: websockets with no activity for N minutes are terminated, allowing the instance to sleep
  • Bandwidth metering: soft caps prevent abuse
  • Single region: everything in AMS avoids cross-region transfer fees

These controls let us offer dedicated instances at prices competitive with shared hosting.