Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

serverkit-gpu

Live NVIDIA GPU metrics for ServerKit — utilization, VRAM, temperature, power draw, fan speed, driver version, and the running GPU compute processes (with best-effort container resolution). Adds a GPU Monitor page (/gpu) to the panel; the sidebar entry only appears on hosts where nvidia-smi is available.

Installs from the ServerKit Marketplace (registry: serverkit-extensions).

Repository layout

plugin.json               # extension manifest (routes, nav, SDK + panel gates)
backend/                  # Flask blueprint + nvidia-smi parsing service
frontend/                 # runtime-ESM bundle source (vite lib build)
  runtime-entry.jsx       #   entry: injects inline CSS, exports GpuMonitorPage
  components/             #   GpuMonitor page + local EmptyState/Button stand-ins
  styles/gpu.css          #   page styles (host CSS custom properties)
scripts/build-zip.*       # release packaging (dist/serverkit-gpu-<version>.zip)
tests/                    # backend tests (run from a panel checkout — see tests/README.md)

Development

The frontend is a runtime-ESM extension: it builds to a single frontend/dist/index.mjs that the panel blob-imports at runtime — no panel rebuild needed. React, react-router and serverkit-sdk are externalized and resolved to the panel's own singletons via its import map; everything else (lucide-react icons) is bundled.

cd frontend
npm install
npm run build        # writes frontend/dist/index.mjs

Load it into a dev panel with Marketplace → Plugins → Upload Zip, or:

./scripts/build-zip.sh    # or scripts/build-zip.ps1 on Windows
# → dist/serverkit-gpu-<version>.zip

For API details and the contribution model see docs/EXTENSIONS.md in the main repo.

Release

Fully automated — no manual zips:

  1. Bump version in plugin.json and push to main (or push a vX.Y.Z tag).
  2. The Create Release workflow builds the bundle, zips it, creates the GitHub release with the zip attached, then downloads the published asset and upserts this extension's entry (version, URL, sha256) in serverkit-extensions.

One-time setup: add a REGISTRY_TOKEN secret (fine-grained PAT with contents:write on serverkit-extensions) so the registry sync can push. Without it the release still ships; only the registry update skips.

License

MIT — see LICENSE.

About

No description or website provided.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages