Skip to content

Bemmoly - #2453

Draft
shrijayan wants to merge 1 commit into
community-scripts:mainfrom
shrijayan:bemmoly
Draft

Bemmoly#2453
shrijayan wants to merge 1 commit into
community-scripts:mainfrom
shrijayan:bemmoly

Conversation

@shrijayan

Copy link
Copy Markdown
Contributor

Draft: not yet tested on a Proxmox VE or Incus host. It will move to ready for review after a real install and update run, and after a script request in Discussions.

✍️ Description

Adds Bemmoly (bemmoly/bemmoly), a self-hosted, MIT-licensed issue tracker and team wiki: projects, Kanban/Scrum boards, sprints and roadmap next to collaborative docs, with Jira/Confluence import, OIDC/SAML SSO, SCIM, webhooks and an MCP server.

I'm the core developer of Bemmoly. I've used and admired community-scripts for a long time, and having Bemmoly here has been a goal from the start. I know it doesn't meet the age and star requirements yet (see below), and I'm asking for a chance anyway: Bemmoly ships releases every week and has a clear public roadmap with more products coming into the same app. If I ever stop shipping, I'll open the PR to remove this script myself.

Install source: upstream's own deploy/docker/Dockerfile and entrypoint, translated to a bare-metal install. No Docker.

  • Node 24 (engines.node), pnpm pinned from packageManager
  • PostgreSQL 18 (changesets use uuidv7()) with pgvector; extensions vector and pg_trgm
  • Build: pnpm install --frozen-lockfile + pnpm --filter @bemmoly/web build
  • Migrations: node src/cli.ts db update (what the image entrypoint runs)
  • Service: node --import @bemmoly/core/telemetry/preload src/server.ts on port 8080
  • Config in /opt/bemmoly_data/.env with a generated BEMMOLY_SECRET_KEY (32-byte base64) and backup passphrase. Data and backups live in /opt/bemmoly_data, outside the directory an update replaces.
  • Updates: check_for_gh_release + fetch_and_deploy_gh_release (tarball), rebuild, migrate

🔗 Related PR / Issue

Link: (script request discussion, to be added)

✅ Prerequisites (X in brackets)

  • Self-review completed – Code follows project standards.
  • Tested thoroughly – Changes work as expected.
  • No breaking changes – Existing functionality remains intact.
  • No security risks – No hardcoded secrets, unnecessary privilege escalations, or permission issues.

🏗️ arm64 Support (X in brackets)

  • arm64 supported - Tested and supported on arm64.
  • arm64 not tested - Assumed to work on arm64, but testing has not been done.
  • arm64 not supported - Confirmed upstream dependencies or binaries do not support arm64.

🖥️ Tested on (X in brackets)

  • Proxmox VE – Created on a Proxmox VE host and the app works.
  • Incus – Created on an Incus host and the app works.

🛠️ Type of Change (X in brackets)

  • 🐞 Bug fix – Resolves an issue without breaking functionality.
  • ✨ New feature – Adds new, non-breaking functionality.
  • 💥 Breaking change – Alters existing functionality in a way that may require updates.
  • 🆕 New script – A fully functional and tested script or script set.
  • 🌍 Website update – Changes to website-related JSON files or metadata.
  • 🔧 Refactoring / Code Cleanup – Improves readability or maintainability without changing functionality.
  • 📝 Documentation update – Changes to README, AppName.md, CONTRIBUTING.md, or other docs.

🔍 Code & Security Review (X in brackets)

  • Follows CODE-AUDIT.md & CONTRIBUTING.md guidelines
  • Uses correct script structure (AppName.sh, AppName-install.sh, AppName.json)
  • No hardcoded credentials
  • No Docker / Docker Compose – The application is installed bare-metal; Docker is not used.
  • No git pull – Updates use fetch_and_deploy_gh_release, fetch_and_deploy_codeberg_release, fetch_and_deploy_gl_release, or fetch_and_deploy_from_url instead of git pull.

🤖 AI Assistance (X in brackets)

  • No AI used – Scripts were written without AI assistance.
  • AI was used – I confirm the scripts were built using AGENTS.md and .github/agents/pve-script-creator.agent.md as guidance, and the output has been reviewed and corrected to match those guidelines.

Claude Opus 5.5 (Claude Code), low reasoning effort, drafted the three files from Bemmoly's Dockerfile and entrypoint, modelled on 4gaboards. I'm reviewing them and will test on Proxmox VE before marking this ready.


📋 Additional Information (optional)

The container needs about 4 GB of RAM because the web build runs inside it. Bemmoly itself runs comfortably in 2 GB.


📦 Application Requirements (for new scripts)

⚠️ Do not remove this section.
It is used by automated PR validation checks.
If this PR is not a new script submission, leave the checkboxes unchecked.

Required for 🆕 New script submissions.
Pull requests that do not meet these requirements may be closed without review.

  • The application is at least 6 months old (repository created October 2026)
  • The application is actively maintained (weekly releases, latest v1.3.0)
  • The application has 600+ GitHub stars (not yet)
  • Official release tarballs are published
  • I understand that not all scripts will be accepted due to various reasons and criteria by the community-scripts ORG

🌐 Source

https://github.com/bemmoly/bemmoly · https://bemmoly.com

@github-actions

Copy link
Copy Markdown
Contributor

Try this script

ct/bemmoly.sh, run in the Proxmox VE shell or on an Incus host:

COMMUNITY_SCRIPTS_URL=https://raw.githubusercontent.com/shrijayan/DevScripts/bemmoly \
bash -c "$(curl -fsSL https://raw.githubusercontent.com/shrijayan/DevScripts/bemmoly/ct/bemmoly.sh)"

COMMUNITY_SCRIPTS_URL is not optional for ct/. Fetching the ct/ script from a
branch does not tell the engine where that branch is — with bash -c "$(curl …)"
there is no file on disk for the scripts root to be derived from, so it would fall
back to upstream main and look for the install script there.

Against a core branch as well

Add COMMUNITY_SCRIPTS_CORE_URL=https://raw.githubusercontent.com/OWNER/core/BRANCH
to test an engine change at the same time. The two resolve independently.

Useful flags while testing

dev_mode=net logs every fetch with status and duration, so you can confirm the
branch is really being used. dev_mode=keep stops a failed build from deleting
the container along with the evidence.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Not ready for review yet

@shrijayan, this pull request is missing the following:

  • The application is at least 6 months old
  • The application has 600+ GitHub stars

Edit the PR description to fix it — no new PR needed. This check runs again on every edit and clears itself once everything is in place.

Until then the PR is marked stale and will be closed in 7 days.


@community-scripts/contributor please take a look: close it, comment, or set keep-open to keep it.

@github-actions github-actions Bot added requirements missing PR description misses template items; closes after 7 days unless fixed or keep-open stale new script labels Oct 21, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new script requirements missing PR description misses template items; closes after 7 days unless fixed or keep-open stale

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant