Runtime Install — Windows mini-PC¶
How to set up the Windows mini-PC that hosts IMMERSE Runtime at the venue.
Hardware¶
- Any small Windows PC. Intel NUC, Beelink S12, Lenovo M75n, etc.
- Minimum spec: 4 GB RAM, 64 GB SSD, gigabit Ethernet
- Wired connection to the show network switch — not Wi-Fi
OS setup¶
- Install Windows 11 (Pro recommended for Group Policy, but Home works)
- Set the PC's hostname to something descriptive:
IMMERSE-RUNTIMEorruntime-{venue} - Set a static IP for the show network interface — match the IP plan from
site-prep.md - Install Edge or Chrome (you almost certainly have one already)
- Disable Windows Update during shows — it WILL try to reboot mid-show otherwise. Set "Active hours" to span your show schedule, or pause updates entirely on show days.
- Disable sleep/hibernation: Settings → System → Power → Screen and sleep → Never
- Disable Notifications during the show — focus assist or Do Not Disturb
Auto-login (recommended for unattended start)¶
If the venue powers down nightly and the Runtime PC has no human to log in:
Win+R→netplwiz- Uncheck "Users must enter a user name and password"
- Enter the password twice when prompted
- Reboot to verify it auto-logs in
Install IMMERSE Runtime¶
- Copy
IMMERSE-Runtime-v0.1.0.zipto the PC (USB stick or network) - Unzip to
C:\IMMERSE-Runtime\ - If Node.js isn't installed:
- Download Node.js LTS from https://nodejs.org
- Run the installer, defaults are fine
- Open Command Prompt in
C:\IMMERSE-Runtime\ - Run
npm install— this fetches thee131package (sACN library) and takes about 60 seconds - Test:
node src\runtime.js path\to\sample-show.ishow - You should see "IMMERSE Runtime v0.1.0 starting"
- A small browser window should pop up showing the dashboard
- In the console window, type
quit
Or: build the standalone EXE¶
For deployments where you don't want Node.js installed on the Runtime PC:
- On a development machine, run
npm run buildin the immerse-runtime folder - Copy
dist\immerse-runtime.exeto the Runtime PC - Copy the
.ishowfile alongside it - Run:
immerse-runtime.exe show.ishow
The exe is fully self-contained — no Node.js install needed.
Auto-start on boot¶
You want Runtime to launch when the PC boots, with the show file pre-loaded.
Option 1: Startup folder (simplest)¶
- Create a
.batfile like this: - Save it as
start-runtime.bat - Press
Win+R, typeshell:startup, press Enter - Drag a shortcut to
start-runtime.batinto the Startup folder - Reboot — Runtime should launch automatically
Pros: simple, requires no admin tools. Cons: only runs when the user is logged in. If Runtime crashes, no auto-restart.
Option 2: Task Scheduler (recommended for production)¶
- Open Task Scheduler
- Create Task (not Create Basic Task)
- General tab:
- Name: "IMMERSE Runtime"
- "Run whether user is logged on or not"
- "Run with highest privileges"
- Triggers tab:
- "At startup"
- Actions tab:
- "Start a program"
- Program:
node - Arguments:
C:\IMMERSE-Runtime\src\runtime.js C:\Shows\current-show.ishow - Start in:
C:\IMMERSE-Runtime - Settings tab:
- "If the task fails, restart every 1 minute"
- "Attempt to restart up to 5 times"
- Save (will prompt for the user password)
Pros: auto-restart on crash, runs without login, more robust. Cons: console output not visible — you have to tail the log file.
Option 3: NSSM (gives you a Windows service)¶
NSSM — Non-Sucking Service Manager — wraps any program as a Windows service. Use it if you want Runtime to behave like SQL Server or IIS — managed by services.msc, restartable, log-streamed.
nssm install IMMERSE-Runtime "C:\Program Files\nodejs\node.exe" "C:\IMMERSE-Runtime\src\runtime.js" "C:\Shows\current-show.ishow"
nssm set IMMERSE-Runtime AppDirectory C:\IMMERSE-Runtime
nssm set IMMERSE-Runtime AppStdout C:\Shows\logs\runtime-stdout.log
nssm set IMMERSE-Runtime AppStderr C:\Shows\logs\runtime-stderr.log
nssm start IMMERSE-Runtime
This is the most production-grade option. Recommended for permanent installations.
Open Runtime's ports through Windows Firewall¶
By default, Windows Firewall blocks inbound connections from other devices. Operator tablets won't reach the dashboard.
netsh advfirewall firewall add rule name="IMMERSE Runtime" dir=in action=allow protocol=TCP localport=7880
This opens port 7880 (the dashboard + API). DMX/sACN goes outbound, no firewall change needed.
Verify the install¶
Once Runtime is running:
- From the Runtime PC:
curl http://localhost:7880/status— should return JSON - From a separate device on the same network:
http://<runtime-ip>:7880/— should show the dashboard - From the Runtime PC's console:
statusandquitshould work - Check the log file: should show "Listening on" and "Loaded show"
Where things live¶
After install, expect this layout:
C:\IMMERSE-Runtime\ ← Runtime install
C:\Shows\ ← convention for show files
current-show.ishow ← the active show
archive\ ← prior versions
logs\ ← runtime log files
runtime.log
runtime.log.old
This isn't enforced by the software — Runtime just reads paths you give it on the command line — but it's a sane convention.
What to do when the show file changes¶
The designer has updated the show. Steps:
- Receive the new
.ishow(rsync, USB, email, whatever) - Validate it: from any machine,
node tools\ishow-validator.js newshow.ishow— should report 0 errors - Copy it to
C:\Shows\current-show.ishow(overwriting the previous version, after archiving the old one) - From the operator's dashboard or the console,
POST /loadorload <path>to reload without restarting Runtime - Or: restart the Runtime service if you prefer a clean state
You don't need to reboot the Runtime PC. Just reload the show.