goChatHub is a self-hosted chat platform. The backend — gochathub-server — ships as a single Go binary on top of PostgreSQL: contract-first REST/OpenAPI, WebSocket fan-out with receipts, typing and presence, push notifications through your own ntfy server, and S3-compatible attachments. No PostgREST, no Redis, no Kafka, no RabbitMQ, no microservices. Your data stays on your server.
- OpenAPI — the
api/openapi.yamlcontract is normative; routes and schema are checked against it on every test run - WebSockets — delivery mechanism only; clients reconnect and resynchronize over REST
- Push — UnifiedPush (self-hosted ntfy) and Web Push (RFC 8291 encrypted); identifiers only, never message content
- Attachments — presigned uploads against S3/MinIO; the server proxies authorization, never file bytes
- Security — Argon2id password hashing, hashed token storage, per-visitor rate limiting, SSRF rejection, audit logging
| Repository | What it is |
|---|---|
gochathub-server |
Chat backend — single Go binary (API + WebSocket + admin CLI), PostgreSQL |
gochathub-webui |
Web client — Vue 3 + Pinia + Tailwind 4 fork of Avian-Template |
gochathub-android-client |
Android client — CometChat UI Kit, UnifiedPush notifications |
gochathub-installer |
One command boots the full stack as Docker Compose (Caddy, server, webui, Postgres, MinIO) |
gochathub-rocketchat-migrate |
Optional: backup tooling and notes for moving off an existing Rocket.Chat server |
gochathub.com — project website. Paid installation, Rocket.Chat migration and maintenance: gochathub.com/support.