For geeks. No marketing.
The architecture, the stack, the security model and the deployment pipeline — exactly as they run in production.

Three layers. Clean boundaries.
A central fleet manager provisions and monitors every server. Each VPS runs the containerized stack as one reproducible unit. The application layer never touches infrastructure directly — every privileged operation goes through the agent's action API.
- 01 Fleet Manager — centralized provisioning, blueprint deployments
- 02 VPS + Panel — local privileged agent, task-queue execution
- 03 FlowOne App — the product your team actually sees

Boring, proven, fast.
Every component runs as a health-checked container in one compose stack — battle-tested, monitored, and chosen for predictability under load. The mail era of Postfix + Dovecot is behind us: one JMAP-native Rust binary does it all.

Assume hostile. Verify everything.
The security model is layered: perimeter hardening at the edge, action-based APIs in the middle, per-object permissions at the core — and an audit trail under all of it.
JWT + 2FA
Short-lived signed tokens, enforced two-factor, device approval flow for new logins.
Action-based API
No raw shell exposure. Every operation is a whitelisted, validated, logged action.
Role-based access
Permissions resolved per object — mailbox, folder, board, document, client.
Full audit logs
Every mutation recorded with actor, timestamp and diff. Nothing happens silently.
Deploys you can trust at 3 AM.
Immutable images
Every release is built once, pushed to a registry, and pulled by servers — the exact same tested artifact everywhere.
Health-gated swaps
Every container ships a health check. A new version only takes traffic once the whole stack reports healthy.
Tagged rollbacks
Releases are versioned tags. Rolling back is repointing the tag and pulling — seconds, not a rebuild.
Fleet-wide rollouts
One control plane updates every server from the same compose blueprint — nothing drifts between boxes.
One platform. Clustered underneath.
Every mailbox lives on exactly one cluster. Each cluster is four servers with one job each: an active node serving traffic, a mirror replicating in real time, an offsite encrypted backup, and a quorum witness watching them all.
If an active node fails, the witness promotes its mirror automatically and traffic follows — mailboxes never notice. Backups stay offsite and encrypted either way.
Serves every request — mail, files, app.
Hot standby, replicated in real time.
Encrypted offsite snapshots, always restorable.
Watches the pair, breaks ties, triggers failover.
Watch a server die.
This is not a marketing diagram — it is the real takeover pipeline, phase by phase. The witness rules with quorum, write authority changes hands as an epoch, DNS repoints, and the clock only stops once mail provably flows again on the production hostname. At the end, the dead server rebuilds itself as a mirror.
We are about to kill a server.
Watch the red clock — we stop at every step and tell you what just happened.
This replay shows the real takeover pipeline — the same phases, in the same order they run in production. The clock only stops when mail provably flows again: a DNS flip alone never counts as recovered here.
Replication trust — three independent paths
If the three paths disagree, replication is marked untrusted — and automatic promotion is blocked.
Backups — offsite, encrypted
The recovery node pulls the backups — and if both data servers die, it steps in and serves.
Recovery ladder — humans only at the end
Every rung gets a bounded number of attempts, and every attempt is audited.
Tested while you sleep.
The platform tests itself around the clock: full system health, real backup restores, mailbox speed, cluster failover — hundreds of checks per cycle, every result logged. Failures page us, not you.
Full-chain checks: DB, mail, storage, crypto
Backups are restored for real, then verified
End-to-end delivery timed like a real user
Replication, heartbeats and promotion paths
Proves failover works before reality does
Every result is logged, timestamped and kept. When a check fails, it pages our operators — long before anyone's inbox notices.
Events, not polling.
Dedicated WebSocket services
Mailbox push and CRDT collab editing run as their own containers, decoupled from PHP.
Event-driven core
Redis pub/sub fans out changes to every session.
Automation engine
Node-based workflows trigger on any module event.
Your bytes, your building.
NAS integration
Synology NAS mounted over NFS for bulk storage and backups.
VPN tunnel
OpenVPN client links VPS and NAS — storage traffic never touches the public net.
Desktop sync client
Native Windows/macOS clients sync drive folders with delta transfers.
