A web dashboard for the gbuild toolchain. Browse logs, trigger builds, watch live output — all from your browser. Self-hosted, one-time payment.
All ~/.local/log/gbuild/ log files listed in the sidebar, sorted newest-first with colour-coded status dots. Click to open, delete when done.
[OK] lines in green, [INFO] in cyan, errors in red — exactly like your terminal, rendered in the browser.
Enter a project name and make target, click Run. gGUI calls gbuild on the server and streams output back in real time.
Build output streams to the browser over WebSocket as it is produced. No polling, no page reloads. Auto-scrolls to the bottom.
Multiple builds can run at once. The sidebar shows all active builds — click any to attach and watch its live output stream.
Login page with session cookies (8h TTL). Users stored in ~/.ggui_users with salted SHA-256 hashes. Add users with ggui-adduser.
The Config panel reads ~/.gconfig at runtime and shows your Git URL, user, and log directory. Auth fields are never sent to the browser.
Built entirely on Node.js built-ins: http, crypto, fs, child_process. No npm install needed. Ships as a single .deb.
Includes a parameterised ggui@.service unit. Enable with one command, hardened with NoNewPrivileges and ProtectSystem.
One payment. No subscriptions, no seats, no expiry. Install on as many of your own servers as you like.
server.js, public/, systemd service.deb) for easy installggui-adduser)~/.gconfig at runtimegbuild + gconfig out of the box| component | description |
|---|---|
| server.js | HTTP server, WebSocket, routing, auth — pure Node.js built-ins |
| public/index.html | Full dashboard SPA — logs, build, config panels |
| public/login.html | Login page with session cookie auth |
| ggui-adduser.js | CLI tool to add/update users in ~/.ggui_users |
| ggui@.service | Parameterised systemd unit with hardening options |
| env variable | description |
|---|---|
| GGUI_PORT | Port to listen on (default: 7000) |
| GGUI_SECRET | Session secret — set for persistence across restarts |