One-shot setup scripts for Forgejo Actions runners — Linux (Ubuntu/Fedora/Debian) and Windows 11 Pro. Installs ALL build dependencies for crashmedia repos.
  • PowerShell 59.3%
  • Shell 40.7%
Find a file
crashmedia cd8d5ed514 Initial: Forgejo runner setup scripts for Linux and Windows
- setup-forgejo-runner.sh: Linux (Ubuntu 22.04/24.04/25.04, Debian 12/13, Fedora 41/42)
  Installs: build tools, CMake, Ninja, GCC/Clang, .NET 8, Rust, Node.js,
  Go, Python, PHP 8.3+, PowerShell, Boost, OpenSSL, FFmpeg, CUDA 12.x,
  MariaDB/MySQL, PostgreSQL, SQLite, Docker, Podman + 50+ libs

- setup-forgejo-runner.ps1: Windows 11 Pro
  Installs: VS 2022 Build Tools, MSYS2 UCRT64, .NET 8+9, Rust (MSVC+GNU),
  Node.js (fnm), Go, Python, PHP 8.3+, vcpkg libs, CUDA 12.x, MariaDB,
  PostgreSQL, Docker Desktop + Forgejo runner as Scheduled Task

Both scripts are fully idempotent and install ALL build dependencies
across the crashmedia organization's 13+ active repositories.
2026-05-20 22:26:10 +00:00
README.md Initial: Forgejo runner setup scripts for Linux and Windows 2026-05-20 22:26:10 +00:00
setup-forgejo-runner.ps1 Initial: Forgejo runner setup scripts for Linux and Windows 2026-05-20 22:26:10 +00:00
setup-forgejo-runner.sh Initial: Forgejo runner setup scripts for Linux and Windows 2026-05-20 22:26:10 +00:00

ForgejoRunners

One-shot setup scripts for Forgejo Actions runners. Installs every conceivable build dependency for all crashmedia repos on both Linux and Windows.

Quick Install

Linux (Ubuntu/Debian/Fedora)

# Run as root or with sudo
sudo bash -c "$(curl -fsSL https://git.crashmedia.ca/crashmedia/ForgejoRunners/raw/branch/main/setup-forgejo-runner.sh)"

Windows 11 Pro

# Run as Administrator
iwr -useb https://git.crashmedia.ca/crashmedia/ForgejoRunners/raw/branch/main/setup-forgejo-runner.ps1 | iex

Both scripts are fully idempotent — run them as many times as you like. They only install/update what's missing.


What Gets Installed

Linux Script (setup-forgejo-runner.sh)

Phase What Repos That Need It
Build Tools CMake 3.30+, Ninja, GCC/G++ 13+14, Clang/LLVM, autotools, ccache, pkg-config Apollo, inputtino, libdisplaydevice
.NET 8 SDK dotnet-sdk-8.0, ASP.NET runtime CMRemote, CrashCraftsMic (companion)
Rust rustup + stable toolchain, cargo CMRemote agent-rs, CrashCraftsMic, CrashCraftsGameSync, webrtc-cmremote
Node.js NVM (LTS), npm, pnpm, yarn Apollo (web UI), CMRemote, Cm_comic, Arctic_Wolves, opencode, shared-web, Decky plugin
Go Latest Go toolchain Cm_comic, goreleaser (mirror)
Python 3 python3, pip, venv, dev headers CrashCraftsMic (Decky), flatpak-builder-tools, audit
PHP 8.3+ php-cli, mysql, sqlite3, curl, gd, mbstring, xml, zip, intl Arctic_Wolves
PowerShell pwsh (cross-platform) computer-setup
C++ Libraries Boost (all), OpenSSL, curl, FFmpeg (full), VA-API, DRM/KMS, evdev, PulseAudio, Opus, miniupnpc, X11, Wayland, libcap, libnuma, libnotify, appindicator, libgbm, xkbcommon, pipewire, nlohmann-json, Google Test Apollo, inputtino, libdisplaydevice
CUDA 12.x NVIDIA CUDA toolkit (auto-detects GPU) Apollo (NVENC)
Databases MariaDB/MySQL, PostgreSQL, SQLite3 Arctic_Wolves (MySQL), CMRemote (SQLite), Cm_comic (SQLite)
Containers Docker CE + compose, Podman + Buildah (Fedora) CrashCraftsGameSync, Apollo
Extra Tools git-lfs, jq, xvfb, doxygen, graphviz, rsync, NSIS, Mono, Java JDK, Ruby, Lua, Flatpak, patchelf Docs, testing, packaging
Forgejo Runner Latest binary, systemd service, dedicated user, config at /etc/forgejo-runner/ CI/CD

Windows Script (setup-forgejo-runner.ps1)

Phase What Notes
Prerequisites Chocolatey, Git, 7-Zip, vcredist-all Auto-installs Chocolatey if missing
VS Build Tools VS 2022 + C++ workload, Windows SDK, CMake, Ninja, ccache Required for .NET + native C++ builds
MSYS2 UCRT64 GCC, Boost, OpenSSL, curl, FFmpeg, Opus, libevdev, PulseAudio Cross-compilation for Apollo
Languages .NET 8+9 SDK, Rust (MSVC+GNU), Node.js (fnm), Go, Python 3, PHP 8.3+, PowerShell Core All runtimes
C++ Libs vcpkg (Boost, OpenSSL, curl, FFmpeg...), MinHook, ViGEmClient Windows-native builds
CUDA 12.x NVIDIA CUDA toolkit (auto-detects GPU) For Apollo NVENC
Databases MariaDB, PostgreSQL, SQLite Local dev/test databases
Docker Docker Desktop + WSL2 Container builds
Forgejo Runner Latest binary, Scheduled Task auto-start, config at C:\ProgramData\ForgejoRunner\ CI/CD

Supported Distros

Platform Versions
Ubuntu 22.04 (jammy), 24.04 (noble), 25.04 (plucky)
Debian 12 (bookworm), 13 (trixie)
Fedora 41, 42
Windows 11 Pro (22H2+)

Architecture Support

  • x86_64 / amd64 — fully tested
  • aarch64 / arm64 — Linux only (script auto-detects)

Post-Install: Register the Runner

After the script finishes, you still need to register the runner with your Forgejo instance:

# Linux
sudo forgejo-runner register --config /etc/forgejo-runner/runner-config.yml
sudo systemctl enable --now forgejo-runner

# Windows (run as Administrator)
& "C:\Program Files\ForgejoRunner\forgejo-runner.exe" register --config "C:\ProgramData\ForgejoRunner\runner-config.yml"

Get a registration token from: Repository → Settings → Actions → Runners → Generate Registration Token

License

MIT