self-hosted · web dashboard · v1.0.0

gGUI

A web dashboard for the gbuild toolchain. Browse logs, trigger builds, watch live output — all from your browser. Self-hosted, one-time payment.

Get gGUI — $20 See features
http://localhost:7000
gGUI
Logs
Build
Config
jokerz  ·  sign out
Log Files
myproject
2025-05-14 14:30
myproject
2025-05-13 09:12
backend
2025-05-12 22:47
backend
2025-05-12 18:05
libutil
2025-05-11 11:30
libutil
2025-05-10 08:19
20250514_143022_myproject.log 2.1 KB delete
[INFO ] gbuild started for project: myproject [INFO ] Logging to: ~/.local/log/gbuild/... [INFO ] Repo already cloned — pulling latest [OK ] Repository updated. [INFO ] Selected target: all [INFO ] Building 'myproject' target 'all' ... gcc -o bin/myproject src/main.c src/util.c -lm gcc -o bin/myproject src/config.c -lm [OK ] gbuild complete.
scroll
📋

log browser

All ~/.local/log/gbuild/ log files listed in the sidebar, sorted newest-first with colour-coded status dots. Click to open, delete when done.

🎨

colourised output

[OK] lines in green, [INFO] in cyan, errors in red — exactly like your terminal, rendered in the browser.

⚙️

trigger builds

Enter a project name and make target, click Run. gGUI calls gbuild on the server and streams output back in real time.

live streaming

Build output streams to the browser over WebSocket as it is produced. No polling, no page reloads. Auto-scrolls to the bottom.

🔀

multi-build sidebar

Multiple builds can run at once. The sidebar shows all active builds — click any to attach and watch its live output stream.

🔐

authentication

Login page with session cookies (8h TTL). Users stored in ~/.ggui_users with salted SHA-256 hashes. Add users with ggui-adduser.

🔧

config inspector

The Config panel reads ~/.gconfig at runtime and shows your Git URL, user, and log directory. Auth fields are never sent to the browser.

📦

zero npm dependencies

Built entirely on Node.js built-ins: http, crypto, fs, child_process. No npm install needed. Ships as a single .deb.

🖥

systemd service

Includes a parameterised ggui@.service unit. Enable with one command, hardened with NoNewPrivileges and ProtectSystem.

Simple pricing. Own it forever.

One payment. No subscriptions, no seats, no expiry. Install on as many of your own servers as you like.

✦ lifetime licence
gGUI — Self-Hosted
The full package. Everything included, yours to keep.
$ 20 one-time
No recurring fees. Pay once, run forever.
  • Full source — server.js, public/, systemd service
  • Debian package (.deb) for easy install
  • Log browser with colourised viewer & delete
  • Live build triggering with WebSocket streaming
  • Multi-build sidebar — attach to any running build
  • Login page & session auth (ggui-adduser)
  • Config inspector reads ~/.gconfig at runtime
  • Works with gbuild + gconfig out of the box
  • All future updates included
Get gGUI for $20 →
Payment by invoice · reply with your preferred method

What's inside the box.


componentdescription
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 variabledescription
GGUI_PORT Port to listen on (default: 7000)
GGUI_SECRET Session secret — set for persistence across restarts
quick start
# Install $ sudo dpkg -i ggui_1.0.0_all.deb # Create your user $ ggui-adduser jokerz hunter2 # Start $ ggui-server # → http://localhost:7000

as a systemd service
$ systemctl enable --now ggui@jokerz $ systemctl status ggui@jokerz

requirements
Node.js ≥ 18 gbuild in PATH (to trigger builds) gconfig ~/.gconfig configured OS Debian / Ubuntu (any arch)

Up and running in minutes.

Debian / Ubuntu · x86_64 & arm64 · gGUI 1.0.0 · requires Node.js ≥ 18

02 sudo dpkg -i ggui_1.0.0_all.deb
03 ggui-adduser <username> <password>
04 ggui-server → http://localhost:7000