Deployment and state reconciliation
You declare the desired state and a local reconcile loop is accountable for reaching it. A container dies, it comes back; configuration drifts, it gets pulled back. There is no "run it once by hand and hope".
- Ed25519-signed app catalog, pinned by digest
- Databases and add-ons provisioned with the app
- Event log for every state change
- A Docker-free runtime tier for small machines
Domains, DNS and TLS
Two paths, choose either at any time, switch between them freely. Ready-made subdomains put both the records and the wildcard certificate on the cloud. Your own domain means the instance obtains and renews its certificate itself, independent of the cloud.
- *.keenrig.com subdomain issued the moment you create an app
- Wildcard certificates via DNS-01 on the cloud side
- Bring-your-own domain: ACME HTTP-01 straight on the instance
- Works on a raw IP with a self-signed certificate — no domain required first
AI — primary interface and copilot
Non-technical users describe what they need and get a running app. Administrators use AI as a copilot, and every state-changing action stops at an approval queue before it touches the real machine.
- App recommendations from the catalog based on a plain description
- Approval queue — AI proposes, a human agrees
- Runs through the cloud proxy, or points at a local Ollama
- Bilingual notifications, Vietnamese and English
Identity and access
Every instance carries its own identity store, independent of any cloud account. Apps on the machine share one login.
- OIDC and LDAP running inside the instance
- Single sign-on across installed apps
- Two-factor authentication and passkeys
- Role-based access control
Backup and restore
Backup is part of the platform, not a cron script you wrote once and forgot. You choose the target, including targets we cannot reach at all.
- Targets: local disk, NAS, your own S3, or managed storage
- Per-app backup schedules
- Verified restores, not "it probably works"
- Backups readable without the platform being alive
Cloud disconnect and offline licensing
The right to disconnect only means something if it breaks nothing. Before disconnecting, the platform runs a preflight and lists every affected item together with how to handle it.
- Preflight listing exactly what you would lose
- Wizard to migrate apps onto your own domain
- Ed25519-signed licences, verifiable offline
- Reconnect at any time with a fresh token