mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-04 22:35: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>
56 lines
2.9 KiB
Markdown
56 lines
2.9 KiB
Markdown
# 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.
|
|
|