# Development **Requirements:** Rust (stable), Node 22. On Linux, also the Tauri deps: `libwebkit2gtk-4.1-dev librsvg2-dev libayatana-appindicator3-dev`. ## Panel ```bash cd panel/web && npm install && npm run build && cd ../.. ADMIN_PASSWORD=adminadmin cargo run -p scopenet-panel # http://localhost:8080 # UI hot reload: (cd panel/web && npm run dev) # http://localhost:5173, proxies /api ``` ## Launcher ```bash cd launcher && npm install npm run tauri dev # full desktop app npm run dev # UI only in a browser, with a mock backend (http://localhost:1420) ``` Browser mock scenarios: `?mock=setup`, `?mock=login`, `?mock=progress`. Build-time options (environment variables when building): `SCOPENET_PANEL_URL`, `SCOPENET_LOCK_PANEL=1`, `SCOPENET_REPO=owner/repo`. ## Tests ```bash cargo test --workspace # unit + panel API tests cargo test -p scopenet-core --test online -- --ignored # real installs (needs internet, ~2 GB) (cd panel/web && npm run check) && (cd launcher && npm run check) cargo fmt --all && cargo clippy --workspace --all-targets -- -D warnings ``` ## Releasing Push a tag `vX.Y.Z` or run the **Release** workflow. It stamps the version into `Cargo.toml` and `tauri.conf.json`, builds the NSIS installer on Windows, pushes the multi-arch panel image to GHCR, and publishes the release.