From ccfd9992c6fca4e37af7fb195c352db18a0ca41a Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Mon, 22 Jun 2026 20:54:36 +0200 Subject: [PATCH] Improve README and run.sh by detailing the full dependency bootstrap process and adding a dedicated bootstrap-only execution mode. --- README.md | 13 +++++++++++-- run.sh | 5 +++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3e1337a..e20a065 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,6 @@ Packaged Tauri builds launch the bundled backend with app-managed data paths so Requirements: -- Python 3.13 - Ollama running locally - Optional: SearXNG on `http://127.0.0.1:8888` @@ -50,7 +49,17 @@ Quick start: ./run.sh ``` -This creates or refreshes `backend/.venv`, installs Python dependencies, installs npm dependencies, and starts the dev stack. If Node.js 18+ and npm are missing, `run.sh` downloads the current Node.js 22 LTS binary for Linux or macOS into the user cache and verifies its SHA-256 checksum. Set `HEIMGEIST_NODE_MAJOR` or `HEIMGEIST_NODE_DIR` to override that bootstrap. +This bootstraps the development environment and starts the dev stack. On a fresh machine it installs: + +- the native Tauri prerequisites through `pacman` on Arch/SteamOS or `apt-get` on Debian/Ubuntu +- stable Rust and Cargo through `rustup` +- Python 3.13 through `uv` +- Node.js 22 LTS and npm from the official Node.js binaries +- the project's Python and npm dependencies + +SteamOS temporarily requires a writable root filesystem while native packages are installed. `run.sh` disables the read-only mode only around `pacman`, restores it afterward, and may ask for the user's sudo password. SteamOS system updates can remove manually installed system packages; rerunning `./run.sh` restores any missing prerequisites. + +Downloads and package installation are skipped when usable dependencies already exist. Node.js archives are verified with their published SHA-256 checksum. Use `HEIMGEIST_BOOTSTRAP_ONLY=1 ./run.sh` to install/check dependencies without launching Heimgeist, or `HEIMGEIST_SKIP_SYSTEM_DEPS=1 ./run.sh` when native Tauri dependencies are managed externally. `HEIMGEIST_NODE_MAJOR`, `HEIMGEIST_NODE_DIR`, `HEIMGEIST_TOOL_BIN_DIR`, `CARGO_HOME`, `RUSTUP_HOME`, and `PYTHON_BIN` provide explicit runtime overrides. On Linux `x86_64`, `run.sh` now selects a PyTorch flavor before installing `openai-whisper`: diff --git a/run.sh b/run.sh index 3347477..b2507a4 100755 --- a/run.sh +++ b/run.sh @@ -644,4 +644,9 @@ if [ "$NEED_NODE_DEPS_INSTALL" -eq 1 ]; then write_state "$NODE_DEPS_STATE_FILE" package.json package-lock.json fi +if [ "$HEIMGEIST_BOOTSTRAP_ONLY" = "1" ]; then + echo "Heimgeist development dependencies are ready." + exit 0 +fi + npm run dev