Implement a 'one-liner' installation script for the MPVJ (Modern PocketVJ) ecosystem on Raspbian x64 Lite. - Interactive whiptail UI for Hostname, SSID, and WiFi Password configuration. - Automated system hardening: hostapd, dnsmasq, avahi-daemon, and Node.js. - Memory safety for Pi 3B: temporary 1GB swap and NPM concurrency limits. - Networking failsafe: static AP on wlan0 and DHCP on eth0 with mDNS support. - OpenSpec artifacts (Proposal, Design, Spec, Tasks) included.
27 lines
1.8 KiB
Markdown
27 lines
1.8 KiB
Markdown
## Why
|
|
|
|
Deploying MPVJ on a Raspberry Pi 3B (x64 Lite) requires complex system-level configuration (WiFi Access Point, DNS masking, service orchestration). Currently, this is a manual and error-prone process. A "one-liner" headless setup script is needed to transform a clean Raspbian installation into a dedicated mapping appliance with zero friction.
|
|
|
|
## What Changes
|
|
|
|
- **Interactive Setup Script**: A Bash-based installer (`setup.sh`) that asks for hostname, SSID, and WiFi password using a TUI (Text User Interface).
|
|
- **Automated System Hardening**: Automatic installation and configuration of `hostapd`, `dnsmasq`, `avahi-daemon`, and `nodejs`.
|
|
- **Hybrid Networking Configuration**: Setup of a static IP (192.168.4.1) for the WiFi AP while maintaining DHCP on Ethernet (eth0) for failsafe access.
|
|
- **Application Deployment**: Cloning the MPVJ repository from a user-provided URL and installing dependencies.
|
|
- **Service Orchestration**: Installation of a `systemd` service for the MPVJ backend to ensure it starts on boot.
|
|
|
|
## Capabilities
|
|
|
|
### New Capabilities
|
|
- `headless-installer`: A standalone Bash script capable of configuring a Raspberry Pi for headless MPVJ operation via a single command.
|
|
|
|
### Modified Capabilities
|
|
- `hybrid-network-control`: The existing networking logic will be updated to respect the configurations generated by the setup script.
|
|
|
|
## Impact
|
|
|
|
- **System Networking**: Modifies `/etc/dhcpcd.conf`, `/etc/hostapd/hostapd.conf`, and `/etc/dnsmasq.conf`.
|
|
- **Hostname**: Updates `/etc/hostname` and `/etc/hosts`.
|
|
- **Resource Management**: Automatically manages swap file size during the build process to prevent OOM errors on 1GB RAM devices.
|
|
- **Security**: Sets an independent WPA2 password for the WiFi AP while leaving the system SSH password untouched.
|