swisscairn.ch + license server — system overview
How the site and the license server fit together. The pages in this repo (index, enter, account, docs, reset) are the browser box on the left; everything behind them is the cairn-license-server on the same Swiss VPS.

Reading the diagram
- Customer browser — the static pages served from swisscairn.ch (behind the pre-launch Caddy gate until launch, #26).
- Sign-in providers — Google and Microsoft OAuth from
enter.html.
- Paddle — the checkout overlay opens from
account.html; webhooks reach the license server, not the browser.
- Caddy — TLS, static pages, and the gate.
- cairn-license-server — accounts, Ed25519 license issuance, Paddle webhook, monthly check-in API, cancel / seats / receipts, SMTP mail.
- SQLite — licenses, accounts, orgs.
- Customer's Cairn instance — where the customer pastes the license key; it verifies offline and checks in monthly.
The diagram source lives in the license-server repo (docs/swisscairn-system.svg), the canonical backend. Full backend detail: the license-server wiki "System Overview" and Wiki.js ADR-0001 / ADR-0002.