1 Architecture
Cordy edited this page 2026-08-25 12:34:35 +00:00

Cairn — self-hosted instance architecture

How a customer's Cairn deployment is put together today: one binary, one config, on their own hardware, against their own storage and identity provider.

Cairn instance architecture

Reading the diagram

  • Clients — the web UI (browser) and WebDAV clients (Finder, rclone, …) talk to cairnd over HTTPS.
  • cairnd — a single Go binary: serves the web UI + WebDAV, does seat accounting, verifies its Ed25519 license offline, and can peer with other instances. No database, no phone-home in the free tier.
  • cairn.json — the one config file: which storage backend, which identity provider, and the license key.
  • Identity provider — the customer's own OIDC or LDAP, plus local users and app-passwords.
  • Storage backend — a filesystem or S3 bucket the customer owns; Cairn lays out homes/, spaces/, and runtime state under .cairn/.
  • swisscairn license server — a licensed instance checks in monthly (outbound only, pull-only); free up to 50 users with no key at all.
  • Peer Cairn — instance-to-instance transfer (peering): per-peer keys exchanged out of band, delivery into the recipient's inbox.
  • Customer infrastructure — everything inside the boundary runs on the customer's own hardware; sovereign by design.

Source SVG: docs/cairn-instance.svg in this repo. Living design detail: ARCHITECTURE.md, IMPLEMENTED-PEERING.md, and the repo wiki Home.