OpenSource team chats and video conferences inspired with Discord, Telegram & Zoom
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Your whole team in one window: voice rooms, chat, meetings and tasks — on your own server.
Self-hosted voice-first team messenger. macOS · Windows · Linux · Web.
Calab is a team messenger where voice comes first. Join a room and you hear your colleagues right away; next to it is a Telegram-style chat, a calendar with meetings and Linear-style task boards. Everything runs on your own server: one docker compose, PostgreSQL and LiveKit inside, no external services or subscriptions.查看完整 README ↗Calab puts the whole work of a team in one window: a message becomes a task, the task gets a meeting, the meeting leaves a recording and a transcript, and the outcome lands on a wiki page and on a canvas. Everything links to everything. Voice comes first: join a room and you hear your colleagues right away. Calab runs in the cloud or on your own server (one docker compose, PostgreSQL and LiveKit inside).
Instead of seven services in seven tabs (messenger, video calls, task tracker, wiki, online whiteboard, file storage, mail and a phone system) there is one rail on the left. The client is light: 0.05 % CPU outside a call and ≈ 7 % in voice on a MacBook Air M4.
Platforms: macOS · Windows · Linux · Web · phone (the web app works in a phone browser; iPhone and Android apps are coming soon).
| Group | What is in it |
|---|---|
| Talk | Voice rooms and screen share (pointer and drawing over the stream, noise and echo cancellation), video meetings (up to 25 tiles), chat with replies, reactions and pins, temporary rooms and guests, recording with a transcript |
| Work | Task boards (board, list, timeline; forms, automations, approvals, history), calendar with find-a-time and CalDAV, wiki, canvas (stickies, shapes, arrows, voting, timer), files, mail (desktop app) |
| Order and quiet | ⌘K search across everything, notification levels per room and task triggers (with forwarding to your own bot), roles and private rooms, web apps pinned in the window |
| AI | Smart task (Business and above), meeting summaries and transcripts, any LLM client as a bot through MCP. An administrator connects a model once in workspace settings; without it AI does not work |
| Telephony | Connect a SIP provider: voice menu (IVR), groups, extensions for people and bots, call transfer, call recordings saved to team files (Business and Enterprise) |
| Self-hosting and control | One docker compose on your own server, SSO / Active Directory / roles, open code under BSL 1.1; docs for developers |
⌘K quick switcher.⌘K finds messages, tasks and their comments, calendar events, files, notes and meeting transcripts, by word start and with typo tolerance.invite.ics — the meeting lands in Apple, Google, Outlook or Yandex calendars; external attendees answer by link and join as guests..ics, subscribe in Apple Calendar with a button, or scan a QR code from your computer. Personal, read-only links can be replaced or revoked; external apps control refresh timing. Details.Kanban, list and timeline (Gantt with milestones and a “today” line), in the spirit of Linear, with its keyboard shortcuts.
Statuses, priorities, labels, milestones, due dates; several assignees with a lead, subtasks and relations.
Comments like chat — reactions, stickers, voice messages — mixed with the change history.
Filters, saved views, bulk actions; create a task from any message; a task link unfolds into a card in the chat.
Approvals — assign approvers and how many approvals are needed (all or N of M); a task can’t move on until it is approved (ADR-0049).
Full-screen task on desktop, as in Linear: Esc returns to the board, ↑/↓ go to neighbouring tasks.
Checklists inside tasks (Team and above) with progress on the card and “turn an item into a subtask”.
Milestones inside a big task with due dates and progress; they appear as diamonds on the timeline (ADR-0063).
Automations — “When → If → Then” rules per board: change a status, assign, write to a room and more (Team and above, ADR-0060).
Intake forms — a public link or a private form that creates tasks, with fields, default status and priority (Team 5 per board, Business 20, ADR-0064).
Board webhooks — signed events for your own systems (Business); each board switches its features on and off separately.
History — the “Comments” and “History” tabs: who changed what and when, with before and after values; repeated edits are merged. Watchers, per-task access on closed boards, approval reminders.
A mail client in the desktop app: connect Gmail, Yandex, Mail.ru or iCloud (an app password is needed), read and send mail without leaving Calab. A message can be forwarded to a chat as text with its attachments. Mail runs locally — passwords stay in the system keychain and the server takes no part; there is no mail in the web or phone app (ADR-0088).
Pages and sub-pages like Notion: a rich editor with tables, checklists, code and images, real-time co-editing with live cursors, version history with restore, access per page and public read-only links. Pages link to each other ([[) and a page link in chat unfolds into a card; one menu for the tree row and the page “⋯”: rename, sub-page, move, access, link, versions, export, trash.
Folders and files of the workspace: drag & drop upload, tiles or list, access per folder (private folders are hidden even from admins), public file links, trash with auto-cleanup and a clear storage meter. The meter shows what takes the space: chats, boards, wiki and the rest.
Up to 20 private shelves with your own names and emoji — like Saved Messages in Telegram, only several. Drag messages and files onto a shelf, forward to it, pin and search.
A guest link leads straight into a room — no sign-up. With approval turned on (per room or per link), the guest waits on this screen until the organizer clicks “Let in”. Guests who have not signed in for 48 hours are removed automatically and are grouped separately in the member list. People who left stay in history as “former” members: their messages and tasks remain, and admins see them in a separate tab.
@nick for mentions, status and birthday.An admin pins site shortcuts (Grafana, the wiki, the CRM) under the workspace icon in the left rail. A click opens the site full-window inside Calab and the call keeps going; logins are kept separately per app, camera and microphone only with your permission (ADR-0050).
The web app adapts to phones and installs to the home screen: Telegram-like room list, swipes (reply, mark read), pinned tabs plus “More”, who is in a voice room at a glance. iPhone and Android apps (calls on the lock screen, push) are coming soon (ADR-0067).
A bot is a member with a token: the same REST and gateway as the app, rights through roles. It reads and writes chat, answers /commands, talks in voice rooms (LiveKit, Node / Python / Go) and works with boards within its rights; events arrive over WebSocket or a webhook with an HMAC signature. Bot API v2 adds the calendar (meetings, free/busy, finding a time), member profiles, invitations, badges, guest admission and meeting recording, plus buttons under messages (ADR-0051).
import { Bot } from '@calaba/bot-sdk';
const bot = new Bot(process.env.BOT_TOKEN, { server: 'https://app.calab.io' });
bot.on('message', (m) => bot.reply(m, m.content));
await bot.start();
SDK — packages/bot-sdk, examples — examples/bots (echo, voice echo, TTS, Python), docs — docs/19-bot-api.en.md · Русский.
Bots also work with Disk and Wiki (folders, files, pages) and with board webhooks. Developer documentation — bots as an integration API, OAuth 2 / OIDC, SSO: calab.io/en/docs/.
HttpOnly/SameSite=Strict; identity browser binding, scoped SSO refresh and root authorize resolver cookies use Secure/HttpOnly/SameSite=Lax for browser redirects (cookie contract). No end-to-end encryption yet: media goes through your own media server.Planned, not available yet:
You need a Linux host with a public IP, Docker + Compose and a domain with A records for app, rtc, turn (and @ for the site).
git clone https://github.com/itrcz/calab.git && cd calab
cp infra/docker/.env.example infra/docker/.env # DOMAIN, secrets — see the comments
infra/docker/deploy.sh # Caddy, LiveKit, API, Postgres, Valkey
Ports: 80/443 TCP, 443/UDP, 7881/TCP, 7882/UDP. The first registered user becomes the server owner; everyone else joins by invitation. The full guide, backups and hardening — docs/06-deployment.md.
Builds for macOS, Windows and Linux are at calab.io and on your server at https://app.<domain>/download/; the web app is at https://app.<domain>. What’s new in each version — CHANGELOG.md (in Russian; the same text goes into GitHub Releases).
corepack enable && pnpm install && make gen # protobuf → Go + TS
pnpm infra:dev # Postgres, Valkey, LiveKit --dev
cd apps/server && go run ./cmd/server serve # API on :3000
pnpm -F @calaba/desktop dev # Electron
Checks: make lint from the repository root, make test (Go + TS), make test-integration with an isolated test environment. Visual suites are disabled by the owner; Identity 2.0 final acceptance commands are in TESTING.md. Architecture: overview · media · network · data model and rights · realtime protocol · design system · ADR.
| Free | Team | Business | Enterprise (your own server) | |
|---|---|---|---|---|
| Voice room | up to 5 people | up to 15 people | up to 50 people | unlimited |
| Workspace members | up to 50 | up to 100 | up to 500 | unlimited |
| Audio quality | up to “Normal” | any, up to “Excellent” | any | any |
| Screen sharing and camera quality | up to 720p / 15 fps | no quality limits | no quality limits | no quality limits |
| Screen shares at once in a room | 1 | 2 | 5 | unlimited |
| Cameras at once in a room | 3 | 10 | 25 | unlimited |
| Files | 5 GB per workspace | 300 GB per workspace | 1 TB per workspace | unlimited |
| Bots | 1 | 5 | 20 | unlimited |
| Sticker packs | 1 | unlimited | unlimited | unlimited |
| Task boards | 3 | 30 | 50 | unlimited |
| Wiki pages | 10 | 50 | 500 | unlimited |
| Canvases | 3 | 30 | 100 | unlimited |
| Calendar | ✓ | ✓ | ✓ | ✓ |
| CalDAV sync | — | ✓ | ✓ | ✓ |
| Task approvals | ✓ | ✓ | ✓ | ✓ |
| Embedded web apps | ✓ | ✓ | ✓ | ✓ |
| Identity 2.0: SSO / directory / OAuth provider | — | — | positive workspace grant | positive grant + operator workspace allowlist |
| Telephony (SIP) | — | — | ✓ | ✓ |
| White-label | — | — | — | ✓ |
Free, Team and Business are cloud plans of a workspace (ADR-0024); Enterprise is your own server with no plan limits. CalDAV belongs to a person: it works if any of their workspaces is on Team or above. Details — calab.io/en/#pricing and COMMERCIAL-LICENSE.md.
Billing. A workspace has a balance charged per seat per day; pay by card or SBP (Russia). Paid plans are being enabled workspace by workspace; roles have separate “view / top up / manage” billing permissions, and with the plan inactive a workspace stays readable (ADR-0080).
Business Source License 1.1 — LICENSE.
Calab and GPTunneL names and logos are trademarks, see TRADEMARKS.md.
Pull requests are welcome with a CLA — CONTRIBUTING.md. Report vulnerabilities privately to [email protected], see SECURITY.md.
| Support |
| — |
| support |
| priority |
| — |
| Price | free | on request ([email protected]) | on request ([email protected]) | free for non-commercial use (BSL 1.1, “Powered by GPTunneL”); commercial licence on request |