Files
punktfunk/docs-site/content/docs/requirements.md
enricobuehler cba3ae48e2
apple / swift (push) Successful in 56s
ci / rust (push) Successful in 1m37s
ci / web (push) Successful in 31s
ci / docs-site (push) Successful in 40s
android / android (push) Successful in 3m19s
deb / build-publish (push) Failing after 1m9s
decky / build-publish (push) Successful in 22s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 5s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 4s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 3s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 2m21s
ci / bench (push) Successful in 4m45s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 26s
rpm / build-publish (fedora-44, punktfunk-fedora44-rpm) (push) Failing after 3m22s
docker / deploy-docs (push) Successful in 18s
rpm / build-publish (bazzite, punktfunk-fedora-rpm) (push) Successful in 10m25s
docs: update README + docs site for public readiness
Refresh the README and documentation for public visitors:

- README: public-facing rewrite with accurate status for all four native
  clients (macOS, Linux, Windows, Android) and the Windows host.
- docs site: fix stale client status (Android is a full client, not a
  scaffold; Windows client is stage-1 complete + signed MSIX), add the
  missing Android client section, correct "which client" guidance.
- Windows host: corrected from "deferred/scoped" to implemented & shipping
  (NVIDIA-only, x64-only) across windows-host, roadmap, status,
  requirements, running-as-a-service, and the README.
- Remove internal infrastructure from public docs (box names, private IPs,
  SSH/token commands, deploy topology); rewrite status.md as a public
  project-status page; sanitize ci.md and implementation-plan.md.
- Update clients/android and clients/apple READMEs to current state.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 18:59:23 +02:00

3.2 KiB

title, description
title description
Requirements What you need to run a punktfunk host — GPU, driver, desktop, and network.

Supported setups

A punktfunk host runs primarily on a Linux machine with an NVIDIA GPU (a native Windows host is also available — see below). These are the Linux desktop environments it supports today, each with its own guide:

Setup Desktop / compositor Guide
Ubuntu (Desktop or Server) GNOME (Mutter) Ubuntu — GNOME
Ubuntu (Desktop or Server) KDE Plasma (KWin) Ubuntu — KDE
Fedora KDE Plasma (KWin) Fedora — KDE
Bazzite gamescope (Steam) Bazzite

Other wlroots compositors (Sway/Hyprland) also work but aren't a primary target. If your desktop isn't listed, the host still needs one of these compositor backends to create a virtual display.

Windows host: punktfunk also runs as a native host on Windows 10/11 (x64) with an NVIDIA GPU — a signed installer that registers a service and bundles a virtual-display driver. It's NVIDIA-only and newer than the Linux host; see Windows Host.

GPU and driver

  • An NVIDIA GPU with NVENC — effectively any GeForce RTX or workstation card. NVENC is what encodes the video in hardware.
  • NVIDIA driver 535 or newer (550+ recommended). The driver must include the GL/EGL userspace, not just nvidia-utils — without it the compositor can't initialise the GPU and capture fails. Each setup guide installs the right package (e.g. libnvidia-gl-<version> on Ubuntu).
  • nvidia-drm modeset=1 must be enabled (Wayland on NVIDIA needs it). The setup guides cover this.

Consumer GeForce cards historically cap the number of concurrent NVENC sessions (a few at once); workstation cards don't. This only matters if you stream to many devices simultaneously.

Desktop session

The host attaches to a Wayland desktop session and creates virtual displays in it, so a session needs to be running for the user the host runs as. This can be:

  • a normal logged-in desktop (you're sitting at the machine, or it auto-logs-in), or
  • a headless session that comes up at boot with no monitor or login — see Running as a Service.

Minimum compositor versions (newer is fine):

  • KWin ≥ 6.5.6 (KDE Plasma) — headless virtual outputs.
  • GNOME ≥ 48 (Mutter) — virtual-monitor screen-cast.
  • gamescope ≥ 3.16.22 (Bazzite/Steam) — older versions deadlock during capture.

Network

  • Host and client on the same network — a LAN, or a VPN that puts them on one subnet. punktfunk assumes a trusted local network; it's not built to be exposed to the public internet.
  • For best results, a wired or fast Wi-Fi link. The host can run a built-in speed test to pick a bitrate for your link (see Configuration).

A client

You also need something to stream to — see Connect a Client. There are native punktfunk clients for Apple (macOS, iOS, iPadOS, tvOS), Linux, Windows, and Android, and any Moonlight client works too. All of them can discover the host on your network automatically.