Skip to content
bemmolyPublic

About

Open-source, self-hosted alternative to Jira and Confluence: issue tracking, docs and AI for your whole company. One Docker image, one Postgres. No subscription, no in-app purchases.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

18 stars

Watchers

0 watching

Forks

Latest commit

 

History

1,971 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bemmoly: Your work. Your platform. Self-hosted issues and docs. 100% open source, no subscription, no in-app purchases.

Your work. Your platform.

Live demo · Website · Install guide · Changelog · Discussions

CI Security Licence: MIT Latest release Install: one command

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.

Three promises

  • 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.

What ships in 1.0

  • Work: projects with members, issues with types, custom fields and history, workflows with a visual editor, Kanban and Scrum boards, the backlog and sprints, LQL and saved filters, "My work" on Home, a roadmap of epics and versions on a timeline with a forecast from your team's own pace, and automation rules (a trigger, LQL conditions and actions, with a run log).
  • Docs: spaces and a page tree, a live collaborative editor with named cursors, revisions, comments, images uploaded by paste, drop or the / menu, issue links that show live status, Markdown folder import, and export to Markdown and HTML, or to PDF with the optional PDF renderer (otherwise through the browser's print view).
  • Imports: an admin opens Settings › Import (or the setup wizard's import step), picks Import from Jira, Import from Confluence or a CSV file, and sees what the site holds and how issue types, statuses and custom fields will land before anything is written. Jira Cloud and Data Center bring projects, issues, comments, attachments, boards and sprints into Work; Confluence Cloud, Data Center or a space export bring spaces, page trees, comments and attachments into Docs. The import runs in the background with live progress, can be cancelled, is safe to run again, and ends with a report of what was created, updated and skipped.
  • AI, optional: off until an admin turns it on, and nothing changes for a workspace that leaves it off. Bring any provider in the models.dev catalog, a gateway, or a model running on your own network. Then Bemmoly summarises issues, sprints and pages with the source of every claim, answers questions from your docs with citations, suggests and edits text in the doc editor, and turns a request in ⌘K into a plan of changes that runs only when you confirm it. Admins choose what content is sent, which spaces and projects are excluded, and a monthly budget.
  • Single sign-on and SCIM: any OpenID Connect provider through its discovery URL, or SAML 2.0 with signed assertions. People are created on first sign-in, linked by verified email and placed in roles and teams from their groups; an admin can require single sign-on for everyone, with break-glass admins kept. SCIM 2.0 at /scim/v2 creates, updates and deactivates people and keeps teams in step, with an audit row for every change.
  • An MCP server: point an AI desktop app, coding agent or IDE at /mcp (or /mcp/work, /mcp/docs) and it works in your workspace as you, with your permissions, rate limited and in the audit log.
  • Webhooks and code hosts: outgoing webhooks for issue, sprint and page events, signed with HMAC-SHA256, retried, and logged per delivery; GitHub (connected in one click, on github.com or Enterprise Server) and GitLab show the pull requests, branches and commits that name an issue in its Development section.
  • Your look: five themes, each in light and dark, your brand colour, and your own logo in the sidebar, on the sign-in page and in emails. Every screen is checked against WCAG 2.2 AA.
  • Ways to run it: the one-command installer on a VM, Docker Compose, your own Postgres, a Helm chart for Kubernetes, or the Terraform module that runs the installer on one VM.
  • The platform under them: a setup wizard, people, roles and a capability matrix, email and notifications, an Inbox, ⌘K search, an audit log, Prometheus metrics, automatic HTTPS, nightly verified backups, and one-click updates with automatic rollback.

Work and Docs ship in every install; an admin turns modules on in Settings › Modules. See the changelog for every release.

Try it

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 | sh

About 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.

Screenshots

From the live demo, in the light and dark themes.

The Platform team's sprint board: one sidebar for Work and Docs, columns by status with a WIP limit, epics as swimlanes An issue with its acceptance criteria and sub-issues, beside its fields An RFC page in Docs, in its space's page tree, with linked issues showing their live status

Status

Bemmoly 1.0 is out. 0.1.0 shipped in October 2026, and from 1.0 versions follow Semantic Versioning's usual rules. Every release runs against the previous minor's database and tolerates the previous minor's clients, so updates and rollbacks are safe within one minor, and security fixes ship as patches on the current minor (AGENTS.md §6). Every update backs up first and rolls back on its own if the app is not healthy.

Released Scope
0.2 Work: projects, issues, workflows, boards, backlog and sprints, filters
0.3 Docs: spaces, the page tree, a collaborative editor, revisions, comments
0.4 The redesign: one shell for Work and Docs, the logo's colours, drawn icons
0.5 AI, optional: summaries with sources, answers from your docs, editor and ⌘K plans
0.6 Image uploads in Docs, an MCP server, and an updater that updates itself
0.7 Imports from Jira, Confluence and CSV, and single sign-on with SCIM
0.8–0.12 Themes in light and dark, a workspace logo, a new sign-in, a Language setting
0.13 A roadmap, automation rules, webhooks, code hosts, Helm and Terraform
1.0 GitHub in one click, PDF export, WCAG 2.2 AA, and the 1.0 compatibility promise

Coming soon, not in the app yet:

  • An installable app (PWA) with web push notifications

The plan for each release is in section 24 of the technical design.

Privacy

  • 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.

Architecture

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.

Contributing

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 :5173

Open http://localhost:5173. A devcontainer (and Codespaces) has all of it ready.

Help and security

Licence

MIT. Free to use, change and self-host, for any number of people, forever.

About

Open-source, self-hosted alternative to Jira and Confluence: issue tracking, docs and AI for your whole company. One Docker image, one Postgres. No subscription, no in-app purchases.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

18 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages