Kergit is a realtime chat and voice system built around a C++ backend, protobuf over WebSocket, a Nuxt web client, and LiveKit for media.
Kergit is an advanced prototype / personal systems project. It is not production-ready. The core text and state-sync paths are usable, but setup, operations, and some voice flows still need cleanup.
- C++ backend with Bazel
- Protobuf over WebSocket
- Nuxt 4 / Vue 3 web and admin clients
- LiveKit for voice/media
- PostgreSQL + Supabase for persistence and auth
- Redis for short-lived coordination
- Caddy for local and edge routing
server/,app/,net/, andcontrol/contain the backend runtime.proto/defines the shared client/server protocol.clients/web/is the main user-facing client.clients/admin/is an operator-only dashboard.docker/andlivekit/conf/contain the local stack.
Core docs:
docs/ARCHITECTURE.mddocs/SETUP.mddocs/ENVIRONMENT.mddocs/SECURITY.mddocs/ROADMAP.md
- authenticated sessions with Supabase-backed identity
- hub and channel state sync
- realtime text chat and invite links
- session-owned voice join / revoke / resume flows
- operator metrics and control surfaces
git submodule update --init --recursive
cp .env.example .env
./docker/run-server.shStop the stack with:
./docker/stop-server.shUseful variants:
./docker/run-server.sh --prodFor backend-only operation, use the independent scripts:
./docker/services/backend/run-container.sh
./docker/services/backend/exec-server.shReplace the placeholders in .env before starting the stack. See docs/SETUP.md for
prerequisites, production-mode requirements, and client-only workflows.
- voice/video UX and dynamic multi-node LiveKit behavior still need more validation
- admin and control-plane routes are operator-only, not public endpoints
- some internal protocol and build identifiers still use legacy
sercomnames for compatibility - some full backend targets still need C++ standard/build-setting cleanup
The default full backend build currently fails because some targets still compile as C++17 while shared code requires C++20/23. This is a known limitation, not a working release check.
bazel build //...
bazel test //...
cd clients/web && pnpm testIf the web protobuf artifacts are missing:
./clients/web/docker/generate-proto.shSee CONTRIBUTING.md. Good early contributions are targeted tests, setup fixes, documentation improvements, and small reliability fixes.