Files
mapper/openspec/changes/mpvj-headless-setup-script/proposal.md
Timothy Hofland 7928a2be9b feat: add headless-setup-script and OpenSpec artifacts
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.
2026-03-10 22:23:58 +01:00

1.8 KiB

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.