renar v0.1.0
single-binary web console · rust

The machine,
rendered.

Renar is one static binary that turns a directory tree — then the terminals, tools, and services around it — into live, themed HTML. Accounts, per-root grants, and a hash-chained audit ledger are built in. Expiring share links and a WebDAV mount come free in every edition. No runtime dependencies, no CDN assets, no third-party crypto.

one ~13 MB binary shares + webdav mount 14 themes 120+ languages T0–T4 posture zero telemetry
https://renar.local/srv/notes 🔒 ml-kem hybrid

~/srv/notes

namekind
rendered by renar · read grant · op
ledger — hash-chained · every mutation
  • 07:42:05 read ok op /srv/notes/README.md #9f3c21ab

an interactive sketch of the interaction — the screenshots below are the real interface.

01

Not another dashboard

the thesis
A rendering engine, not a panel collection

Every web console you have used is a hand-built dashboard: each feature manually constructed, each one aging the day it ships. Renar is a rendering engine for the machine — the filesystem, the processes, the services, and any CLI utility become live, themed HTML through one engine and one plugin contract.

The terminal is the fallback

tmux-backed terminal sessions mean every tool is already renderable — vim, htop, anything — with zero per-tool work. Hand-built panels become opt-in refinements, never blockers. That one decision converts an impossible scope into a tractable one.

The security model is the product

A tool that edits files and runs processes is RCE by design. Renar does not amputate the dangerous rungs — it makes them accountable: capability grants, step-up re-proof, signed plugins, recorded sessions, a hash-chained ledger. Server-rendered HTML, no SPA, strict CSP — and every surface keeps a JSON twin for scripts.

02

The real interface

unretouched screenshots

These are screenshots of an actual Renar instance serving a demo tree — the default theme, the shipped binary, nothing staged. Renar's own UI is deliberately plain: server-rendered HTML that respects your browser's defaults, fast on anything that can open a page.

https://demo.renar.local/demo1440×900
A Renar directory listing page: a large serif 'demo' heading above a plain table of two folders and a readme file, each row carrying rename, move and delete buttons, with an upload row and a trash link beneath.
the listing — every action is a plain form POST, no script required
/demo/docs/readme.md
A markdown file rendered by Renar: the document body as styled HTML, with an edit form and a raw-bytes link available.
markdown, rendered server-side — the source one ?raw=1 away
/trash
The Renar trash page: deleted files listed with their original locations and restore buttons.
trash and restore — deletes are reversible by design
/account
The Renar account page: credential management for the signed-in account, including passkey and password options.
per-account credentials — passkeys first, passwords + TOTP
/login
The Renar login page: a minimal sign-in form with a serif heading.
there is no unauthenticated mode — the auth spine always starts

Walk the whole surface →

03

Security is the product

asset → adversary → answer

Secure the rungs. Don't amputate them. Other file tools removed shell execution to be safe, and became file panes with previews. Renar keeps the rungs — exec, terminal, write — and wraps each one in a capability architecture: granted per account per root, re-proved on the dangerous rungs, recorded in a ledger whose tampering is detectable.

The full model — adversaries, answers, and what we refuse to claim →

04

Two editions, one codebase

degrades, never crashes

The edition is chosen at compile time and enforced by a signed license gate. The free edition is deliberately generous — everything a single box needs, including accounts, plugins, exec and the ledger. Enterprise adds the multi-box and regulated surface.

OSS core
AGPL-3.0-only · $0
  • The whole single-box surface: renderers, write path, search, du, exec, terminal, plugins
  • Expiring shares, the WebDAV mount, video and audio previews — free, like doors should be
  • Passkey / password+TOTP / PAM accounts, grants, ledger
  • Signed release artifacts, both architectures
  • The anchor-box case, fully usable — forever
Enterprise
licensed per install · on-prem
  • Fleet management, the verifier set (OIDC / proxy-header on Pro; LDAP, client mTLS on Team+; Kerberos, SAML at the top)
  • Session recording, full-scope ledger
  • A license may cap tier, accounts and roots; on-prem installs can issue their own against their own key
  • Issued as an Ed25519-signed envelope, verified offline, self-declared on /status

Editions and pricing →   The OSS core →

05

Where it stands

0.1.0 — the spine, complete

Every phase below is built, tested, and running in the current tree. Where something is planned rather than shipped, we say so.

P0 — hardening

Content-attack baseline: escaping, CSP, symlink policy, request caps.

P1 — the auth spine

In-binary hybrid-PQ TLS acceptor, accounts (passkey/TOTP/PAM), sliding sessions, step-up, grants, the hash-chained ledger.

P2 — write path

PUT/DELETE/rename/mkdir, trash, uploads, editor profiles — riding grants and the ledger.

P3 — terminal & exec

argv-only exec allowlists, tmux-backed PTY, session recording, the guarded capability.

P4 — find & measure

Content search, du scans and the cleaner, live refresh, metrics.

P5 — plugins

Out-of-process SDK, Landlock/seccomp cage, signed packages, reference plugins.

P6 — fleet

Signed envelopes, fleet cards, the verifier set, offline revocation, break-glass.

P7–P8 — auto-render · pipeline

Schema-driven panels, the plugin gallery tooling, and the five-stage CI gate that re-proves it all.

The roadmap, honestly →