Skip to content

Latest commit

 

History

36 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tritium GUI

A desktop client for tritium: browse and edit keys, see the cluster, over the Redis protocol with the node's password, TLS, and client-side encryption.

tritium-wails

What it does

  • Connect to any node by address and AUTH password, optionally over TLS verified against a CA bundle, and optionally with a 32-byte key so values are sealed before they leave the app (tritium.ParseKey: hex or base64). A node's own .env file fills address, password and CA in one go. Password and key stay in memory; the rest is remembered in ~/.config/tritium-wails/settings.json.
  • Keys — a pattern box pages through the keyspace with SCAN, listing each key's type and TTL and a "More" control for the next page; click one to load it into the editor. Get fills it, Set writes it (with a TTL), Delete removes it after a second click to confirm, and either refreshes the list. Enter gets, Ctrl+Enter sets. The { } toggle shows a JSON value indented; an unedited value goes back byte for byte, an edited one is written compact. A sorted set loads read-only, one score<TAB>member per line, and Set will not write a string over it. A missing or expired key says so on the status line; a sealed client refuses values it did not seal.
  • Cluster — the fleet as the connected node sees it, drawn as a ring: an edge for each seed a node dials (heavier when mutual, dashed to a node that is down, hollow for a seed that is not a member), the node you are on marked with a dot. Hover a node for its state, version, seeds, replicas (held ones flagged), last beat, connections and bytes moved; click to pin it, click empty space to let go. The card keeps one shape so rows compare across nodes, and sums the fleet up when nothing is selected. Under it, the fleet's event log for the last hour — attach, detach, hold, repair, stall, evict, resync, start — narrowed to the selected node. Refreshed every five seconds.
  • Log — what you did this session, errors in red.

With an env file remembered the app connects on launch. Disconnected, the Keys and Cluster panes sit blurred under a note; the log stays readable.

Nothing rendered comes through innerHTML: values come from a store anyone with the password can write to.

Development

Go 1.26 and Node. The frontend is plain JavaScript built by Vite; the app is Wails v2, so a Linux build needs GTK 3 and WebKitGTK 4.1 headers (on an immutable desktop, a Fedora distrobox with gcc pkg-config gtk3-devel webkit2gtk4.1-devel golang does it, and the binary runs on the host).

cd frontend && npm install && npm run build && cd ..
go build -tags desktop,production,webkit2_41 -ldflags "-s -w" -o build/bin/tritium-wails .
./build/bin/tritium-wails

npm run dev in frontend/ opens the UI in a browser against a stand-in Go side with sample data (src/mock.js), for layout work without a node; wails dev works too when the Wails CLI is installed. The Go bindings in frontend/wailsjs/go mirror app.go; regenerate them with wails generate module after changing the App's methods, or edit them by hand — they are one line each.

About

Wails client for interacting with tritium nodes

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages