Your work. Your platform.
Live demo · Website · Install guide · Changelog · Discussions
Bemmoly is self-hosted issues and docs for your whole team. Plan sprints on a board, write the spec next to the issue it explains, and, if you want it, let AI summarise and answer from everything your team has written. It all runs on your own server: your data stays in your Postgres, behind your login, under your backups.
It is one app image and one Postgres, installed with one command and updated from inside the app.
- 100% open source. MIT licensed. Every feature is in this repository and in the image you install. There is no open core, no enterprise edition and no licence key.
- No subscription. No plans, no per-seat fee, no user limit. Your only cost is the server you run it on.
- No in-app purchases. Nothing in the app is locked or upsold. The Buy Me a Coffee button on this repository is an optional way to support the project, and it unlocks nothing.
In your browser, no install: bemmoly.com/demo runs the real app on sample data, entirely in your browser, with AI on. Nothing is sent anywhere and a reload starts over.
On your own server: on a fresh Linux VM with a domain pointing at it, run
curl -fsSL https://get.bemmoly.com | shAbout five minutes later the installer prints your address; open it to create the first admin.
Prefer to read it first? curl -fsSL https://get.bemmoly.com -o install.sh && less install.sh.
You need a VM with at least 1 vCPU and 2 GB of memory (2 vCPU and 4 GB for about 200 people), root or sudo, 10 GB of free disk, ports 80 and 443, and a domain pointing at the VM. Ubuntu is the main target; the installer also supports Debian, Fedora and Amazon Linux. It sets up Docker, Postgres, HTTPS, backups and updates, checks the requirements itself and prints the fix for anything missing. Docker Compose by hand and an existing Postgres are covered at bemmoly.com/self-hosting.
From the live demo, in the light and dark themes.
- The product sends nothing to us. There is no telemetry. The daily check for new releases is off until an admin turns it on in Settings, and then it only downloads the release manifest from GitHub. With AI off, the server makes no AI-related request to anyone. Everything else that leaves your server is what you configure: your mail server, a backup bucket, your AI provider, the certificate authority for HTTPS, and a tracing collector of your own.
- The website and the demo collect nothing. bemmoly.com serves no analytics, no cookies and no third-party scripts (its Content-Security-Policy allows only its own files), and the demo keeps its sample data in your browser's memory.
A TypeScript monorepo: a Fastify host boots the kernel (identity, permissions, settings, notifications, jobs, realtime, search, the AI runtime) and loads each enabled module, and a React shell loads one chunk per module. Postgres is the only datastore, holding the data, the job queue, full-text search and vector embeddings. Modules talk to each other only through kernel registries and events, so each can be turned off without breaking the rest.
- Technical design: docs/tech-design.html (open in a browser)
- Design system: docs/design/system
- Decisions since the design: docs/adr
Contributions are welcome, from people and from AI agents alike. Start with CONTRIBUTING.md, which points at good first issues, and AGENTS.md, the contract for every change. You need Node 24, pnpm 11 and Docker:
nvm use # Node 24, from .nvmrc
corepack enable # or install pnpm 11
pnpm i
pnpm dev # Postgres 18 in Docker, server on :8080, web on :5173Open http://localhost:5173. A devcontainer (and Codespaces) has all of it ready.
- Questions and ideas: Discussions; bugs: issues. SUPPORT.md says what goes where.
- Security problems: privately, through GitHub's private vulnerability reporting, as SECURITY.md describes. Please do not open a public issue.
- Everyone taking part follows the Code of Conduct.
MIT. Free to use, change and self-host, for any number of people, forever.