1.0.0 Bemmoly 1.0

Your work. Your platform.

Issues, boards and docs for your whole company, on a server you own.

curl -fsSL https://get.bemmoly.com | sh

You run it on a Linux server.

The sprint board on a phone in the live demo, with the sprint’s progress and its columns.
The deal

Open. Free. Nothing to buy.

Bemmoly is not a trial of something bigger. What you install is the whole product, and it stays that way.

100% open source

MIT licensed. Every feature is in the public repository: no open core, no enterprise edition, no private modules.

LICENSE MIT, “Bemmoly contributors” github.com/bemmoly/bemmoly every module and the image you install are built from it

No subscription

No subscription, plans, tiers, seat limits or trial clock. Free forever, with nothing to upgrade to. Your only bill is the server.

Settings › Members “no seat limit, self-hosted” A 2 vCPU, 4 GB VM roughly $5–25 a month

No in-app purchases

No paywalled features, no upsell banners, no “contact sales”. Every switch in Settings is yours to flip.

No licence key or plan check anywhere in the code Modules turned on by your admin, not a payment
And it stays yours: No account with us No telemetry Release check off until you turn it on Pages export as Markdown or HTML How we know
What it is

One place for the work and the words about it.

Issues and sprints next to the specs, RFCs and runbooks they come from. One sidebar, one search, one set of permissions, on your server.

Work Available

Plan the sprint. Run the board.

  • Scrum or Kanban, per project, with epics as swimlanes and WIP limits
  • Your workflow, drawn in a visual editor, with conditions and post-actions
  • Find anything, with a query language, saved filters and the command palette
  • Configure, then lock, org defaults, project overrides and custom roles
  • A roadmap, epics on a timeline, with a forecast from your team’s own pace
  • Automation rules, a trigger, conditions in LQL, then the actions to take
Open the board in the demo
The Platform team’s sprint board in the live demo: one sidebar for Work and Docs, columns by status with counts and a WIP limit, and epics as swimlanes.
Docs Available

Write it down where the work lives.

  • Write together, live, with named cursors; offline edits merge on return
  • Comments that stay put, they follow their words through later edits
  • History you can trust, compare any two versions block by block, restore one
  • Issues inside the page, chips and tables with each issue’s live status
Open a page in the demo
An RFC page in Docs in the live demo, in its space’s page tree, with the issues it links to and their live status.
AI Available, optional

AI is here, and stays optional.

It is off until an admin turns it on. Then bring a provider from the models.dev catalog or a model on your own network; Settings decides what it may read and change. Everything else on this page works without it.

  • Summaries that cite their sources, on issues, pages, a sprint at risk and your morning brief
  • Ask your docs, answers with numbered citations, from pages you can open
  • Help in the editor, nothing reaches a shared page until someone accepts it
  • Plans you confirm, from ⌘K, each change checked against your permissions
An issue’s AI summary in the live demo: four sentences, each citing the comment, issue or page it came from, with Not useful beside it.
An issue’s summary in the live demo , where AI is on. Lilac on this site means AI, and only AI.
Self-hosted

Yours to run. Yours to keep.

Your issues and pages live in your Postgres, on your machine. Here is what that means in practice, with the file that proves each line.

Install

One command, then your browser.

Run it on a fresh Linux VM with at least 1 vCPU and 2 GB and a domain pointing at it. Already run something? Pick it below; the image, backups and upgrades are the same everywhere.

Fresh VM

On the VM, as root or with sudo
curl -fsSL https://get.bemmoly.com | sh

Installs Docker if it is missing, then Postgres 18, HTTPS, nightly backups and the updater.

Docker Compose

1. Put the files in /var/bemmoly
git clone --depth 1 --branch v1.0.0 https://github.com/bemmoly/bemmoly sudo install -d -m 755 /var/bemmoly sudo cp bemmoly/deploy/compose/docker-compose.yml bemmoly/deploy/compose/Caddyfile /var/bemmoly/ sudo install -m 600 bemmoly/deploy/compose/env.template /var/bemmoly/.env cd /var/bemmoly sudo install -d -m 750 -o 10001 -g 10001 data backups sudo install -d -m 755 pg sudo install -d -m 700 caddy caddy/data caddy/config
2. Fill in .env
sudoedit /var/bemmoly/.env

Replace every @…@ placeholder: the version, your domain, the profiles to run and the secrets. The Docker Compose guide lists each value.

3. Start it, once .env is filled in
cd /var/bemmoly sudo docker compose up -d sudo docker compose ps

The same files the installer writes. The bemmoly command comes only with the one-command install.

Your own Postgres

On the VM, with your database’s address
curl -fsSL https://get.bemmoly.com | sh -s -- \ --database-url postgres://bemmoly:[email protected]:5432/bemmoly_db

Replace PASSWORD first. Your database must be Postgres 18 with the pgvector extension.

Prefer to read it first? Download it, read it, then run it:

Download, then read
curl -fsSL https://get.bemmoly.com -o install.sh && less install.sh

What the installer does

  1. 1
    Checks the machine system, memory, disk, ports and DNS, and prints the fix for anything missing
  2. 2
    Installs what is missing Docker Engine and the Compose plugin, or uses yours
  3. 3
    Writes /var/bemmoly the Compose file, a .env with fresh secrets, data and backups
  4. 4
    Starts and secures it Postgres, the app and a certificate for your domain
  5. 5
    Prints your address open it to create the first admin
The full install guide
Switching

Bring what you have. Take it with you.

Start with the projects and pages you already have: an admin sees what will come across before anything is written. And if you ever leave, your pages leave with you, in formats anything can read.

Configure without code

Admins set it up; teams adjust it.

Workflows

statuses and transitions per project

Issue types and fields

org defaults, project overrides

Roles

five built in, plus your own, with org locks

Themes

five themes in light and dark, your brand colour and your logo

Connect what you use

Sign-in, events and code, in Settings.

Single sign-on

OpenID Connect or SAML, and SCIM 2.0

Webhooks

signed with HMAC-SHA256, with a delivery log

Code hosts

GitHub in one click, or GitLab: pull requests on the issue

An MCP server

AI clients work as you, with your permissions

Open source

Built in the open.

The code, the roadmap, the architecture decisions and the design reviews behind this page are all in one public repository. Nothing is decided somewhere you can’t read.

bemmoly/bemmoly Issues and docs you host yourself
Star
Licence
MIT
Latest release
1.0.0
Stars
16

Recent releases

Changelog
  1. 1.0.0 Bemmoly 1.0

    Work, Docs and optional AI, with imports, SSO, webhooks, code hosts and a Helm chart

  2. 0.13.1 A roadmap, webhooks and code links

    A roadmap view, outgoing webhooks, code host links, and tested Kubernetes and Terraform paths

  3. 0.12.0 Bemmoly 0.12.0

    The host `bemmoly` command now follows the release it manages.

Who maintains it

An independent open-source project and its contributors, in public on GitHub. Changes land through pull requests with tests; each release is tagged, its images are signed, and it is listed in the changelog, also as an RSS feed.

Questions

The honest answers

How is it free?

Bemmoly is software you run, not a service we run for you, so there is nothing for us to meter or charge for. It is MIT licensed: you may use, change and share it, at work, for any number of people. Your only cost is the server; a 2 vCPU, 4 GB VM, the size we measured, lists from €5.49 a month at Hetzner. Sponsoring the project on Buy Me a Coffee is optional: it supports development and unlocks nothing, because every feature is in the free product. Server sizing and prices.

What’s the catch?

You run it. HTTPS, backups and updates are built in, but the machine is yours to keep alive, and help comes from GitHub issues rather than a support contract. Work, Docs, optional AI, imports, single sign-on, webhooks and automation, a roadmap view, code host links, and Kubernetes and Terraform ship today; an installable app is coming soon, and every page of this site says which is which.

Who maintains it?

An independent open-source project and its contributors, in public. The code, the plans and the design decisions are in the public repository, and anyone can open an issue or a pull request. Changes land through pull requests with tests, and each release is tagged, signed and listed in the changelog.

Is there a paid or enterprise edition?

No. There is no open core, no enterprise tier and no licence key. Every feature is in the repository and in the image you install.

Does it send anything to you?

No. There is no telemetry, and the check for new releases is off until an admin turns it on. Outbound traffic is only what you configure: your mail server, a backup bucket, the certificate authority for HTTPS, and tracing only if you point it at a collector of your own.

What do I need to run it?

A Linux VM with at least 1 vCPU and 2 GB (2 vCPU and 4 GB is the size we plan for about 200 people, an estimate until measured), 10 GB of free disk, a domain pointing at it, and ports 80 and 443 free. The installer supports Ubuntu 22.04 or later, Debian 12 or later, Fedora 40 or later and Amazon Linux 2023.

How do upgrades and backups work?

Backups run every night and are test-restored every week. Updating takes one click in Settings › Updates or one command: it backs up first, checks the signature and rolls back on its own if the app is not healthy within three minutes.

Do I need AI?

No. AI shipped in 0.5 and is off until an admin turns it on in Settings › AI and models. Bring your own provider from the models.dev catalog or a model on your own network: summaries with sources, answers from your docs, help in the editor and plans you confirm, all drawn in lilac. Everything else works without it.

Something else? Ask in GitHub issues.