mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-04 14:25:08 +00:00
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>
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 (ormainwithLEDMATRIX_CHANNEL=beta), checks prerequisites, then runsfirst_time_install.sh. Invoked viacurl ... | bashfrom 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-unitsledmatrix_refresh_units.py- Not run from here:install_service.shinstalls 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 servicesetup_cache.sh- Sets up persistent cache directory with proper permissionsconfigure_web_sudo.sh- Configures passwordless sudo access for web interface actionsconfigure_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 noledmatrixsystem user) the passwordlessnmcliand related WiFi permissions the web interface needsinstall_dns_fix.sh- Optional. Installsledmatrix-dns-fix.service, which addsoptions single-requestto the resolver when API calls time out (seesystemd/README.md)install_mqtt_bridge.sh- Optional. Installs the Home Assistant MQTT bridge service (seeintegrations/mqtt_bridge/README.md)
Libraries (sourced, not run):
lib_sudoers.sh- The web interface's sudo allow-list (/etc/sudoers.d/ledmatrix_web), shared byfirst_time_install.shandconfigure_web_sudo.shlib_systemd_render.sh-sed_escape_replacement, used by every script that renders a unit fromsystemd/*.servicelib_lowmem.sh- Build-job sizing and temporary swap for the C++ build on low-memory Pis (first_time_install.shStep 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 byfirst_time_install.shandscripts/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.