Files
2026-07-12 10:17:17 -04:00

35 lines
1.1 KiB
Bash

#!/bin/bash
# Bootstraps Steam on a headless server without requiring X11 interaction.
# Bypasses the zenity license dialog that normally hangs headless installations.
set -e
# Get the current version expected by the Debian package
if [ -f "/usr/games/steam" ]; then
VERSION=$(grep -oP 'version="\K[^"]+' /usr/games/steam || echo "1.0.0.85")
else
VERSION="1.0.0.85"
fi
echo "Bootstrapping Steam headless installation (Version $VERSION)..."
STEAMDIR="$HOME/.steam/debian-installation"
mkdir -p "$STEAMDIR"
echo "Downloading Steam bootstrap tarball..."
curl -fsSL "https://repo.steampowered.com/steam/archive/beta/steam_${VERSION}.tar.gz" | tar -xz -C "$STEAMDIR"
echo "Extracting embedded Steam runtime..."
tar -xJf "$STEAMDIR/steam-launcher/bootstraplinux_ubuntu12_32.tar.xz" -C "$STEAMDIR"
echo "Marking installation version..."
mkdir -p "$STEAMDIR/deb-installer"
echo "$VERSION" > "$STEAMDIR/deb-installer/version"
echo "Creating required API symlinks..."
ln -fns "$STEAMDIR" "$HOME/.steam/steam"
ln -fns "$STEAMDIR" "$HOME/.steam/root"
echo "Steam is now bootstrapped."
echo "Run 'DISPLAY=:0 steam' to trigger the background update (takes ~3 minutes)."