v2026.9.6
stable 119 changes
Sep 6, 2026
Added
- Reverse proxy + automatic HTTPS for NAS UI, apps, and VM/LXC addresses.
- Per-entry upstream scheme, TLS skip-verify, and header_up options.
- Multiple base domains with per-domain certificate sources.
- HTTP/3 as an off-by-default setting with a task-driven toggle.
- Cluster-wide reverse proxy with a movable holder and manual takeover.
- Relay reliability, pairing integrity, full-RPC auth, membership convergence, last-seen.
- Linked clones, owner and admission primitives, and a paired sandbox facade.
- Give Peers its own Cluster section in the System settings.
- The code carries the CA fingerprint, so the answer verifies on any transport.
- Build a VM template from a cloud-init script over MCP.
- Sortable table columns with click-to-sort headers.
- A paired tenant can open its sandbox's VNC console.
- Pull file backups from a remote computer over SSH.
- Capture Caddy wedge incidents, and stop faking a logout on transport errors.
- Offer SMB shares as destinations for VM, app, LXC, and system backups.
- Enforce disk limits on the system drive via ext4/XFS project quotas.
- Make app backups self-contained and restorable as new apps.
- Attribute background work and host execs to their owner.
- Announce newly started tasks on the collapsed dock bar.
- Profile photos.
- Shut down or restart the server from the maintenance page.
- Bottom-sheet menus on touch and the kellix mobile sidebar reveal.
- Installable PWA shell with manifest, icons, safe areas and standalone viewport.
- Command palette searches real objects and runs actions.
- One PTY-backed terminal for host, LXC and VM consoles with pop-out floating windows.
- Show when a connected share is offline.
- Dock floating terminals into the shell's bottom bar next to background tasks.
- Connected storage through file-tool targets and connection lifecycle tools.
- Issues page, live activity feed, honest alerts, bounded growth.
- Unified bottom panel with Tasks and Terminal tabs, terminals from targets, restored after reload.
- Operator-set sandbox storage and full sandbox metrics.
- Run any tool on any peer with a peer_id argument.
- Cross-peer read-only visibility for installed apps.
- Mount locations at slugified name directories.
- Move a stopped VM to a paired peer.
- Run the upgrade in the dock terminal.
- Autostart option on create_sandbox.
- Network backends, curated images, and in-repo image build pipeline.
- Move stopped LXC containers to a paired peer.
- Open source licenses page with generated attribution data.
- Preflight rejects cross-architecture VM and LXC moves.
- Guided-only install wizard with storage-driven config placement.
- Reject LXC images that need a newer kernel than the host.
- Stream pool-to-pool peer moves over zfs send/receive.
- Show server address and proxy entry in install wizard.
- Stream pool-to-pool peer moves over zfs send/receive.
- Add one-time Docker setup banner to the apps page.
- Cluster-aware entry targeting and holder mutation forwarding.
Fixed
- Close all 12 findings from issue 276.
- Settings UI focus, section split, and mobile entries table.
- Retry the move step-down and fail with an actionable message.
- Delete orphaned vmid claim placeholders at boot.
- Address all actionable findings from the #286 review.
- Automatic cert renewal, public-resolver DNS-01 precheck, and sequential authorizations.
- Reject an in-use VIP, persist task metadata, and auto-enable after setup.
- Offer to install missing host tools from the readiness card.
- Survive SQLite busy waits on task writes, bound the WAL, and log the misses.
- Keep connect-location credential inputs mounted while typing.
- Stack peer state rows, uncard guest ID conflicts, hide cluster without peers.
- Re-add the VIP when a network manager removes it.
- Don't report a peer as connected when its stream never opens.
- Bound virsh shutdown and destroy so a wedged monitor cannot wedge the stop task.
- Match VM row busy indicator on the record UUID.
- Move connected-storage statfs off the overview request path.
- Single-entity board cards overflow and tiles don't fill their cell.
- Board list rows span the card width, not just their content.
- Usage grid keeps a fixed dot size and fills its width.
- Manage ZFS pool root as the storage dataset and match pool devices by by-id aliases.
- Route skeletons match the page they stand in for.
- Unified focus, radius, theme and hover polish across the NAS app.
- Same top padding and page header as every other route.
- Stop app compose networks from leaking and exhausting Docker's default pool.
- Shell regressions after the mobile drawer, and no reduced-motion gating.
- Redesign the resource history sparklines.
- Mobile layout pass across detail headers, tab strips and tables.
- Per-domain RPC rollout nits, allocation dialog cold load.
- Phone layout as a top sheet with backdrop, close control and back gesture.
- Drop the listing skeletons and keep the frame with the header spinner.
- One-button bottom bar, inset panel controls, consistent empty states, peer host terminals.
- Load host bridges on LXC and VM configuration tabs.
- Move one VM image/ISO without wiping its source directory.
- Build templates on the sandbox storage.
- Read container stats from the payload cgroup, not init.scope.
- Keep installed section when peer filter matches nothing.
- Follow-ups to numeric app ids — refresh upsert, move-to-storage, restore roots, zero-row migration, id column, compose in data dir.
- Leave the folder's recycle bin out of backups, one-word failure cell.
- Tooltip primitive that never takes space; failed-run cell uses it.
- A sandbox resumed through the scoped verb gets its clock set like any other resume.
- Land peer moves on pool storage and keep the source vmid.
- Unique client names, page refreshes on redeem, friendly sandbox names.
- Load host status on the templates route so fresh page loads render.
- Install smartmontools in the storage setup so host installs stop reporting smartctl missing.
- Raspberry Pi 5 arm64 end to end: LXC arch, apps root, samba dedupe, zfs health, prod-install QA.
- Keep focus in additional disk size input.
- Bootstrap smb.conf on fresh Debian-family installs.
- Keep only Debian 13 Generic Cloud in VM image catalog.
- Skip loopback DNS servers when recording upstream resolvers.
- Replace broken preflight banner visuals with feature icons.
- Skip schedules on offline locations and back off failing runs.
- App catalog close button and always-shown folder step.
Changed
- Carbon-default product surface, shared board-tile family, and the UI library.
- Schedules live on the source, one restore dialog, restore from any backup folder.
- One quiet EmptyState component for every empty region.
- Browsable version folders, a catalog root humans recognise, and a restore dialog that starts from your destinations.
- Binary enforcement — license gates onboarding and updates, nothing else.
- Numeric app ids, drop peer ID-range machinery, storage column.
- Dense source rows, a pool-first picker rail, and an unmarked restore picker.
- Show the GPU home widget as coming soon.
- Verification by driving the product, and a test suite cut to what earns its keep.
- Vmid is the VM's sole identifier, the record uuid is gone.
- Ban prose comments, rescue rationale to docs/.
- Make lxcid the container's only identifier.
- Regroup system sidebar sections.
- Remove Kellix catalog entries and all Kellix references.
Improved
- Route-scoped loading, lighter backend hot paths, Prometheus /metrics, proxy entry fix.
- Right-size requests — slim GetOverview, batch VM list, parallel drive walks, cache update notes.
- Replace GetOverview with lazy per-domain RPCs.
- Run the seed appliance without network.
- Seed clean-identity creates through NoCloud, skipping the offline appliance.