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
+5 -3
View File
@@ -7,10 +7,11 @@ ENV GAMES_HOME=/opt/games
ENV SCRIPTS_HOME=/opt/scripts
ENV PATH=${PATH}:${SCRIPTS_HOME}
# unzip/smbclient are needed at runtime now too: the games are no longer baked into the
# image, fetch_games.sh pulls them into the ${GAMES_HOME} volume on first container start.
# unzip/smbclient/python3 are needed at runtime: the games are no longer baked into the
# image, setup_server.py serves an HTML install UI (backed by smbget+unzip) that the user
# drives on ${SETUP_PORT} instead of anything being auto-downloaded at container start.
RUN apt-get update && \
apt-get -y install --no-install-recommends dosbox alsa-utils unzip smbclient && \
apt-get -y install --no-install-recommends dosbox alsa-utils unzip smbclient python3 && \
rm -rf /var/lib/apt/lists/*
RUN openssl req -x509 -nodes -newkey rsa:2048 -keyout /tmp/novnc.key -out /tmp/novnc.pem -days 3650 -subj "/C=US/ST=NY/L=NY/O=NY/OU=NY/CN=NY emailAddress=email@example.com"
@@ -23,6 +24,7 @@ ADD scripts ${SCRIPTS_HOME}
WORKDIR /
EXPOSE 60${DISPLAY_NUM}
EXPOSE 70${DISPLAY_NUM}
EXPOSE 5900
ENTRYPOINT ["/opt/scripts/server_start.sh", "/opt/scripts/server.sh"]