diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f6e69dd6..f2f196db 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -52,6 +52,11 @@ pnpm dev # API server on :3005, Vite dev server on :5173 You can run the two halves separately with `pnpm dev:server` and `pnpm dev:web`. +Working on the **desktop** app additionally needs a C++ toolchain (`make`, `g++`, +`python3`) to build the native `uiohook-napi` module — on Debian/Ubuntu: +`sudo apt install build-essential python3`. Without it `pnpm install` just warns +and skips that one rebuild; the server and web client are unaffected. + Voice and video are optional and require a LiveKit server; see the README for configuration. Text, federation, uploads, and everything else run fully without it. diff --git a/README.md b/README.md index 2a9630f5..79b9754b 100644 --- a/README.md +++ b/README.md @@ -268,6 +268,14 @@ cp .env.example .env # set JWT_SECRET (openssl rand -hex 32) pnpm dev # API server on :3005, Vite dev server on :5173 ``` +> **Server/web only?** `pnpm install` also builds the desktop app's native +> keyboard-hook module (`uiohook-napi`), which needs a C++ toolchain +> (`make`, `g++`, `python3`). If those are missing it now **warns and continues** — +> the server and web client don't need it. Install a build toolchain +> (Debian/Ubuntu: `sudo apt install build-essential python3`) only if you're +> building the **desktop** app. And to *self-host*, use the Docker installer +> above — it never touches the desktop package. + Run the halves separately if you prefer: ```bash diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 106e859f..70c152fa 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -18,7 +18,7 @@ "clean": "rm -rf dist dist-electron", "test": "vitest run", "test:watch": "vitest", - "postinstall": "electron-rebuild -f -w uiohook-napi" + "postinstall": "electron-rebuild -f -w uiohook-napi || node -e \"console.warn('[desktop] uiohook-napi native rebuild skipped - needs build tools (make, g++, python3). Only required to RUN the desktop app; the server, web client, and Docker image are unaffected.')\"" }, "dependencies": { "electron-updater": "^6.3.0",