Open source, self-hosted team chat

Team chat that lives on your own server

The Desk is a calm, fast messaging app for teams: channels, threads, reminders, scheduled messages. One container, your hardware, your data. No per-seat pricing, because there's no one to pay.

docker compose pull && docker compose up -dand it's installed. Prebuilt image, no build step.
Acme Co
Channels
# general
# design
# engineering 3
# releases
Direct messages
Jonah Kim
Priya Okafor
# design· 12 members
JK
Jonah Kim 10:42 AMNew brand files are up. Grab the logo pack before tomorrow's review.👍 4🎉 2
TB
Tessa Brandt 10:45 AMLooks great. Starting a thread for the icon feedback.5 replies · last reply 12 min ago
MR
Maya Rivera 10:51 AMScheduling the go/no-go post for Monday 9 AM so nobody gets pinged over the weekend.Scheduled · Mon 9:00 AM
Message #design…
Thread
TB
Icon feedback here please, especially the favicon at 16px.
SL
Brass plane reads well even tiny. Ship it.
JK
Agreed 🔥
Powered by

A boring stack you already know how to run

One compose file, a handful of containers. No Kubernetes, no exotic dependencies.

Laravel
Laravel 13Application framework, queues & scheduler
Vue.js
Vue 3Frontend, served through Inertia
Inertia
InertiaServer-driven SPA, no separate API
PostgreSQL
PostgreSQLDatabase, cache, sessions & queue
Meilisearch
MeilisearchInstant full-text message search
Redis
RedisCache & realtime presence
Docker
DockerThe whole stack in one compose file: FrankenPHP app image, Reverb websockets, queue worker & scheduler
Everything a team needs

Built in, not add-ons

Channels, threads, and DMs are table stakes. The Desk also covers the workflow features teams actually miss when they leave the big platforms.

Reminder: retro moved to Thursday.Sends Mon 9:00 AM
Scheduled messagesWrite now, send when it's kind to. Edit or cancel anything still in the queue.
Remind me about this tomorrow at 9 AM
Message remindersSnooze any message and it resurfaces exactly when you asked. Nothing slips.
Starting a thread for icon feedback.5 replies
Threads & group DMsSide conversations stay at the side. Channels stay readable.
🚀 7🥳 3+
Reactions & custom emojiUpload your team's own emoji. Inside jokes are a feature, not bloat.
Reconnecting… your drafts are safe
Connection resilienceFlaky wifi, laptop lids, VPN drops: The Desk reconnects and catches up quietly.
Analytics, audit log, roles & invitations
Real admin toolsTeam analytics, a moderation audit log, roles, and session management, all included.
Self-hosted, for real

Your messages never leave your building

No SaaS middleman, no data-retention lawyering, no surprise pricing changes. The Desk ships as one compose file with a prebuilt image. Run it on a VPS, a NAS in the closet, or your company's rack.

  • Unlimited everything. Members, history, file storage, bounded by your disk, not a plan.
  • Boring, auditable stack. Laravel, Vue, Postgres, Reverb, Meilisearch. No build step. Read every line on GitHub.
  • Leave anytime. Built-in data export for every user. It's your database either way.
you@yourserver
$ git clone github.com/emmpaul/the-desk && cd the-desk
$ ./docker/gen-secrets.sh # fills APP_KEY, DB, Reverb keys
$ docker compose -f docker-compose.prod.yml up -d
Pulling ghcr.io/emmpaul/the-desk:0.4.0… done
Running migrations… done
The Desk is live at https://desk.your-domain.com
$

Set up The Desk before your next standup

Free forever, MIT licensed. If you can run a container, you can run your team's chat.