mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-04 06:15:09 +00:00
Updates that move HEAD now install changed systemd units through a root-owned helper (/usr/local/sbin/ledmatrix-refresh-units, two literal sudo lines), with a backup restored on rollback; a refresh that fails part-way puts the old units back. Devices without the new sudo rule keep updating and are told to re-run the installer once. The one-shot installer now checks out the newest vX.Y.Z release (LEDMATRIX_CHANNEL=beta keeps main) and never moves an existing checkout backwards. 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)
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.