Appearance
7. Deployment View
Soma is deployed as a desktop application (for end users) plus optional server daemons (for connectivity, onboarding, and availability).
Desktop deployment
- Soma is packaged as an Electron app (
desktop/soma) and talks tosoma-daemonover a Unix socket gRPC API. - Desktop IPC uses a Unix domain socket; no inbound HTTP ports are required for the desktop daemon.
- Tapia is shipped as a separate Electron app (
desktop/tapia); it can reuse daemon APIs for shared state.
Server deployment (typical)
soma-relayd: public-facing relay nodes for NAT traversal fallback.soma-rendezvousd: public-facing rendezvous server for discovery.soma-botd: optional always-on bot (VDF role) for caching and join decision automation.soma-bffd: optional HTTP service for LLM-backed features.
Local development topologies
Host processes
- Run the desktop daemon and desktop apps directly on the host (
cargo run,pnpm dev). - Optionally run server peers on the host (
cargo run -p soma-relayd, etc.).
Docker Compose
- Compose bundles live under
compose/and are aggregated bycompose.yml. - The root
justfilehasjust compose-up/just compose-logshelpers.
Kubernetes / Helm
- Helm charts and manifests live under
deploy/. - Server daemons are designed to be containerized with health/metrics endpoints.