Trivia Mayhem Pub-trivia game system — installer for Opal router + Odroid player
What you need
- GL.iNet Opal (GL-SFT1200) — the WiFi router that hosts the captive portal
- Odroid (Hardkernel) — the player that runs the game
- A laptop with internet — used once during install, then disconnected
- An Ethernet cable from laptop to one Opal LAN port
- An Ethernet cable from Odroid to the other Opal LAN port
- An HDMI cable + TV for the Odroid (operator/team display)
Topology during install
The laptop’s internet is shared through to the Odroid only during install (laptop turns into a temporary NAT router so the Odroid can pull Docker + Chromium from the internet). After install, the laptop disconnects and the system runs offline.
Install steps
Wire it all up
Power on the Opal. Connect the laptop and the Odroid into the Opal’s LAN ports. Plug the Odroid into a TV via HDMI (it will boot into a kiosk Chromium pointed at the operator screen).
Unzip the installer on the laptop
unzip trivia-final.zip
cd trivia-final
./install.sh
Pick option 3 (auto-deploy via SSH to remote Odroid). The script asks one optional question — whether to bundle test games for the demo.
Type your sudo password (laptop) once
If the Opal isn’t connected to internet (it usually isn’t), the script briefly turns the laptop into a NAT router so the Odroid can pull Docker + Chromium. One sudo prompt, that’s it.
Wait ~5 minutes
The script:
- initializes the Opal’s admin password (saved to
~/.cache/trivia-final/opal-passon your laptop) - auto-detects the Odroid by Hardkernel MAC OUI
- installs an SSH key + passwordless sudo on the Odroid
- configures the Opal: SSID
Trivia Mayhem(open), captive portal, MAC pinned to192.168.8.100 - installs Docker + the player stack on the Odroid
- sets up Chromium kiosk autostart and the USB game-import watcher
Disconnect the laptop
You’re done. The Opal + Odroid keep running on their own. Plug the Odroid into a TV and a power source — that’s the whole setup.
Building games on a desktop separate machine
The same installer ZIP also sets up the generators — four tkinter apps that build the games themselves. Use any Linux laptop or desktop you like; this machine never has to talk to the Opal or the Odroid.
unzip trivia-final.zip
cd trivia-final
./install.sh # pick option 1 (Generators)
What you get on the desktop:
- Four desktop icons: Trivia — S3A, Trivia — MC4, Trivia — 50 50, Trivia — MasterBuilder
- A Python venv with the Anthropic SDK (paste your API key into the AI panel inside any generator once)
- The seeded obsidian notes vault under
~/trivia/data/obsidian/
Workflow:
- Open S3A / MC4 / 50-50, pick an obsidian note, click Build. Output lands in
~/trivia/games/<slug>/(one folder per individual game). - Open MasterBuilder. Pick the games for the show, click Export.
Output lands in
~/trivia/data/exports/export_NNN/— that’s the show bundle.
Getting a show onto the Odroid USB stick
- Format a USB stick with label
TRIVIA_GAMES:sudo mkfs.exfat -n TRIVIA_GAMES /dev/sdX1 - Copy the
export_NNN/folder from~/trivia/data/exports/onto the stick. - Plug the stick into the Odroid (any USB port). No clicks, no terminal.
- The Odroid auto-mounts, copies all
export_*folders into the player, then unmounts. Watch the Odroid LED:- slow blink — waiting for the stick to mount
- fast blink — copying
- solid ON — done, safe to remove
- The new show shows up automatically on the operator screen — no restart needed.
At the venue
No internet. No laptop. Just plug:
- Opal into power
- Odroid into power + HDMI to the venue TV
The Odroid auto-boots into the operator screen. Players join the
Trivia Mayhem WiFi (open, no password), the captive portal lands them on
the phone UI, and the show runs.