Cremind
Contributing & Maintenance

Installing via the dev channel

Run the real installer scripts against your local checkout to test install changes or bring up the full Docker bundle.

The two-terminal dev loop is the fastest way to iterate on app/ and ui/. But sometimes you need to exercise the actual installer scripts users will run — to test changes to install/install.sh or install/install.ps1, or to bring up the full Docker bundle (Postgres + Qdrant) against your checkout. That's what the dev channel is for.

Installing from your checkout

Pass --channel dev (Linux/macOS) or -Channel dev (Windows):

bash install/install.sh --channel dev --deployment local
.\install\install.ps1 -Channel dev -Deployment local

The dev channel skips PyPI and runs pip install -e . against your checkout, so your Python edits are live without a reinstall. Templates (local.env, docker-compose.yml.tmpl, …) come from the checkout's install/templates/, not from GitHub. The shared catalog (deployment and mode labels, the mode-rule visibility table) is read from install/_catalog.sh (or _catalog.ps1) in the checkout.

Editing the install catalog

install/_catalog.sh and _catalog.ps1 are generated from install/catalog.toml by install/scripts/build_catalog.py. When you edit catalog.toml, regenerate and commit both the master and the generated files:

python install/scripts/build_catalog.py

CI runs python install/scripts/build_catalog.py --check; the build fails when the committed generated includes diverge from the master.

Docker mode against your checkout

--channel dev --mode docker works against your checkout. The installer emits a docker-compose.override.yml that points the build context at the checkout, swaps the pip install for -e /src, and bind-mounts the checkout into the container:

bash install/install.sh --channel dev --mode docker --deployment local

Host edits to app/ show up after docker compose restart cremind.

Caveats

Build the SPA first

The setup wizard at http://localhost:1515 needs app/static/ui/ populated. Run bash scripts/build_ui.sh once before --channel dev so the SPA listener comes up.

  • --channel dev requires running the script from a checkout. Piping it via curl | bash (with no file on disk) is rejected — the script needs the surrounding repo to find templates and the catalog.
  • Don't run cremind upgrade from a dev install. CREMIND_UPGRADE_CHANNEL is intentionally not written to .env in dev channel. Pull from git instead.

Other channels

The dev channel is for installing your local checkout. The test channel installs published dev releases from Test PyPI, and the production channel installs from PyPI. The release pipeline uses the test channel to validate a change before it merges — see Releasing and Versioning for how the three channels relate.

On this page