Arch Linux
Install the Punktfunk host on Arch, CachyOS or EndeavourOS from the signed pacman repo — four steps.
For Arch Linux and Arch-based distros (CachyOS, EndeavourOS, …). The host comes from a signed
binary repo and updates with pacman -Syu like everything else. SteamOS is different — it has
its own page.
1. GPU driver
- NVIDIA:
sudo pacman -S --needed nvidia-utils(NVENC and the zero-copy path; Arch'sffmpegalready has NVENC built in). - AMD / Intel: the Mesa stack you already have —
vulkan-radeon/vulkan-intelfor Vulkan Video,libva-mesa-driver/intel-media-driverfor VAAPI. Usually all installed on a desktop.
2. Install the host
Trust the repo key once, add the repo, install. Every install and update here is a full
-Syu on purpose — our packages are built against current Arch sonames, and pacman -Sy <pkg> is
the partial upgrade that breaks Arch boxes:
curl -fsS https://git.unom.io/api/packages/unom/arch/repository.key | sudo pacman-key --add -sudo pacman-key --lsign-key E0CA04465C99C936E0B0C6510A317015A34DDD69grep -q '^\[punktfunk\]' /etc/pacman.conf || printf '\n[punktfunk]\nServer = https://git.unom.io/api/packages/unom/arch/$repo/$arch\n' | sudo tee -a /etc/pacman.conf >/dev/nullsudo pacman -Syu punktfunk-hostThe browser console is optional on Arch, so name it yourself — same line, full upgrade:
sudo pacman -Syu punktfunk-web. (Also in the repo: punktfunk-gamescope for HDR off gamescope,
punktfunk-scripting for plugins, punktfunk-client if this box is also a client.)
From then on a normal sudo pacman -Syu moves every Punktfunk package; restart the host afterwards
(systemctl --user restart punktfunk-host) — or let the console do it.
3. Let it use your controllers
Join the input group (virtual gamepads go through /dev/uinput), then log out and back in:
sudo usermod -aG input "$USER"Want the virtual Steam Deck controller (paddles, trackpads, gyro)? Also join the punktfunk
group — what it gates and why it's separate.
4. Start it
From a terminal inside your desktop session:
systemctl --user enable --now punktfunk-host punktfunk-web
systemctl --user enable --now punktfunk-scripting # if you installed the plugin runner — other distros start it for you, Arch doesn'tFirewall: stock Arch has none. CachyOS enables ufw, EndeavourOS enables firewalld —
on those the host is unreachable until you allow it (the package installed the profiles):
sudo ufw allow punktfunk-native && sudo ufw allow punktfunk-web # CachyOS (ufw)
sudo firewall-cmd --reload && sudo firewall-cmd --permanent --add-service=punktfunk-native --add-service=punktfunk-web && sudo firewall-cmd --reload # firewalldPorts & firewall has every port, and the GameStream profile if you turn Moonlight compat on.
That's the install. Continue with the Quick Start from step 3 — open the console, pair a client, stream.
When you want more
- pacman says
database already registered? The repo got added twice — the one-line fix.unable to satisfy dependency 'libavcodec.so=…'? FFmpeg major mismatch — what to do. punktfunk-host detect-conflictstells you if Sunshine or Apollo is also running; Troubleshooting starts from the symptom.- Your desktop's particulars — KDE, GNOME, gamescope, Hyprland, Sway.
- Stream with nobody logged in — Running as a service (
sudo loginctl enable-linger "$USER"is the one extra line). - Track
maininstead of releases ([punktfunk-canary], sameServerline — enable exactly one) — Release channels. Build it yourself with the splitPKGBUILD— Build from source.