fips-ui announcement
Introducing fips-ui v0.2.0: a web dashboard to watch and manage your FIPS mesh node.
Watch:
- Live overview: mesh size, peers, tree depth, traffic, loss, uplink RTT
- Peers, spanning-tree topology, metrics charts, live logs
- Which of your services the mesh can reach, and whether the firewall filters them
Manage:
- Connect and disconnect peers, run probes
- Edit fips config in the browser: diff view, backups, automatic rollback if the node fails to come back healthy. Private keys and passwords are hidden in the browser and put back when you save.
- fips firewall: start, stop, reload, and allow services per npub with one click
- Upgrade fips: install a release or build master, with backups and rollback
Remote access over the mesh, with npubs instead of passwords:
Open the dashboard from another FIPS node. FIPS authenticates every connection's source address, so the UI just checks it against your list of allowed npubs, each with a viewer or admin role. A kernel rule makes sure a LAN host can't fake a mesh address.
Runs on Linux (systemd, OpenRC, OpenWrt), macOS, FreeBSD and Windows. No dependencies on the server side, no sudo prompts in the browser, and an optional read-only mode.
MIT licensed. https://github.com/fr34aky/fips-ui
#fips #nostr #mesh #selfhosted
Full feature list
Monitoring (live, updates in real time)
- Overview: node status, npub and IPv6 address, estimated mesh size, peers, tree depth, traffic in and out, loss rate, uplink quality (RTT, loss, ETX), forwarding counters, transports, service states, and the listeners reachable from the mesh with their firewall status.
- Peers: connection state, role, transport, RTT, loss, goodput and traffic per peer, with connect, disconnect and probe actions.
- Topology: a diagram of the spanning tree, coordinates, and tree protocol counters.
- Metrics: history charts.
- Logs: the live journal of the fips daemon.
- Access: the peer ACL and the hosts file.
- Gateway: status of fips-gateway.
- Also Network, Internals and Diagnostics pages, plus dark and light themes.
Node management
Through one small privileged helper, installed by the admin and allowed by a single sudoers rule.
- Configuration editor for fips config file
- Checks the YAML as you type and shows a diff before saving.
- Private keys, passwords and comments that contain them are hidden in the browser and put back when you save.
- Every save makes a backup and restarts fips. If fips doesn't stay healthy, the previous file is restored automatically.
- Firewall
- Start, stop, reload, enable or disable the fips firewall, and see how many packets it has dropped.
- Allow rules for specific npubs, names from the hosts file, address prefixes, or everyone.
- "Allow…" button on each filtered listener.
- Every change is checked against the full ruleset (
nft -c) before it is written.
- Services: start and restart the fips services with no polkit setup.
- Upgrades: install a published release or build master, with binary backups and rollback.
Remote access over the mesh
- A second listener on the node's fips0 address. Allowed npubs are admitted with a viewer or admin role.
- No passwords: the npub comes from the source address, which FIPS authenticates.
- A kernel guard (nftables) plus a check on every new connection stop spoofing from the LAN.
- The UI opens its own firewall port for exactly the allowed npubs.
Platforms and security
- Linux (systemd, OpenRC, OpenWrt procd), macOS (launchd), FreeBSD (rc.d), Windows (Service Control Manager). Node management and mesh access currently need Linux with systemd.
- The server has no dependencies, and the browser never asks for a sudo password.
- Checks against DNS rebinding and cross-site requests, an optional access token, and a read-only mode.
- MIT licensed.