69fcb6e0b1
apple / swift (push) Successful in 1m8s
apple / screenshots (push) Successful in 5m33s
android / android (push) Successful in 4m43s
arch / build-publish (push) Successful in 5m38s
ci / web (push) Successful in 1m3s
ci / docs-site (push) Successful in 1m17s
ci / rust (push) Successful in 4m48s
ci / bench (push) Successful in 5m7s
decky / build-publish (push) Successful in 14s
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 5s
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 4s
deb / build-publish (push) Successful in 4m29s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 1m16s
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Successful in 10m24s
docker / deploy-docs (push) Successful in 6s
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Successful in 10m3s
Split the docs' single distro×desktop axis (ubuntu-gnome / ubuntu-kde / fedora-kde) into two,
which deduplicates the shared mechanics and scales to distros that run several desktops (Arch):
- Install the host — per distro/OS (ubuntu, fedora, arch, bazzite, steamos-host, windows-host):
GPU driver + package + input group, then a canonical "Configure your desktop" funnel.
- Configure your desktop — per compositor (kde, gnome, gamescope, sway): host.env, compositor
quirks, the headless session, and starting the host.
New shared web-console page (enable · login password · arm pairing) removes the console/password
block that was copy-pasted across all seven host pages. Merged ubuntu-gnome + ubuntu-kde into
ubuntu; renamed fedora-kde to fedora; kept bazzite and steamos-host as dedicated appliance guides
(trimmed of duplication). Moved the KWin headless session, the GNOME EGL/lock traps, and the
gamescope attach/managed model out of the distro pages onto their compositor pages.
Fixed while restructuring: distro-specific paths on kde (kde-desktop-setup.sh is Fedora/Bazzite-only;
the .deb ships host.env.kde under /usr/share/punktfunk-host), the interactive "start the host" step
that was lost in the merge, sway over-claiming Hyprland, and a pre-existing broken anchor in
how-it-works.
Removal of the three old pages was captured by the preceding commit 8ebb614 (a concurrent commit
swept up the staged git-rm); the net docs tree is correct. Fumadocs build + internal link/anchor
check green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
105 lines
5.7 KiB
Markdown
105 lines
5.7 KiB
Markdown
---
|
|
title: Install the Host
|
|
description: 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**, the host ships as a signed installer instead — see [Windows](#windows).
|
|
|
|
> **First, read [Security & Safe Use](/docs/security).** A streaming host is remote control of the
|
|
> machine. It's built for trusted local networks — don't expose it to the internet, and be thoughtful
|
|
> about which machine you host on (especially on Windows).
|
|
|
|
## Pick your distro
|
|
|
|
| Distro | Package manager | One-command happy path | Guide |
|
|
|--------|-----------------|------------------------|-------|
|
|
| **Ubuntu / Debian** | apt | `sudo apt install punktfunk-host` | [Ubuntu / Debian](/docs/ubuntu) · [packaging/debian](https://git.unom.io/unom/punktfunk/src/branch/main/packaging/debian/README.md) |
|
|
| **Bazzite / Fedora Atomic** | systemd-sysext | `sudo bash punktfunk-sysext.sh install` (no layering, no reboot) | [Bazzite](/docs/bazzite) · [packaging/bazzite](https://git.unom.io/unom/punktfunk/src/branch/main/packaging/bazzite/README.md) |
|
|
| **Fedora (dnf)** | dnf / rpm-ostree | `dnf install punktfunk punktfunk-web` | [Fedora](/docs/fedora) · [packaging/rpm](https://git.unom.io/unom/punktfunk/src/branch/main/packaging/rpm/README.md) |
|
|
| **Arch** | pacman | `pacman -Sy punktfunk-host` (binary repo) | [Arch Linux](/docs/arch) · [packaging/arch](https://git.unom.io/unom/punktfunk/src/branch/main/packaging/arch/README.md) |
|
|
| **SteamOS (host)** | on-device script | `bash scripts/steamdeck/install.sh` | [SteamOS (Host)](/docs/steamos-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` / `dnf upgrade` /
|
|
`pacman -Syu` (or `sudo punktfunk-sysext update` on Bazzite) tracks new builds.
|
|
|
|
> **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](/docs/channels).
|
|
|
|
## Windows
|
|
|
|
punktfunk also runs as a native host on **Windows 11 22H2+ (x64)**, shipped as a signed
|
|
installer — see [Windows Host](/docs/windows-host) for what it includes and its limitations.
|
|
|
|
1. From the [packages page](https://git.unom.io/unom/-/packages) (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:
|
|
|
|
```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](/docs/running-as-a-service#windows).
|
|
|
|
## What the packages are
|
|
|
|
- **`punktfunk-host`** — the streaming host. Install this on your Linux gaming machine.
|
|
- **`punktfunk-web`** — the browser management console (pairing + status). Recommended alongside the
|
|
host; on RPM list it explicitly (`dnf install punktfunk punktfunk-web`) — the Bazzite sysext
|
|
image already includes it.
|
|
- **`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:
|
|
|
|
```sh
|
|
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](/docs/moonlight) clients.
|
|
|
|
3. Enable the web console:
|
|
|
|
```sh
|
|
systemctl --user enable --now punktfunk-web
|
|
```
|
|
|
|
Then open `http://<host-ip>:47992`. Reading its [login password](/docs/web-console#login-password)
|
|
and [arming PIN pairing](/docs/web-console#arm-pairing) are covered in
|
|
[The Web Console](/docs/web-console).
|
|
|
|
### Configure your desktop
|
|
|
|
How the virtual display and input work depends on your desktop — see [KDE](/docs/kde),
|
|
[GNOME](/docs/gnome), [Steam / gamescope](/docs/gamescope), or [Sway](/docs/sway) for the
|
|
compositor-specific setup.
|
|
|
|
From there, follow the [Quick Start](/docs/quickstart) to pair your first client. To run the host
|
|
automatically at boot, see [Running as a Service](/docs/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.
|