A self-hosted meeting transcription app that doesn't need to join your meetings as a bot.
See the codeSelf-Hosted Meeting Transcription and Notes
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.
Meeting Edge live meeting guidance with questions, missed points, and concept helpNojoin 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.
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)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_PASSWORD and 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 Chrome on Windows, Linux, or macOS for shared-audio recording, in another Chromium-family browser on Windows or Linux, or in Chrome on Android/iOS for microphone-only recording, then start a short test meeting. Other Chromium-family browsers on macOS are best-effort. See docs/CAPTURE.md for browser capture guidance.
Notes:
DATA_ENCRYPTION_KEY once and keep it stable to avoid losing access to previously encrypted calendar credentials after restores or host changes.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 one anonymous ping every six hours so it is possible to know how many deployments exist, which versions are in use, and which features are worth investing in. It contains a random install ID, the version, user and recording counts, and which features are switched on. It contains none of your meeting data — no audio, transcripts, notes, names, hostnames, or keys — and it is never sold.
It is on by default and can be turned off in Settings > Privacy, by setting NOJOIN_TELEMETRY_ENABLED=false in .env, or by blocking telemetry.nojoin.co.uk. On an existing installation nothing is sent until an administrator has seen the notice explaining it.
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.
Python
65.8%
TypeScript
31.9%
CSS
1.1%
A self-hosted meeting transcription app that doesn't need to join your meetings as a bot.
See the codeSelf-Hosted Meeting Transcription and Notes
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.
Meeting Edge live meeting guidance with questions, missed points, and concept helpNojoin 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.
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)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_PASSWORD and 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 Chrome on Windows, Linux, or macOS for shared-audio recording, in another Chromium-family browser on Windows or Linux, or in Chrome on Android/iOS for microphone-only recording, then start a short test meeting. Other Chromium-family browsers on macOS are best-effort. See docs/CAPTURE.md for browser capture guidance.
Notes:
DATA_ENCRYPTION_KEY once and keep it stable to avoid losing access to previously encrypted calendar credentials after restores or host changes.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 one anonymous ping every six hours so it is possible to know how many deployments exist, which versions are in use, and which features are worth investing in. It contains a random install ID, the version, user and recording counts, and which features are switched on. It contains none of your meeting data — no audio, transcripts, notes, names, hostnames, or keys — and it is never sold.
It is on by default and can be turned off in Settings > Privacy, by setting NOJOIN_TELEMETRY_ENABLED=false in .env, or by blocking telemetry.nojoin.co.uk. On an existing installation nothing is sent until an administrator has seen the notice explaining it.
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.
Python
65.8%
TypeScript
31.9%
CSS
1.1%