Documentation
The full documentation lives beside the code, where it stays honest. This page is the way in.
Start here
Deployment models
Stand-alone, self-hosted federated, or hosted. What each depends on, what each gives up, and what stays true in all three. Read this before anything else.
Configuration reference
Every environment variable the daemon reads. There is no config file — the process environment is the whole surface.
Get a server running
The daemon is a C program over SQLite. Building it needs a compiler and the SQLite development headers, and nothing else.
-
Build it
Clone the repository and run
make. That produces the daemon;make tuiadds the terminal client. -
Point it at a disk
Set
OPENCHIME_DB_PATHand start it. The database is created and migrated on first boot — there is no separate migration step to run. -
Claim it
On first run the daemon logs a one-time setup token. Use it to create the owner account, and the workspace is yours.
On backups. The daemon has no replication component by design — it commits to one SQLite file in WAL mode, so any snapshot or file-level backup tool you already use applies. If you self-host, backups are yours to arrange.
Running it
Configuration
Every environment variable the daemon reads. There is no configuration file.
TLS and trust
How the daemon terminates TLS and how clients come to trust its certificate.
Local demo
Run the whole federated system on one machine, daemon and control plane together.
How it works
Architecture
The consolidated record of every architecture decision, and what each one rules out.
Wire protocol
The binary protocol specified at the byte level — the contract between client and daemon.
Authentication
How users prove who they are, and how a session is established and revoked.
Database schema
The SQLite schema and the migration mechanism that evolves it.
Clients
Client architecture
One shared C app-core with a native UI per platform, and how they are built.
Terminal toolkit
The in-tree C library the terminal client is built on.
Message formatting
The markup a message body may contain, and where it is parsed.
Calls
Voice
The huddle model, the media path, and how the server relays without decoding.
Screen sharing
Why it rides the existing relay unchanged, and the codec-as-wire-contract decision.
The project
Requirements
The target-state product specification every other document is written against.
Testing
How OpenChime is tested and the conventions a new test follows.
Dependencies
Every third-party package, how it is pinned, and its license.
Benchmarks
Measured memory use and concurrent-connection figures for the daemon.
Contributing
Branch, commit, and CI policy.
Read the source
Every claim on this site is checkable. The protocol, the schema, and the trust model are specified, and the code implementing them is public.