vCon Server, also called the Conserver, takes in vCon conversation records, runs them through configurable chains of processing steps and writes the results to the storage backends you choose.
These pages cover the open source server and match the code in this repository. For an introduction to the conserver, see conserver.io.
- Takes in vCons. The REST API accepts them from your systems, and scoped API keys let third parties post to one ingress list.
- Queues work in Redis. Plain Redis holds the vCons, the ingress and egress lists, and the dead letter queues.
- Runs chains. A chain names its ingress lists, its links, its storage backends and its egress lists.
- Runs links. A link is one step: transcription, AI analysis, tagging, routing, a webhook. Returning nothing stops the chain for that vCon.
- Stores results. Writes go to every backend in the chain, in parallel by default.
- Scales by worker. Set worker processes and per-worker concurrency with environment variables.
- Reports on itself. OpenTelemetry tracing and metrics, plus dead letter queues for failed vCons and failed storage writes.
The server carries lawful_basis attachments through the pipeline. It does not create, validate or enforce consent. See lawful basis and editions.
| You want to | Read |
|---|---|
| Run the server for the first time | Quick start |
| Learn the moving parts | Architecture, chains, links and storage |
| Follow one vCon from start to finish | vCon lifecycle |
| Deploy it | Installation |
| Set it up | Configuration |
| Run it day to day | Operations |
| See why a conserver exists | Conserver introduction |
| Follow one phone call through the system | Day In the Life of a vCon |
| Connect your application | Integrating Your App |
| Write a link, adapter or tracer | Extending |
| Look up a name | Reference |
| Change the code or the docs | Contributing |
- Links lists every link module and its status.
- Storage adapters lists every backend.
- API reference describes every REST endpoint.
- Environment variables, ports and metrics are generated from the code.
The repository has no product version: pyproject.toml holds a placeholder. Each image carries the version it was built with, and GET /version reports it. See the API reference.
Report bugs and request features in GitHub issues.