Turn an old PC into a single purpose Factorio machine that auto launches the game
Build a slim 150 MB ISO that boots Factorio in a VM for quick testing
Set up a household Factorio kiosk where each player picks their own save profile
Build host needs archiso, pacman, base-devel, and erofs utils, and the system uses one shared factorios user with per player data kept only by directory.
FactoriOS is described in the README as a joke Linux distribution whose only job is to play the game Factorio. After boot, the system shows a graphical login that takes the player's factorio.com credentials, then a chooser for picking a Factorio version and a save profile, and then the game itself. The README is explicit that there is nothing else on the system. The project is in early scaffolding. The pieces that work today are a Python launcher library that handles factorio.com login, version downloads, and profile management, a GTK4 greeter app that draws the login and chooser screens, an archiso profile that boots into the installer, and a shell installer that partitions the disk and lays down the system. The repository is organized into folders for each of these pieces, plus a packages folder with Arch PKGBUILDs and a systemd folder with the factorios.service unit. Building the ISO is a single command. Running ./build.sh produces a slim 150 MB ISO that works in virtual machines and on hardware with ethernet plus Intel or AMD graphics. Running ./build.sh full produces an 800 MB ISO that also includes linux firmware for WiFi and newer AMD or NVidia GPUs. The build needs archiso, pacman, base devel, and erofs utils on the host. GitHub Actions also builds the ISO on every push to main and uploads it as an artifact, and tag pushes build both ISOs and attach them to a GitHub Release. Updates work through pacman. The installer wires a project specific pacman repository hosted on GitHub Pages into the configuration of every installed system, so pacman -Syu upgrades both Arch packages and FactoriOS packages together. The greeter has an Updates button that calls pacman through a tightly scoped sudoers rule that only allows those two exact commands. The identity model is unusual. There are no normal Linux user accounts. A single system user called factorios runs every session, and per player data is kept under /var/lib/factorios/users/<factorio username>/, separated only by directory. A profile is a full Factorio write data directory containing saves, mods, configuration, achievements, and player data. Switching profiles re symlinks ~/.factorio at the selected one. Profiles are split between Vanilla and Space Age because mod compatibility differs between them, and ownership of the Space Age DLC is detected at login by probing the download endpoint. If the account only owns Vanilla, the build selector is hidden.
Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.