huddle-server — a centralized relay + offline mailbox for huddle.
Designed to run on a single host behind a Tor v3 onion service. Clients open a WebSocket, announce their identity + room memberships, and publish messages addressed to a room. The server fans each message out to the room's other members that are currently connected, and queues it in a per-recipient mailbox for those who are offline.
The server treats huddle's wire bytes as an opaque base64 blob — it
routes by the cleartext room id and never decrypts. End-to-end
encryption (Megolm / X25519) and authenticity (signed envelopes) are
entirely the clients' concern, exactly as on huddle's libp2p path.
What the operator can still see is metadata: room ids, member fingerprints, and timing. The onion service hides client IPs; blinding the room/recipient identifiers is deferred anonymity-hardening work.
Config via env: HUDDLE_SERVER_BIND (default 127.0.0.1:8787) HUDDLE_SERVER_DB (default huddle-server.db) RUST_LOG (default info)