Colloqui is a fully self-hosted team and family chat server. No third-party services, no phone-home, no vendor lock-in — just your conversations, on hardware you control.
Colloqui is Latin — the infinitive of colloquor, "to talk together, to converse." It joins com- ("together with," which softens to col- before an L) with loqui ("to speak"): literally, to speak together. The same root loqui runs through English eloquent, loquacious, and soliloquy — "speaking alone," the opposite idea.
Most chat tools live in someone else's cloud and quietly own your data. Colloqui refuses the trade-off: every message, file, and account stays on infrastructure you run.
FastAPI + PostgreSQL + a no-framework web client, shipped as a single Docker image. Stand it up on a NAS, a home server, or any box with Docker.
The only outbound call the server ever makes is fetching a pasted link's title for a preview — and it's SSRF-hardened, refusing private, loopback, and cloud-metadata addresses.
All state lives in Postgres and an uploads folder — never baked into the image. Move from a laptop to a NAS and everything comes with you, passkeys included.
Spaces keep groups organized, public and private channels keep conversations where they belong, and the first account you register becomes the admin.
All the messaging features you expect — plus a few that most tools leave out.
Public and private channels organized into spaces, plus one-to-one DMs and group DMs.
Keep replies tidy with threads, react with emoji, @mention teammates, and pin what matters.
Turn any channel into a workspace with shared checklists the whole group can tick off.
Set reminders that surface when you need them, with an iCal feed you can subscribe to.
Drag-and-drop uploads with inline image preview, and rich previews for pasted links.
Find any message instantly across every channel and conversation you can see.
Per-channel notification levels, web push for the PWA, and optional native iOS push.
Pipe alerts from your own tools and scripts straight into a channel.
Sign in with a WebAuthn passkey or a classic username and password — your choice.
Sign in with a passkey bound to your own domain, or a username and password on a bare LAN — both work. Native iOS push goes through Apple with your own signing key; web push is generated on first boot with no third-party gateway.
Expose it to the world with a Cloudflare Tunnel and no open inbound ports, or keep it entirely on your LAN. Either way, the data is yours.
You need Docker with Compose. That's it — the database schema is created and upgraded automatically on startup.
Grab the repo and drop into the folder.
Copy the example env and set your database password, domain, and origin.
One compose command and you're live on port 3300.
Open http://<host>:3300 — the first account you register becomes the admin. Works great on a Synology NAS or behind a Cloudflare Tunnel.