Files
LEDMatrix/scripts/install
Chuck d941c91f24 fix(systemd): wait for network connectivity before starting services (#335)
Change After=network.target → After=network-online.target + Wants=network-
online.target in both service templates and install_web_service.sh.

network.target only guarantees NetworkManager has started — it does NOT
mean the device has an active internet connection. On boot the LED matrix
service was starting within seconds of the network interface appearing,
before WiFi association and DHCP completed, causing every first-update API
call to fail with "Network is unreachable" or DNS resolution errors.

network-online.target waits for a confirmed route before the service fires.
On Raspberry Pi OS this is provided by NetworkManager-wait-online. The
tradeoff is a few extra seconds at boot, acceptable for a display device.

Observed on devpi: service started at 14:48:03, all API calls (weather,
FlightRadar24, local ADS-B) failed at 14:48:07 with network errors, then
the service restarted cleanly at 14:50:40 once WiFi was established.

Co-authored-by: Chuck <chuck@example.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 15:47:35 -04:00
..
2025-12-27 14:15:49 -05:00
2025-12-27 14:15:49 -05:00
2025-12-27 14:15:49 -05:00

Installation Scripts

This directory contains scripts for installing and configuring the LEDMatrix system.

Scripts

  • one-shot-install.sh - Single-command installer; clones the repo, checks prerequisites, then runs first_time_install.sh. Invoked via curl ... | bash from the project root README.
  • install_service.sh - Installs the main LED Matrix display service (systemd)
  • install_web_service.sh - Installs the web interface service (systemd)
  • install_wifi_monitor.sh - Installs the WiFi monitor daemon service
  • setup_cache.sh - Sets up persistent cache directory with proper permissions
  • configure_web_sudo.sh - Configures passwordless sudo access for web interface actions
  • configure_wifi_permissions.sh - Grants the ledmatrix user the WiFi management permissions needed by the web interface and the WiFi monitor service
  • migrate_config.sh - Migrates configuration files to new formats (if needed)
  • debug_install.sh - Diagnostic helper used when an install fails; collects environment info and recent logs

Usage

These scripts are typically called by first_time_install.sh in the project root (which itself is invoked by one-shot-install.sh), but can also be run individually if needed.

Note: Most installation scripts require sudo privileges to install systemd services and configure system settings.