Feature/os 261 add support in monitor to create output for panel backport#2653
Conversation
Backport 7.2:fix missing novnc files.
Backport ReadMe not populating in templates
…dnsconfd backport: fix: disable rc.avahidnsconfd by default
…o-diagnostics backport: feat: add lsusb details to diagnostics
…-7.2 fix: persist rclone config via rc.local with hardened init script
…-peer fix for peer address.
…-peer Fix rc.sshd: auto-restart SSH daemon after network recovery
…lone-configs-7.2 Revert "fix: persist rclone config via rc.local with hardened init script"
- Purpose: backport the Docker ghost/dead container filtering change to the 7.2 release branch. - Before: stale dead Docker entries could be included in the WebGUI container list and inspect failures could leak bad rows into the UI. - Problem: Docker shutdown races can leave orphaned metadata that users cannot act on, which makes the Docker page show ghost containers. - Change: skip invalid, dead, and uninspectable container entries while preserving normal container listing behavior. - How: validate each container record before inspect, skip dead state/status rows, skip failed inspect payloads, and fall back to the list name when inspect omits Name.
- Purpose: backport the no-pool mover empty fix to the 7.2 branch.\n- Before: the UI disabled or hid mover controls when no cache/pool devices existed, even though the empty-array-disk action can still run without a pool assignment.\n- Why: users could not invoke mover to empty an array disk on systems with no configured pool.\n- What: keep mover controls available for the empty action when user shares are enabled and no pool devices exist.\n- How: update the scheduler button text/state and add matching Array Operation button handling for no-pool systems while preserving disabled states during parity, mover, and BTRFS operations.\n- Source: cherry-picked from fd5251a.
- Purpose: backport PR unraid#2600 to the 7.2 branch so Docker template changes clear old Tailscale Serve and Funnel exposure.\n- Before: switching a container from Funnel or Serve to No removed the env vars but left the persisted Tailscale serve/funnel config active after restart.\n- Why: the container hook only applied new serve settings when TAILSCALE_SERVE_PORT was present and never reset existing serve state stored in the Tailscale state directory.\n- What: reset both tailscale funnel and tailscale serve state after tailscale comes online, then reapply the current template-managed mode when configured.\n- How: add explicit reset commands before the Serve/Funnel capability check and before issuing any new serve or funnel command.\n- Source: cherry-picked from b90ca2f.
…ost-containers fix(docker): filter ghost containers from WebGUI
fix: allow mover empty action without pools on 7.2
…-reset fix: reset Tailscale Funnel state on 7.2 restarts
- Purpose: backport the Docker network reconnect helper work required by the fixed MAC assignment flow. - Before: 7.2 rebuilt custom Docker networks with inline reconnect logic that did not preserve all endpoint details consistently. - Problem: the later fixed MAC assignment fix depends on the helper path that restores primary and secondary network attachments predictably. - Change: introduce the network restore helper flow from master before applying the MAC endpoint assignment fix. - Implementation: collect restore entries with network, container, IP, and MAC data, reconnect them through a shared helper, and rebuild primary custom-network containers only when needed.
- Purpose: backport the Docker fixed MAC assignment fix from master to 7.2. - Before: fixed MACs were handled through legacy container-level extra parameters or were lost during network reconnects. - Problem: Docker endpoint MAC assignment needs to happen on the selected network endpoint so bridge and custom networks keep the intended address. - Change: add a fixed MAC template field, normalize and migrate legacy extra parameters, and restore MACs during Docker network reconnects. - Implementation: store MyMAC in templates, build endpoint-aware --network arguments for container creation, and use Docker network connect API calls when restoring fixed MAC endpoints.
- Purpose: backport the Docker MAC address display fix from master to 7.2. - Before: the Docker container list only showed IP details, so assigned MAC addresses were not visible in the UI. - Problem: users could not confirm fixed or runtime MAC assignments from the container list. - Change: include MAC address data from Docker inspect output and render it with the container IP details. - Implementation: pass endpoint MAC addresses through DockerClient and DockerContainers, then hide empty values for stopped containers.
…nment [7.2] Fix Docker fixed MAC assignment
[7.2] Show Docker container MAC addresses
- Purpose: keep Docker custom networks on VLAN and secondary interfaces from losing their configured gateway during automatic network recreation. - Before: rc.docker only read the gateway from a default route on the interface, so VLANs without an interface-specific default route created Docker networks without --gateway. - Why that was a problem: Docker could claim the first subnet address as the macvlan/ipvlan gateway, colliding with real VLAN gateways such as 192.168.10.1 and breaking DHCP or static-IP containers. - What the new change accomplishes: automatic Docker network creation now falls back to the configured IPv4 or IPv6 gateway stored in network.ini when no live default route exists. - How it works: configured_gateway maps br/bond network names back to their eth network.ini section, resolves VLAN IDs to their indexed entries, and returns the matching GATEWAY or GATEWAY6 value before network create arguments are assembled. (cherry picked from commit d56c259)
Purpose: - Backport the Discord notification newline normalization from 7.3 to 7.2. - Keep Pujit Mehrotra credited as the original author of the fix. Before: - Discord status report payloads kept literal \n, \r\n, and \r sequences in DESCRIPTION and CONTENT values. Why that was a problem: - Multi-line Discord reports rendered escaped newline text instead of real line breaks. What the new change accomplishes: - Converts literal newline escape sequences before the Discord payload is generated. - Adds a regression test that verifies generated Discord field text contains real line breaks. How it works: - Normalizes DESCRIPTION and CONTENT shell variables before link handling and payload construction. - Extracts the Discord agent CDATA into a temporary script and stubs curl/date for deterministic test assertions. Original PR: unraid#2527 (cherry picked from commit 309ae17)
Fixes clicking on a docker container when page has many containers the dropdown menu will be behind the footer and even outside the visible area because the scrollbar doesnt extend as far.
…way-fallback fix: Backport Docker VLAN gateway fallback to 7.2
fix: normalize discord agent newlines on 7.2
…r-dropdown-7.2 fix: [ENG-424] Backport Docker dropdown spacer fix to 7.2
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (3)
📒 Files selected for processing (11)
Disabled knowledge base sources:
WalkthroughThis PR consolidates security hardening, new monitoring infrastructure, and the unRAIDServer plugin framework. It refactors authorization and file operations to use canonical paths and validated inputs, adds panelcontrol event payload generation, implements a comprehensive plugin install/remove procedure with version compatibility checks, and includes supporting features like EULA rendering and Docker network gateway fallback. ChangesSecurity hardening, panelcontrol monitoring, and unRAIDServer plugin framework
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Suggested labels
Poem
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
🔧 PR Test Plugin AvailableA test plugin has been generated for this PR that includes the modified files. Version: 📥 Installation Instructions:Install via Unraid Web UI:
Alternative: Direct Download
|
Summary by CodeRabbit
New Features
Bug Fixes
Security
Documentation
Chores