Trivia Mayhem Pub-trivia game system — installer for Opal router + Odroid player

Development LIVE & Active v2026.04.30-0015 · last update: 2026-04-30 00:15 UTC
⬇ Download installer (trivia-final.zip)
~67 MB · Linux / macOS · player stack, generators, Opal config, USB watcher, plus one bundled demo show ("Steve McQueen Movies" — auto-installs on the Odroid for first-boot demo)

What you need

Topology during install

╔═══════════════╗ ║ Internet ║ ← only the laptop has internet ╚═══════╦═══════╝ │ WiFi ┌───────▼────────┐ │ Laptop │ runs ./install.sh, drives the deploy │ 192.168.8.x │ └───────┬────────┘ │ Ethernet (LAN port 1) ┌───────▼────────┐ │ Opal router │ gets configured (SSID "Trivia Mayhem", │ 192.168.8.1 │ captive portal, DHCP lease pin) │ no WAN needed │ └───────┬────────┘ │ Ethernet (LAN port 2) ┌───────▼────────┐ │ Odroid │ gets the docker stack installed │ 192.168.8.100 │ (Flask + nginx + WS), kiosk autostart └────────────────┘ (plays the game)

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

1

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).

2

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.

3

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.

4

Wait ~5 minutes

The script:

  • initializes the Opal’s admin password (saved to ~/.cache/trivia-final/opal-pass on 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 to 192.168.8.100
  • installs Docker + the player stack on the Odroid
  • sets up Chromium kiosk autostart and the USB game-import watcher
5

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:

Workflow:

  1. Open S3A / MC4 / 50-50, pick an obsidian note, click Build. Output lands in ~/trivia/games/<slug>/ (one folder per individual game).
  2. 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

  1. Format a USB stick with label TRIVIA_GAMES:
    sudo mkfs.exfat -n TRIVIA_GAMES /dev/sdX1
  2. Copy the export_NNN/ folder from ~/trivia/data/exports/ onto the stick.
  3. Plug the stick into the Odroid (any USB port). No clicks, no terminal.
  4. 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
  5. The new show shows up automatically on the operator screen — no restart needed.

At the venue

No internet. No laptop. Just plug:

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.

Tip: the laptop’s sudo password is needed once for the NAT step during install if the Opal has no internet uplink. If you plug the Opal’s WAN port into a home router (with internet) for the install, that step is skipped and the install runs truly hands-off.