Nojoin is a self-hosted meeting transcription and notes solution.
It captures audio through a supported browser, processes recordings on your own server, and gives you transcripts, speaker separation, meeting notes, search, meeting chat, and a web-based dashboard for day-to-day work.
Nojoin is built for people who want the usefulness of meeting assistants without inviting bots into meetings or defaulting to a SaaS platform for storage and processing.
- No meeting bot awkwardly joins your calls
- Works across Google Meet, Microsoft Teams, Zoom, etc. without any integration or meeting links
- Built-in transcription and speaker attribution.
- Optional fully local AI with Ollama
Meeting Edgelive meeting guidance with questions, missed points, and concept help- AI-generated meeting notes
- Meeting analytics measured from the transcript and the audio: talk-time share, turn structure, overlapping speech, and how the balance shifted through the call, plus an optional AI reading of the topics, the questions nobody answered, and who owned each decision
- AI-powered Meeting Chat grounded in the transcript, notes, and uploaded documents
- Global speaker library with voiceprints and speaker matching
- Google and Outlook calendar sync with meeting context in the dashboard
- Search across recordings, notes, and documents
- Dedicated Task workspace
Nojoin is free, and running it yourself means a machine with a GPU, a compose file, and the upgrades that follow. If you'd rather not, the developer who built Nojoin will scope the hardware, set an instance up on a machine you own, and keep it patched, watched and backed up.
£24.99 a person a month, from five people. You buy and own the hardware directly, so the fee covers labour and nothing else. Nothing is capped: no monthly allowance, no ceiling on call length, no history that expires.
- Chrome for Windows, Linux, and macOS (shared-audio recording)
- Chromium-family browsers on Windows and Linux (shared-audio recording)
- Chromium-family browsers on macOS (best-effort shared-audio recording)
- Chrome (mobile) for Android and iOS (microphone-only recording)
-
Clone the repository.
git clone https://github.com/Valtora/Nojoin cd Nojoin -
Create local deployment files from the tracked examples.
cp docker-compose.example.yml docker-compose.yml cp .env.example .env
-
Set required environment variables in
.env.FIRST_RUN_PASSWORDDATA_ENCRYPTION_KEY(for any persistent deployment)- And other API keys as needed for your desired features.
No AI provider key is required here. The setup wizard also lets you route AI through your own Claude or ChatGPT subscription, or leave AI unconfigured and set it up later.
-
Start Nojoin.
docker compose up -d
-
Open the setup wizard.
https://localhost:14443/setup -
Unlock the wizard with your
FIRST_RUN_PASSWORDand complete the first-run setup: terms, transcription model, owner account, AI route, and a finish screen that checks this browser can record. The sign-in page does not link to setup; the wizard is only reachable at/setup. -
Open Nojoin in a supported browser and start a short test meeting. See docs/CAPTURE.md for browser capture guidance.
Notes:
-
An NVIDIA GPU is strongly recommended for faster processing: GTX 16 or RTX 20 series or newer, with driver 580 or newer.
-
CPU-only mode is supported but it is much slower.
-
Set
DATA_ENCRYPTION_KEYonce and keep it stable to avoid losing access to previously encrypted calendar credentials after restores or host changes. -
To reach Nojoin from another device, a phone, a VPN, or a tailnet, read Remote Access and Trusted Public Origin. Live capture requires an HTTPS origin, so remote access means putting a reverse proxy in front of Nojoin rather than only changing a port.
-
For calendar OAuth, updates, and backup guidance, use the documentation below.
- Documentation Index
- Getting Started
- Deployment & Configuration
- Browser Capture Guide
- User Guide
- Calendar Guide
- MCP Connector Guide
- Administration Guide
- Backup & Restore
- Architecture Overview
- Security Policy
- Anonymous Usage Data
- Legal Disclaimer
Nojoin is under active development. Back up your instance regularly before upgrading.
Contributions are welcome. See CONTRIBUTING.md for the development workflow and contribution expectations.
Nojoin sends a daily heartbeat containing a random install ID and the version, so the number of installations can be counted. Separately, it can send anonymous usage diagnostics every six hours: user and recording counts, and which features are switched on. Neither contains any of your meeting data: no audio, transcripts, notes, names, hostnames, or keys. The data is never sold.
Diagnostics are on by default and can be turned off in Settings > Privacy; on an existing installation none are sent until an administrator has seen the notice explaining them. The heartbeat has no switch in the app. Setting NOJOIN_TELEMETRY_ENABLED=false in .env or blocking telemetry.nojoin.co.uk stops both, and an installation that turned telemetry off before 2.7.0 sends neither.
The receiving service is open source in telemetry/, so what is stored can be checked rather than taken on trust. See docs/TELEMETRY.md for the full disclosure.
If you discover a vulnerability, follow the security policy.
Nojoin is licensed under the GNU Affero General Public License v3.0 (AGPLv3).
Recording laws vary by jurisdiction. Review the legal disclaimer before using Nojoin.
If Nojoin is useful, please consider buying me a coffee.