Add single-command installation: install.sh, Makefile, frontend build hook

- hatch_build.py: custom hatchling build hook that compiles the React
  frontend (npm ci + build) when frontend/dist is missing or stale, so
  'uv tool install git+https://gitea.zephyre.one/Pakobbix/nvcurve.git'
  works as a single command
- install.sh: curl|bash installer (checks prerequisites, auto-installs uv,
  clones and installs)
- Makefile: dev targets (frontend, install, dev, test, clean)
- README/docs: document the one-liner, clone, and direct-git installs
This commit is contained in:
ARIA committed 2026-09-16 10:43:23 +02:00
1 parent d810c44478
commit a8462e696c
7 files changed
+287 -30

No files matched your search

+20 -11
View File
@@ -37,20 +37,28 @@ NVCurve brings MSI Afterburner-style per-point voltage-frequency curve control t
- **[uv](https://docs.astral.sh/uv/)** — Python package manager
- **Root/sudo access** (required for GPU hardware interactions)
## Installation from Source
## Installation
### One-liner
```bash
git clone <this-repo-url>.git
curl -fsSL https://gitea.zephyre.one/Pakobbix/nvcurve/raw/branch/main/install.sh | bash
```
The script checks prerequisites (installs `uv` if missing), clones the repo, and installs NVCurve — the React frontend is compiled automatically during the build.
### From a clone
```bash
git clone https://gitea.zephyre.one/Pakobbix/nvcurve.git
cd nvcurve
./install.sh
```
# Build the React frontend
cd frontend
npm install
npm run build
cd ..
### Direct from git (no clone, no script)
# Install the Python package (includes bundled frontend)
uv tool install .
```bash
uv tool install "git+https://gitea.zephyre.one/Pakobbix/nvcurve.git"
```
After installation, verify hardware compatibility:
@@ -200,10 +208,11 @@ The GPU key can be a UUID, `pci:XXXX`, or `idx:N` fallback. Find your GPU key wi
```bash
cd nvcurve
git pull
cd frontend && npm run build && cd ..
uv tool install .
uv tool install --force .
```
The frontend is rebuilt automatically if it is missing or older than the frontend sources. If you modified frontend code locally, run `make frontend` first (or `rm -rf frontend/dist`).
If running as a systemd service:
```bash