Replace auto-download with an interactive HTML game setup UI

No games are fetched at container start anymore. scripts/setup_server.py
is a small stdlib-only Python HTTP server, started alongside Xvnc/fluxbox/
websockify, serving an HTML page on ${SETUP_PORT} (70${DISPLAY_NUM},
published as 7099 by run.sh) that lists every *.zip found live on the SMB
share with an Installed/Install status per game. Clicking Install
downloads and extracts just that game into ${GAMES_HOME} on demand.
Replaces the old fetch_games.sh, which unconditionally pulled every game
on first start.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NiNnj78HGx1KWyCCo39HSz
This commit is contained in:
2026-07-28 08:37:12 +02:00
co-authored by Claude Sonnet 5
parent 44bbd00336
commit c6ae36ba67
6 changed files with 181 additions and 29 deletions
+7 -4
View File
@@ -5,8 +5,11 @@
layer (so the downloaded zips and the packages only needed to extract them no longer
persist in the final image). 2.31GB -> 1.6GB.
2. Stopped baking the games into the image at all (927MB of that was just t7g's two CD
ISOs). `scripts/fetch_games.sh` now downloads them from the SMB share into
`${GAMES_HOME}` (`/opt/games`) on first container start instead, skipping the fetch if
already present. `run.sh` mounts a named volume (`dosbox-games`) so the games persist
ISOs). `run.sh` mounts a named volume (`dosbox-games`) so installed games persist
across `--rm` restarts. 1.6GB -> ~690MB. Container now needs network access to
`vlda-01` at runtime (not just build time) for the first start.
`vlda-01` at runtime (not just build time) to install games.
3. Dropped the auto-download at container startup entirely. `scripts/setup_server.py` is
a small stdlib-only HTTP server (started alongside Xvnc/fluxbox/websockify) that serves
an HTML page on `${SETUP_PORT}` (`70${DISPLAY_NUM}`, published as `7099` by `run.sh`)
listing every `*.zip` on the SMB share with an Installed/Install status per game; the
user clicks "Install" to fetch+extract a specific game into `${GAMES_HOME}` on demand.