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.

  1. Build it

    Clone the repository and run make. That produces the daemon; make tui adds the terminal client.

  2. Point it at a disk

    Set OPENCHIME_DB_PATH and start it. The database is created and migrated on first boot — there is no separate migration step to run.

  3. 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.