Files
saphid--frame-control/tests/frame-container/Dockerfile
T
saphidandClaude Opus 5.5 aafd2dbda8 iPhone app: test pairing and power against a Holo Core stand-in
Valve publishes no Steam Frame OS image, so tests/frame-container builds the
Frame's SSH surface on Valve and Collabora's Holo Core aarch64 base: a
steamos user with a password and sudo, OpenSSH with keys and passwords,
Python, and a systemctl that only records requests.

Against it from the Simulator: password pairing, the host-key pin, the power
password check. Found and fixed: a changed host key or a refused login said
"Can't reach the Frame" and retried forever; they now say "Pair with the
Frame again" and offer that. The server's key rejection now says the header
may be wrong, not only missing.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-27 15:44:42 +10:00

14 lines
1.0 KiB
Docker

# A stand-in for the Frame's SSH surface, on Valve's Holo Core aarch64 base (the
# Arch Linux ARM64 port the Frame's SteamOS is built on).
FROM registry.gitlab.steamos.cloud/holo/holo-core-aarch64-preview/base-devel:latest
RUN pacman -Sy --noconfirm --needed openssh sudo python rsync procps-ng && pacman -Scc --noconfirm
# The Frame's user, with a Developer Mode style password and sudo, as on SteamOS.
RUN useradd -m -s /bin/bash steamos && echo 'steamos:frame-test-pw' | chpasswd \
&& echo 'steamos ALL=(ALL) ALL' > /etc/sudoers.d/steamos && chmod 440 /etc/sudoers.d/steamos
# SteamOS's sshd: keys and passwords, no keyboard-interactive.
RUN ssh-keygen -A && printf 'PasswordAuthentication yes\nKbdInteractiveAuthentication no\nUsePAM yes\n' > /etc/ssh/sshd_config.d/10-frame.conf
# No systemd here: a systemctl that records power requests instead of acting.
RUN printf '#!/bin/sh\necho "systemctl $*" >> /tmp/power-requests.log\n' > /usr/local/bin/systemctl && chmod +x /usr/local/bin/systemctl
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D", "-e"]