mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-04-10 21:03:01 +00:00
PLUGIN_DEVELOPMENT_GUIDE.md
- Added a "Plugin directory note" callout near the top explaining
the plugins/ vs plugin-repos/ split:
- Dev workflow uses plugins/ (where dev_plugin_setup.sh creates
symlinks)
- Production / Plugin Store uses plugin-repos/ (the configurable
default per config.template.json:130)
- The plugin loader falls back to plugins/ so dev symlinks are
picked up automatically (schema_manager.py:77)
- User can set plugins_directory to "plugins" in the General tab
if they want both to share a directory
CLAUDE.md
- The Project Structure section had plugins/ and plugin-repos/
exactly reversed:
- Old: "plugins/ - Installed plugins directory (gitignored)"
"plugin-repos/ - Development symlinks to monorepo plugin dirs"
- Real: plugin-repos/ is the canonical Plugin Store install
location and is not gitignored. plugins/* IS gitignored
(verified in .gitignore) and is the legacy/dev location used by
scripts/dev/dev_plugin_setup.sh.
Reversed the descriptions and added line refs.
systemd/README.md
- "Manual Installation" section told users to copy the unit file
directly to /etc/systemd/system/. Verified the unit file in
systemd/ledmatrix.service contains __PROJECT_ROOT_DIR__
placeholders that the install scripts substitute at install time.
A user following the manual steps would get a service that fails
to start with "WorkingDirectory=__PROJECT_ROOT_DIR__" errors.
Added a clear warning and a sed snippet that substitutes the
placeholder before installing.
src/common/README.md
- Was missing 2 of the 11 utility modules in the directory
(verified with ls): permission_utils.py and cli.py. Added brief
descriptions for both.
Out-of-scope code bug found while auditing (flagged but not fixed):
- scripts/dev/dev_plugin_setup.sh:9 sets PROJECT_ROOT="$SCRIPT_DIR"
which resolves to scripts/dev/, not the project root. This means
the script's PLUGINS_DIR resolves to scripts/dev/plugins/ instead
of the project's plugins/ — confirmed by the existence of
scripts/dev/plugins/of-the-day/ from prior runs. Real fix is to
set PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)". Not fixing in
this docs PR.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
74 lines
2.2 KiB
Markdown
74 lines
2.2 KiB
Markdown
# Systemd Service Files
|
|
|
|
This directory contains systemd service unit files for LEDMatrix services.
|
|
|
|
## Service Files
|
|
|
|
- **`ledmatrix.service`** - Main LED Matrix display service
|
|
- Runs the display controller (`run.py`)
|
|
- Starts automatically on boot
|
|
- Runs as root for hardware access
|
|
|
|
- **`ledmatrix-web.service`** - Web interface service
|
|
- Runs the web interface conditionally based on config
|
|
- Starts automatically on boot if `web_display_autostart` is enabled
|
|
- Uses `scripts/utils/start_web_conditionally.py`
|
|
|
|
- **`ledmatrix-wifi-monitor.service`** - WiFi monitor daemon service
|
|
- Monitors WiFi/Ethernet connectivity
|
|
- Automatically enables/disables access point mode
|
|
- Uses `scripts/utils/wifi_monitor_daemon.py`
|
|
|
|
## Installation
|
|
|
|
These service files are installed by the installation scripts in `scripts/install/`:
|
|
- `install_service.sh` installs `ledmatrix.service`
|
|
- `install_web_service.sh` installs `ledmatrix-web.service`
|
|
- `install_wifi_monitor.sh` installs `ledmatrix-wifi-monitor.service`
|
|
|
|
## Manual Installation
|
|
|
|
> **Important:** the unit files in this directory contain
|
|
> `__PROJECT_ROOT_DIR__` placeholders that the install scripts replace
|
|
> with the actual project directory at install time. Do **not** copy
|
|
> them directly to `/etc/systemd/system/` — the service will fail to
|
|
> start with `WorkingDirectory=__PROJECT_ROOT_DIR__` errors.
|
|
>
|
|
> Always install via the helper script:
|
|
>
|
|
> ```bash
|
|
> sudo ./scripts/install/install_service.sh
|
|
> ```
|
|
>
|
|
> If you really need to do it by hand, substitute the placeholder
|
|
> first:
|
|
>
|
|
> ```bash
|
|
> PROJECT_ROOT="$(pwd)"
|
|
> sed "s|__PROJECT_ROOT_DIR__|$PROJECT_ROOT|g" systemd/ledmatrix.service \
|
|
> | sudo tee /etc/systemd/system/ledmatrix.service > /dev/null
|
|
> sudo systemctl daemon-reload
|
|
> sudo systemctl enable ledmatrix.service
|
|
> sudo systemctl start ledmatrix.service
|
|
> ```
|
|
|
|
## Service Management
|
|
|
|
```bash
|
|
# Check status
|
|
sudo systemctl status ledmatrix.service
|
|
|
|
# Start/stop/restart
|
|
sudo systemctl start ledmatrix.service
|
|
sudo systemctl stop ledmatrix.service
|
|
sudo systemctl restart ledmatrix.service
|
|
|
|
# Enable/disable autostart
|
|
sudo systemctl enable ledmatrix.service
|
|
sudo systemctl disable ledmatrix.service
|
|
|
|
# View logs
|
|
journalctl -u ledmatrix.service -f
|
|
```
|
|
|