Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Web UI

hoike includes a React + PatternFly 6 web dashboard for monitoring and managing the OCSP responder. The UI is served at /ui/ alongside the OCSP protocol endpoints.

Pages

PageDescription
DashboardServer mode, uptime, total entries, bundle count. Per-CA status table with rotation indicators.
BundlesBundle inventory table. Reload button. Detail view per CA. Inspect page for uploaded bundles.
CAsPer-CA list with algorithm, nonce policy, cert expiry, rotation status. Detail view with config and action buttons.
SigningTrigger signing operations (combined/signer mode only). Per-CA sign buttons.
QueryOCSP query form with serial, issuer hashes, and algorithm preference. Displays parsed results.
GossipCluster membership status (when gossip is enabled).
ConfigRead-only view of the running configuration (passwords and keys redacted).

Setup

Development mode (disk serving)

Build the UI and configure hoike to serve from disk:

cd webui
npm install
npm run build    # Produces webui/dist/

Add to hoike.toml:

[server.webui]
static_dir = "/path/to/hoike/webui/dist"

For hot-reload during development:

cd webui
npm run dev      # Starts Vite on http://localhost:9000

The Vite dev server proxies /api/admin to http://localhost:2560.

Production mode (embedded binary)

Build with the embed-webui feature to bake the UI into the binary:

cd webui && npm run build
cd .. && cargo build --release --features embed-webui

Add [server.webui] to your config (without static_dir) to enable the embedded UI:

[server.webui]
# No static_dir — served from embedded binary

Authentication

The webui requires [server.admin] to be configured with at least one operator. The login page authenticates against the admin API and stores a session token in the browser’s sessionStorage.

Role-based access controls which pages and actions are available:

RoleVisible pagesActions
AdministratorAllSign, rotate, reload, view config
OperatorAll except config detailsSign, reload
ViewerDashboard, Bundles, CAs, Query, GossipRead-only

Technology stack

  • React 19 + TypeScript
  • PatternFly 6 (Red Hat’s design system)
  • Vite 6 (build tool)
  • react-router-dom 7 (client-side routing)
  • Pure React state management (useState, useEffect, useContext)