librelad 20f8ca2eb5 feat(network): detect + heal apps stranded off the docker subnet
Closes the gap behind the vpn-recreate bug: when the shared network is
recreated with a different /24, every app's stored static IP is left
outside it and adoptDockerSubnet only realigns CFG, not the apps.

- networkScanConflicts (network_conflicts.sh): read-only scan diffing each
  active network_resources IP against docker's real subnet (via ipInSubnet).
  Per-service routing-aware — skips gateway-routed services whose ipv4 is
  commented out in the deployed compose, so gluetun apps don't false-positive.
  Distinguishes 'daemon down' (benign) from 'network missing' (real).

- webuiSystemNetworkCheck (webui_system_network.sh): self-throttled generator
  that writes frontend/data/system/network_status.json (modelled on
  verify_status.json). Wired into webuiSystemUpdate AND run unconditionally
  every ~60s from the task-processor poll (regen webui is mtime-gated and
  would never fire on drift, which touches no source file).

- networkHealConflicts (network_heal.sh) + 'libreportal system network
  check|heal [app]': the heal adopts docker's subnet in-process, then re-IPs
  stranded apps with reset_network=ip (ports preserved), gluetun first.
  Mutating path runs only through the task system (dual-mode, like update
  apply); read-only check runs inline.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 16:03:53 +01:00

58 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
# This file is auto-generated by generate_arrays.sh
# Do not edit manually - run './scripts/source/files/generate_arrays.sh run' to regenerate
webui_scripts=(
"webui/data/generators/apps/webui_app_config.sh"
"webui/data/generators/apps/webui_app_status.sh"
"webui/data/generators/apps/webui_config_patch.sh"
"webui/data/generators/apps/webui_config.sh"
"webui/data/generators/apps/webui_services.sh"
"webui/data/generators/apps/webui_tools.sh"
"webui/data/generators/backup/webui_backup_app_status.sh"
"webui/data/generators/backup/webui_backup_dashboard.sh"
"webui/data/generators/backup/webui_backup_engines.sh"
"webui/data/generators/backup/webui_backup_locations.sh"
"webui/data/generators/backup/webui_backup_migrate.sh"
"webui/data/generators/backup/webui_backup_passwords.sh"
"webui/data/generators/backup/webui_backup_schema.sh"
"webui/data/generators/backup/webui_backup_snapshots.sh"
"webui/data/generators/backup/webui_task_create.sh"
"webui/data/generators/categories/webui_create_all_categories.sh"
"webui/data/generators/categories/webui_create_app_categories.sh"
"webui/data/generators/categories/webui_create_app_config_categories.sh"
"webui/data/generators/categories/webui_create_app_field_mappings.sh"
"webui/data/generators/config/webui_cli_config_set.sh"
"webui/data/generators/config/webui_generate_configs.sh"
"webui/data/generators/config/webui_update_config.sh"
"webui/data/generators/peers/webui_peers.sh"
"webui/data/generators/system/webui_ssh_access.sh"
"webui/data/generators/system/webui_system_disk.sh"
"webui/data/generators/system/webui_system_info.sh"
"webui/data/generators/system/webui_system_memory.sh"
"webui/data/generators/system/webui_system_metrics.sh"
"webui/data/generators/system/webui_system_network.sh"
"webui/data/generators/system/webui_system_update.sh"
"webui/data/generators/updater/webui_artifact_scan.sh"
"webui/data/generators/updater/webui_updater_scan.sh"
"webui/data/lock/webui_check_update_lock.sh"
"webui/data/lock/webui_create_update_lock.sh"
"webui/data/lock/webui_remove_setup_lock.sh"
"webui/data/lock/webui_remove_update_lock.sh"
"webui/data/logs/webui_app_logs.sh"
"webui/data/logs/webui_logs_folders.sh"
"webui/data/tasks/webui_task_files.sh"
"webui/data/utils/webui_app_icons.sh"
"webui/data/utils/webui_app_log.sh"
"webui/data/utils/webui_atomic_write.sh"
"webui/data/utils/webui_container_setup.sh"
"webui/webui_display_logins.sh"
"webui/webui_install_app.sh"
"webui/webui_install_image.sh"
"webui/webui_install_systemd.sh"
"webui/webui_regen.sh"
"webui/webui_updater.sh"
)