Files
LEDMatrix/scripts/install/README.md
ChuckandClaude Opus 5.5 05deb1ee7d feat(install): support Raspberry Pi OS Bookworm (Python 3.11) alongside Trixie (3.13) (#689)
The installer and scripts/check_system_compatibility.sh share one set of OS rules (scripts/install/lib_os.sh): Bookworm (Debian 12, Python 3.11) and Trixie (Debian 13, Python 3.13) are supported, python3 older than 3.11 stops the install before anything changes, and dhcpcd gets a warning with directions. setcap targets /usr/bin/python3, the apt fallback honours the requirement floors, and the desktop check no longer misreads under pipefail. CI runs the unit and plugin-safety suites on 3.11 and 3.13 (tooling jobs on 3.13); mypy targets 3.11.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 13:35:13 -04:00

2.9 KiB

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 out the newest release (or main with LEDMATRIX_CHANNEL=beta), checks prerequisites, then runs first_time_install.sh. Invoked via curl ... | bash from the project root README. Re-running it never moves a checkout to an older version.
  • install_service.sh - Installs, enables and starts the display service (ledmatrix.service), the web interface service (ledmatrix-web.service) and the update-verify units (systemd), and installs /usr/local/sbin/ledmatrix-refresh-units
  • ledmatrix_refresh_units.py - Not run from here: install_service.sh installs a root-owned copy as /usr/local/sbin/ledmatrix-refresh-units, which updates run through sudo to install changed units (and the automatic update's rollback, with --restore, to put them back)
  • install_web_service.sh - Installs only the web interface service and the update-verify units (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 web interface's user (the user who runs the script, i.e. the one you installed LEDMatrix as; there is no ledmatrix system user) the passwordless nmcli and related WiFi permissions the web interface needs
  • install_dns_fix.sh - Optional. Installs ledmatrix-dns-fix.service, which adds options single-request to the resolver when API calls time out (see systemd/README.md)
  • install_mqtt_bridge.sh - Optional. Installs the Home Assistant MQTT bridge service (see integrations/mqtt_bridge/README.md)

Libraries (sourced, not run):

  • lib_sudoers.sh - The web interface's sudo allow-list (/etc/sudoers.d/ledmatrix_web), shared by first_time_install.sh and configure_web_sudo.sh
  • lib_systemd_render.sh - sed_escape_replacement, used by every script that renders a unit from systemd/*.service
  • lib_lowmem.sh - Build-job sizing and temporary swap for the C++ build on low-memory Pis (first_time_install.sh Step 6)
  • lib_os.sh - Which releases (Bookworm, Trixie) and Python versions (3.11-3.13) the installer accepts, and which service runs the network; shared by first_time_install.sh and scripts/check_system_compatibility.sh

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.