Skip to content

Releases: vladimirperovic/minimalrouter

Minimal Router OS v0.1.6 (Beta)

Choose a tag to compare

@github-actions github-actions released this 23 Aug 10:08
fd5e680

Minimal Router OS v0.1.6

Status: Beta / controlled pilot

v0.1.6 is a dashboard release. It standardises the table and form presentation
across every page, adds a selectable appearance for the dashboard shell, and
repairs several defects found while that work was in progress. There are no
routing, firewall, DHCP or update-trust behaviour changes in this release.

Highlights

  • Selectable appearance. The topbar carries an appearance switcher offering
    the default look plus three alternatives: Console (dense operator console,
    monospaced figures, hairline grid), Atelier (spacious, settings-app rows,
    soft elevation) and Topology (network-first, teal, addressing in mono).
    The choice is remembered per browser and is independent of the existing
    light/dark control, so each appearance has both a light and a dark form.
  • A skin is a CSS layer keyed off data-skin on the document element. It
    remaps the --classic-* tokens the shell already reads and applies a focused
    set of structural overrides on top. The default appearance ships no stylesheet
    at all, so an appliance where nothing is selected renders exactly as v0.1.5
    did.
  • Unified table standard across the remaining pages, so connected devices,
    reservations, port forwards, firewall rules, WireGuard peers, snapshots and
    audit events share one row, header and action presentation.
  • Compact form standard across all pages, with LAN & DHCP grouped into
    labelled WAN / LAN / DHCP / DNS sections and per-section save actions.
  • Offline devices can be woken with a Wake-on-LAN magic packet; firewall rules,
    WireGuard peers and DHCP reservations can be edited in place.
  • Connected devices show a per-device traffic column, and Gateway Health shows
    service recovery action tiles alongside public-IP history.
  • Application memory is reported separately from reclaimable file cache.
  • Configuration snapshots can be deleted from the dashboard.
  • Boot activity is sampled at one-second resolution.

Fixes

  • WAN / PPPoE fields collapsed to zero width. The fieldset heading was
    floated to pull it off the border line, and the following element cleared that
    float. In the demo build the element immediately after the heading is the WAN
    toggle, which is hidden and therefore clears nothing, so the field grid was
    laid out beside a full-width float. Headings now sit in normal flow inside the
    card and the float is gone.
  • Fieldset groups lost their accessible name when those headings stopped
    being <legend> elements. Each group is now named with aria-labelledby
    pointing at its heading, so screen readers announce the group again.
  • Connected devices no longer reported Online. The unified table work
    replaced the online state with the lease countdown alone. The state and the
    countdown are both shown again, as documented for v0.1.5.
  • Device tables no longer overflow their containers.
  • Runtime React source no longer carries inline style objects; the affected
    column widths and two element styles moved to stylesheets.
  • Executable bits are preserved for distribution integration files.

GitHub Pages demo

The Pages job publishes the demo unchanged at the site root and additionally
publishes a standalone design gallery at /design/, which presents the four
LAN & DHCP appearances side by side in both light and dark for comparison
without running the appliance. The gallery is a static page built from the same
mock data as the demo; it is not part of the appliance image.

Validation

The exact release-candidate commit must pass all seven required workflows: CI,
CodeQL, Secret scan, Deep validation, Performance, Service supervision and
Appliance ISO. Dashboard coverage includes the Playwright matrix across
Chromium, WebKit, mobile WebKit and mobile Chromium for both the production and
demo builds.

The Golden ISO gate is unchanged from v0.1.5 and still covers clean-disk
installation, installed cold boot without the ISO attached, firstboot
non-reentry, SSH and Dashboard/API readiness, forced routerd crash recovery
under supervision, warm reboot, refusal to overwrite an existing MinimalRouter
disk and refusal to install onto an undersized disk.

Scope and pilot status

v0.1.6 remains a Beta / controlled pilot release and inherits the v0.1.5
pilot conditions unchanged. Because this release does not alter routing,
firewall, DHCP, WireGuard or update-trust behaviour, an appliance already
qualified on v0.1.5 does not need to repeat the full network validation matrix;
the owner lab should still confirm the dashboard reaches the appliance and that
the appearance control behaves on the browsers actually used.

Minimal Router OS v0.1.5 (Beta)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Aug 08:04
80a84a1

Minimal Router OS v0.1.5

Status: Beta / controlled pilot

v0.1.5 moves the approved dashboard design into the appliance production frontend and adds a focused set of operator-facing reliability controls without expanding MinimalRouter into a general-purpose network platform.

Highlights

  • Production dashboard uses the v0.1.5 visual system rather than a demo-only overlay.
  • GitHub Pages demo and production use the same dashboard components and final CSS; demo mode differs only in mocked data and explicitly demo-only states.
  • Mobile navigation uses a fixed top-right control and a pushed/scaled foreground-page interaction inspired by Noema's mechanics, while retaining MinimalRouter's own colors, typography and navigation design.
  • The mobile menu closes with the same control, Escape, an exposed-page click or section navigation and restores the previous scroll position when appropriate.
  • Desktop frame uses one exact 37 px gutter at the viewport/sidebar edge, between sidebar and content, and at the far-right content edge.
  • The redundant Gateway healthy Overview ribbon chip is removed while the separate topbar health control remains available.
  • Logs startup diagnostics use a horizontal milestone timeline on desktop and a horizontally scrollable sequence on mobile.
  • Connected devices can show Online, Last seen and New state from existing bounded DHCP/accounting data.
  • A LAN device can have Internet access paused for 15 minutes, 1 hour, or until resumed. Timed pauses use nftables kernel timeouts and the privileged helper validates the address against its trusted last-good LAN configuration.
  • Gateway Health exposes three fixed recovery actions: Reconnect WAN, Restart DNS & DHCP, and Restart WireGuard. The dashboard cannot select arbitrary services or execute shell commands.
  • Gateway history records sampled WAN availability/outages and bounded public-IP transitions locally. The UI reports partial coverage honestly until a full 30-day history exists.
  • Recovery/backup/pfSense migration tools are presented from the Recovery workspace rather than being mixed into Security.

Dashboard validation

The release candidate includes Playwright regression coverage for both the production and GitHub Pages demo builds, including:

  • fixed mobile menu position while scrolling;
  • pushed-page menu geometry and close behavior;
  • scroll restoration;
  • every dashboard route fitting the mobile viewport without page-level horizontal overflow;
  • production/demo mobile behavior parity;
  • desktop 37 px frame geometry;
  • removal of only the redundant Gateway ribbon chip;
  • horizontal startup timeline behavior on desktop and mobile.

Installation and startup validation

The exact release-candidate commit must pass the complete Golden ISO gate. That gate extends the existing clean-disk installation test with:

  • installed-disk cold boot without the ISO attached;
  • proof that firstboot does not run again;
  • real SSH and Dashboard/API readiness after cold boot;
  • forced routerd crash followed by supervise-daemon recovery;
  • warm reboot followed by another full readiness check;
  • refusal to overwrite a disk that already contains MinimalRouter;
  • refusal to install onto an undersized 4 GiB disk before destructive writes begin.

The final release artifacts are published only from the signed release workflow after the exact tagged commit passes the release validation path. The release publishes the tested AMD64 Golden ISO and checksum, signed AMD64/ARM64 distribution archives and manifests, SPDX SBOMs, SHA256SUMS, and GitHub attestations.

Scope and pilot status

v0.1.5 remains a Beta / controlled pilot release. CI/QEMU qualification is deliberately broader than v0.1.4, but it does not replace real Proxmox + ISP validation. Before unattended use, the owner lab should still verify real PPPoE reconnect/reboot behavior, WireGuard recovery, DDNS/public-IP changes, timed device-pause expiry, power-cycle behavior and the established pfSense fallback path.

Minimal Router OS v0.1.4 (Beta)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Aug 05:54
affd98c

Minimal Router OS v0.1.4 — Beta

v0.1.4 is the first Minimal Router release built around the Golden Appliance
ISO
installation model for AMD64/Proxmox.

Highlights

Golden Appliance ISO

A new release asset provides a complete router appliance:

minimalrouter-0.1.4-amd64.iso

Alpine Linux, the matching linux-lts kernel/modules/initramfs, MinimalRouter,
Dashboard and runtime dependencies are assembled before the user VM boots. The
live ISO is a small verified flasher, not a package installer.

The target flow is now:

boot ISO → verify Golden image → flash blank VM disk → reboot
→ firstboot → WAN/LAN → optional PPPoE → passwords → router services

Offline by construction

The user VM no longer depends on Alpine repositories during disk installation.
The live flasher does not run apk, setup-disk, mkinitfs, target chroots or
the MinimalRouter distribution installer.

This removes the package-repository and live-kernel/target-kernel mismatch failure
class encountered during earlier installer development.

Serial and recovery

  • dedicated MinimalRouter Installer (serial ttyS0 115200) boot entry;
  • firstboot can run entirely over serial;
  • password-protected ttyS0 root recovery remains active after installation;
  • trusted-LAN OpenSSH recovery is configured with a separate root password;
  • VGA/noVNC remains the production default and an independent pilot fallback.

Full install validation

The Appliance ISO workflow now tests the actual install rather than only booting
the ISO. It flashes a blank 8 GiB VirtIO disk, reboots, completes firstboot and
then proves:

  • installed serial root login;
  • a real password-authenticated SSH login;
  • LAN 192.168.1.1/24;
  • trusted-LAN SSH nftables rule and listener;
  • firstboot and canonical state markers;
  • running kernel/module release match;
  • routerd service/readiness;
  • Dashboard listener on :8443.

The signed release workflow repeats this E2E test against the release ISO before
publishing it.

Signed release trust inside the ISO

The v0.1.4 release ISO is built from the already signed AMD64 release payload and
must contain firmware-signing.pub. A release build fails if that trust anchor is
missing. This keeps later A/B update verification aligned with archive installs.

Other v0.1.4 improvements

  • boot-ID-based startup diagnostics with bounded history;
  • lower passive runtime work and visibility-aware Dashboard polling;
  • lightweight post-connect WAN estimate plus explicit full Speed Test;
  • QoS-safe Speed Test restoration through canonical reconciliation;
  • Smart Change Preview;
  • conservative PPPoE auto-recovery;
  • one-click network diagnostics and Startup Timeline;
  • local recovery console and sanitized support-bundle workflow;
  • build/version/commit/date reporting from release metadata;
  • hardened signed A/B staging and anti-downgrade behavior.

See ../../CHANGELOG.md for the full change history.

Install on Proxmox

Use the currently qualified profile:

  • AMD64/x86-64;
  • SeaBIOS;
  • 1 GiB RAM or more;
  • one VirtIO disk of at least 8 GiB;
  • two VirtIO NICs;
  • noVNC available during the pilot;
  • optional serial0 socket.

Verify:

sha256sum -c minimalrouter-0.1.4-amd64.iso.sha256

Then attach the ISO and boot. Detailed instructions:

Release assets

The release workflow publishes:

minimalrouter-0.1.4-amd64.iso
minimalrouter-0.1.4-amd64.iso.sha256
minimalrouter-linux-amd64.tar.gz
minimalrouter-linux-arm64.tar.gz
minimalrouter-linux-amd64.manifest.json
minimalrouter-linux-arm64.manifest.json
minimalrouter-linux-amd64.spdx.json
minimalrouter-linux-arm64.spdx.json
SHA256SUMS

The ISO, archives/SBOMs, manifests and checksums receive the corresponding GitHub
attestations defined by the release workflow.

Current qualification boundary

This remains a Beta controlled-pilot release.

The complete installed-disk E2E target for v0.1.4 is SeaBIOS + MBR/ExtLinux +
VirtIO. The installer media retains UEFI boot metadata, but an installed UEFI
Golden target is not yet qualified.

Automated QEMU validation also does not replace real ISP PPPoE, physical NIC,
external scan, thermal, abrupt-power or long-duration testing. Keep a known-good
router available during the first real-WAN pilot.

Minimal Router OS v0.1.2

Choose a tag to compare

@github-actions github-actions released this 15 Aug 12:15
8369a92

What's Changed

Other changes

Full Changelog: v0.1.1...v0.1.2