Designed to be rerun, not feared
Two folders, clear roles: ~/rotaos is the disposable source package, /opt/rotaos is the live system the commands operate on. In between, an installer that never breaks what it has already done.
Idempotent installa.sh
Rerun it as often as needed without overwriting work already done. It adds the user to the docker group and works around the stale session with sg docker: rota commands work right away.
The rota command
Available everywhere without aliases: service status, NAS power-on, stack management. The booth is run from a single line.
Guacamole in the right place
The remote desktop lives on the NAS: it is x86 (official images), guacd is the most CPU-hungry service, and the 07:30โ24:00 schedule covers real use. Port 8081, because 8080 is already taken.
Tailscale as the entrance
The Pi acts as a subnet router: your home network follows you in your pocket, without opening ports on the router or exposing anything to the internet.
Spare microSD, forever
The system runs on NVMe after cloning, but the 256GB microSD stays in the slot as a backup system: the closed case makes it unreachable, and that's perfectly fine.
Vault included
A CSV with 25 credentials ready to import into 1Password: every service is born with its own entry in the vault, not on a sticky note.
The booth, piece by piece
The desktop turns itself on (and off)
The desktop PC no longer needs a finger on the button: a smart plug cuts standby power, UpSnap sends the magic packet, Guacamole opens the desktop in the browser. On shutdown, a ping watchdog waits for 6 minutes of silence โ long enough not to be fooled by the dual-boot restart โ and then cuts the power.
Switch on the booth. The rest follows.
Flash the microSD, first boot, clone to NVMe, installa.sh: four steps and the control room is up. The six PDF manuals guide you from first boot to the film library.
Back to the machine room