Prerequisites
Raspberry Pi OS Bookworm or Bullseye.
tailscale up already completed, with MagicDNS enabled.
USB serial connected to the controller and root access available for the install.
Installer flags
--serial /dev/ttyUSB0, --hz 2, --telemetry-mode broadcast|subscribe_required, and --readonly are supported directly.
Add -y to skip the confirmation prompt or --installer-url if you need the updater to point at a different hosted installer.
The installer bundles the runtime payload directly into the script, so it does not clone from GitHub or prompt for repository authentication.
Older commands that include --ref, --sha, or --repo still run, but those flags are ignored by the embedded installer.
Runtime layout
The installer extracts a bundled service payload into /opt/lydia-device.
The Python service runs from /opt/lydia-device/services/lydia-device.
systemd manages the lydia-device service and restarts on failure.
Tailscale Serve exposes the runtime over secure WebSockets on the tailnet, and the daily update timer re-downloads the configured installer URL.
Logs and support
journalctl -u lydia-device shows service logs.
Audit events are written to /var/lib/lydia-device/audit.jsonl.
For the browser UI, open LYDIA. MENIAH depends on the LYDIA runtime and uses the same install flow.
The device service protocol is documented in services/lydia-device/INTERFACE.md.
Suggested install commands
curl -fsSL https://lydia.secwpn.com/install.sh | sudo bash -s -- --serial /dev/ttyUSB0 --hz 2curl -fsSL https://lydia.secwpn.com/install.sh | sudo bash -s -- --telemetry-mode subscribe_required --readonly