How sovchat/sov-serverside works
Sov Server is a headless, single-group messaging backend. Clients call its HTTP API to apply for membership, exchange encrypted messages and files, and manage group access; administrators approve or reject applicants. The server authenticates requests, enforces membership and administrator checks, and delegates persistence to a mutex-protected filesystem store. The README documents the API capabilities, while the sampled source confirms representative handler-to-store calls and startup wiring; some individual routes and storage methods are not fully shown.
Main entry points: storage.go Filesystem Store · handlers.go HTTP API · main.go HTTP Server
Components 14
Server Runtime
- HTTP Server
main.go - HTTP API
handlers/handlers.go - Health API
handlers/handlers.go
Identity And Membership
- Authentication
handlers/handlers.go - Membership API
handlers/handlers.go - Membership State
storage/storage.go - Password State
storage/storage.go
Filesystem Persistence
- Filesystem Store
storage/storage.go - Group Records
storage/storage.go - Chat Logs
storage/storage.go - Encrypted Files
storage/storage.go
Other components
- Frontend Clients
Connections 19
- Frontend Clients → HTTP Server: HTTP requests
- HTTP Server → HTTP API: registers routes
- HTTP Server → Filesystem Store: initializes store
- HTTP API → Health API: dispatches
- HTTP API → Membership API: dispatches
- HTTP API → Chat API: dispatches
- HTTP API → File API: dispatches
- Health API → Filesystem Store: reads status
- Membership API → Authentication: authenticates
- Authentication → Password State: verifies passwords
- Membership API → Filesystem Store: manages membership
- Chat API → Authentication: authenticates
- Chat API → Filesystem Store: reads and writes messages
- File API → Authentication: authenticates
- File API → Filesystem Store: reads and writes files
- Filesystem Store → Group Records: reads and writes
- Filesystem Store → Password State: reads and writes
- Filesystem Store → Chat Logs: appends and reads
- Filesystem Store → Encrypted Files: stores and retrieves