This script sets up and runs Steam within a Docker container on Linux. Steam data is persisted in an raw disk formatted as an ext4 with case sensitivity disabled (for better compatibility with some Windows games).
The script also supports mounting saves location for persisting.
- Docker installed on your system.
xhost
command available for managing X11 connections.chattr
,fallocate
,mkfs.ext4
, andtune2fs
installed for disk and filesystem management.sudo
access is needed for creating the loop device (the script will callsudo
)
git clone https://github.com/vvoland/sind && \
cd sind && \
sudo make install
- Build the
vlnd/steam
docker image withdocker buildx bake
(optional) - Copy the
sind
script to your preferredPATH
location
Run without arguments to simply start Steam.
sind
You can also pass in a game slug as an argument to launch the game directly.
sind [game]
- Civilization VI (
civ6
)
You can override the default configuration in a config file $HOME/.config/sind.conf
.
# Size that will be allocated for the disk (only affects the initial disk creation)
DISK_SIZE=500G
# Location of the ext4 file where Steam data will be stored
DISK_PATH=$HOME/steam.ext4
# Location that will be used to store game saves
# Personally, I use a path under a samba mount so my saves are synced between multiple devices
SAVES_PATH=/samba-share/Saves