punktfunkpunktfunk

Install the Host

Install the punktfunk host — on Linux from its package registry, or on Windows from a signed installer.

On Linux, the package registries are the real distribution channel. Pick your distro, add the repo, and install with your native package manager. Each row links to the full per-distro guide (add the repo, first-run steps, the web console) — those are the source of truth, so this page doesn't duplicate them. On Windows (NVIDIA), the host ships as a signed installer instead — see Windows.

Pick your distro

DistroPackage managerOne-command happy pathGuide
Ubuntu / Debianaptsudo apt install punktfunk-hostUbuntu — GNOME · Ubuntu — KDE · packaging/debian
Fedora / Bazziterpm-ostreerpm-ostree install punktfunk punktfunk-webFedora — KDE · Bazzite · packaging/rpm
ArchPKGBUILDmakepkg -sipackaging/arch
SteamOS (host)on-device scriptbash scripts/steamdeck/install.shSteamOS (Host)

Each registry is public — no auth, you just trust the repo's signing key. Adding the repo is a one-time step covered in the linked guide; after that, normal apt upgrade / rpm-ostree upgrade tracks new builds automatically.

Stable vs canary. The repos in the per-distro guides are the stable channel — it only moves when a vX.Y.Z release is cut. For the latest main build (fast, possibly broken), point at the canary channel instead (canary apt distribution / *-canary rpm group). See Release Channels.

Windows (NVIDIA)

punktfunk also runs as a native host on Windows 10/11 (x64) with an NVIDIA GPU, shipped as a signed installer — see Windows Host for what it includes and its limitations.

  1. From the packages page (generic group), download the newest punktfunk-host-setup-<ver>.exe and its matching .cer.

  2. Trust the publisher certificate once. The installer is signed with a self-signed certificate whose public .cer is published next to it — the same certificate for every release, so this is genuinely one-time and later updates need nothing. In an admin PowerShell:

    Import-Certificate -FilePath .\punktfunk-host-setup.cer `
      -CertStoreLocation Cert:\LocalMachine\TrustedPublisher
  3. Run punktfunk-host-setup-<ver>.exe (elevated). It installs to C:\Program Files\punktfunk, installs the bundled pf-vdisplay virtual-display driver, and registers + starts the LocalSystem service (/VERYSILENT for an unattended install). Upgrades and uninstall go through Add/Remove Programs.

For hardware encode you need a GPU — NVIDIA (NVENC), AMD (AMF), or Intel (QSV); there's a software fallback without one. More detail — including the CLI punktfunk-host service install path — is in Running as a Service → Windows.

What the packages are

  • punktfunk-host — the streaming host. Install this on your Linux + NVIDIA gaming machine.
  • punktfunk-web — the browser management console (pairing + status). Recommended alongside the host; on RPM list it explicitly (rpm-ostree install punktfunk punktfunk-web).
  • punktfunk-client — the GTK4 desktop client, for streaming to a Linux box (also shipped via apt / RPM / Arch / Flatpak). On a Steam Deck, this is the package you want.

After installing

  1. Add yourself to the input group (virtual gamepads need /dev/uinput), then re-login. The exact command differs per distro — see your guide (usermod -aG input "$USER", or ujust add-user-to-input-group on Bazzite).

  2. Start the host inside your desktop session:

    punktfunk-host serve

    Bare serve is the secure native-only default (native punktfunk/1 + the web console). On a trusted LAN, add --gamestream to also serve stock Moonlight clients.

  3. Enable the web console and read its login password, then open http://<host-ip>:3000:

    systemctl --user enable --now punktfunk-web
    journalctl --user -u punktfunk-web-init | sed -n 's/.*password generated: //p'

From there, follow the Quick Start to pair your first client. To run the host automatically at boot, see Running as a Service.

Building from source

If no package exists for your platform, you can build from source — see the repository README. Source builds are a fallback; the registries are the supported path.

On this page