docs: add an "Install a Client" page covering every client + install path
apple / swift (push) Successful in 54s
android / android (push) Failing after 2m1s
ci / rust (push) Successful in 1m38s
rpm / build-publish (bazzite, punktfunk-fedora-rpm) (push) Has been cancelled
rpm / build-publish (fedora-44, punktfunk-fedora44-rpm) (push) Has been cancelled
ci / web (push) Successful in 31s
ci / docs-site (push) Successful in 29s
deb / build-publish (push) Successful in 2m36s
decky / build-publish (push) Successful in 25s
ci / bench (push) Successful in 4m31s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 17s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 2m48s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 2m34s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 23s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 2m21s
docker / deploy-docs (push) Successful in 22s

Per-device install steps in one place: Linux (Flatpak via flatpak.unom.io +
native apt/rpm/Arch), Steam Deck, Windows (signed MSIX from the registry),
macOS (notarized DMG from releases), and iOS/Android (store/beta links). Adds
it to the Connecting nav and cross-links clients.md, whose Linux/Flatpak bullet
now points at the hosted flatpak.unom.io repo instead of the bundle README.

Mobile store/TestFlight URLs are placeholders pending the public listings.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-18 22:02:02 +00:00
parent 5262e28b79
commit 844f4b86bd
3 changed files with 136 additions and 10 deletions
+10 -10
View File
@@ -4,7 +4,8 @@ description: The ways to connect to a punktfunk host — the Apple app, Moonligh
--- ---
A punktfunk host accepts clients over its own `punktfunk/1` protocol (the Apple and Linux apps) and A punktfunk host accepts clients over its own `punktfunk/1` protocol (the Apple and Linux apps) and
over GameStream (Moonlight). Pick whichever fits the device you're streaming *to*. over GameStream (Moonlight). Pick whichever fits the device you're streaming *to*. Ready to install?
**[Install a Client](/docs/install-client)** has the step-by-step for every device.
## Apple app (Mac, iPhone, iPad, Apple TV) ## Apple app (Mac, iPhone, iPad, Apple TV)
@@ -36,16 +37,15 @@ protocol's FEC/encryption extensions, but for a healthy LAN that rarely matters.
PipeWire audio, and SDL3 controllers (rumble, lightbar, DualSense touchpad/motion). Like the Apple PipeWire audio, and SDL3 controllers (rumble, lightbar, DualSense touchpad/motion). Like the Apple
app it discovers hosts on your network automatically, does PIN pairing, and pins reconnects. app it discovers hosts on your network automatically, does PIN pairing, and pins reconnects.
It ships as a real package, not just a source build: It ships as a real package, not just a source build — full steps in
[Install a Client](/docs/install-client#linux-desktop-flatpak):
- **Ubuntu / Debian** — `apt install punktfunk-client` from the punktfunk apt registry - **Any Flatpak distro (recommended)** — `flatpak install https://flatpak.unom.io/io.unom.Punktfunk.flatpakref`
(see `packaging/debian/README.md`). from the hosted [`flatpak.unom.io`](/docs/install-client#linux-desktop-flatpak) repo, then
- **Fedora / Bazzite** — `rpm-ostree install punktfunk-client` from the Gitea RPM registry `flatpak update`; this is also what the Decky plugin launches.
(see `packaging/rpm/README.md`). - **Ubuntu / Debian** — `apt install punktfunk-client` from the punktfunk apt registry.
- **Arch / SteamOS** — the `punktfunk-client` split package from the `PKGBUILD` - **Fedora / Bazzite** — `rpm-ostree install punktfunk-client` from the Gitea RPM registry.
(see `packaging/arch/README.md`). - **Arch / SteamOS** — the `punktfunk-client` split package from the `PKGBUILD`.
- **Steam Deck / any Flatpak distro** — the `io.unom.Punktfunk` Flatpak bundle
(see `packaging/flatpak/README.md`); this is what the Decky plugin launches.
Launch it, pick your host from the list, and stream. For scripting you can skip the host list and Launch it, pick your host from the list, and stream. For scripting you can skip the host list and
connect straight away: connect straight away:
+125
View File
@@ -0,0 +1,125 @@
---
title: Install a Client
description: Install the punktfunk client for the device you're streaming to — Linux, Steam Deck, Windows, macOS, iOS, or Android.
---
This page is the **install path for each client device**. For what each client *is* and which to
pick, see [Clients](/docs/clients); to install the **host**, see [Install the Host](/docs/install).
Whichever client you install, the first connection needs a one-time [pairing](/docs/pairing).
## Pick your device
| Device | Install |
|--------|---------|
| **Linux** desktop / laptop | [Flatpak](#linux-desktop-flatpak) (any distro) or native apt/rpm/Arch packages |
| **Steam Deck** | [Flatpak in Desktop Mode](#steam-deck) (or the Decky plugin) |
| **Windows** | [Signed MSIX](#windows) from the package registry |
| **macOS** | [Notarized `.dmg`](#macos) from the releases page |
| **iPhone / iPad / Apple TV** | [App Store / TestFlight](#ios-ipados-apple-tv) |
| **Android / Android TV** | [Google Play](#android) |
| Anything else (browser, old phone, TV) | [Moonlight](/docs/moonlight) |
## Linux desktop (Flatpak)
The **recommended** path on any Flatpak distro — install once, then `flatpak update` tracks new
builds. One command adds the signed `unom` remote, pulls the GNOME runtime from Flathub
automatically, and installs the client:
```sh
flatpak install --user https://flatpak.unom.io/io.unom.Punktfunk.flatpakref
flatpak run io.unom.Punktfunk
```
Updates, from then on:
```sh
flatpak update # or: flatpak update io.unom.Punktfunk
```
Prefer your native package manager? The client also ships as real packages (add the repo once —
see the linked guide — then it tracks updates with your normal `apt upgrade` / `rpm-ostree upgrade`):
| Distro | Install | Guide |
|--------|---------|-------|
| **Ubuntu / Debian** | `sudo apt install punktfunk-client` | [packaging/debian](https://git.unom.io/unom/punktfunk/src/branch/main/packaging/debian/README.md) |
| **Fedora / Bazzite** | `rpm-ostree install punktfunk-client` | [packaging/rpm](https://git.unom.io/unom/punktfunk/src/branch/main/packaging/rpm/README.md) |
| **Arch / SteamOS** | `punktfunk-client` from the `PKGBUILD` | [packaging/arch](https://git.unom.io/unom/punktfunk/src/branch/main/packaging/arch/README.md) |
Then launch it, pick your host from the list, and stream. For scripting, skip the picker:
```sh
punktfunk-client --connect <host>:9777
```
## Steam Deck
In **Desktop Mode**, install the Flatpak exactly as [above](#linux-desktop-flatpak) — it carries
its own libadwaita + SDL3 and survives SteamOS updates:
```sh
flatpak install --user https://flatpak.unom.io/io.unom.Punktfunk.flatpakref
```
Add it to Game Mode as a non-Steam app, or use the **Decky plugin**, which launches this same
Flatpak (`flatpak run io.unom.Punktfunk --connect …`). See
[packaging/flatpak](https://git.unom.io/unom/punktfunk/src/branch/main/packaging/flatpak/README.md).
## Windows
The Windows client ships as a **signed MSIX** in the package registry. Builds use a self-signed
certificate, so you import that certificate once before Windows will install the package.
1. Open the [packages page](https://git.unom.io/unom/-/packages) (generic group), find
**`punktfunk-client-windows`**, and download the newest **`.msix`** and its matching **`.cer`**.
2. In an **admin** PowerShell, trust the publisher certificate (one-time), then install:
```powershell
Import-Certificate -FilePath .\punktfunk-client-windows.cer `
-CertStoreLocation Cert:\LocalMachine\TrustedPeople
Add-AppxPackage .\punktfunk-client-windows.msix
```
If Windows reports a missing dependency, install the
[Windows App Runtime 2.x](https://learn.microsoft.com/windows/apps/windows-app-sdk/downloads)
(the MSIX depends on `Microsoft.WindowsAppRuntime.2`), then re-run `Add-AppxPackage`.
3. Launch **Punktfunk** from the Start menu and pick your host.
> The Windows client is young (software decode; hardware D3D11VA/HDR in progress). If it
> misbehaves, **[Moonlight](/docs/moonlight)** is a solid alternative for Windows.
## macOS
Download the notarized disk image from the [releases page](https://git.unom.io/unom/punktfunk/releases)
— `Punktfunk-<version>.dmg`. It's Developer-ID signed, notarized, and stapled, so Gatekeeper opens
it without warnings:
1. Open `Punktfunk-<version>.dmg` and drag **Punktfunk** to **Applications**.
2. Launch it, pick your host from *On this network*, and [pair](/docs/pairing).
The Mac app is also part of the TestFlight beta (see below); the DMG is the no-account path.
## iOS, iPadOS, Apple TV
The Apple app is a **universal purchase** — one App Store listing covers iPhone, iPad, Apple TV, and
the Mac. It's currently distributed through **TestFlight** while in beta.
<!-- TODO: replace with the real public URLs once the listing/TestFlight links are live -->
- **App Store:** _coming soon_ — [listing](https://apps.apple.com/app/punktfunk)
- **TestFlight (beta):** _join link pending_
Install, open the app, and your hosts appear automatically under *On this network*.
## Android
The Android client (phone + Android TV) is on **Google Play**, currently in closed testing.
<!-- TODO: replace with the real public/testing URLs once the track is live -->
- **Google Play:** [listing](https://play.google.com/store/apps/details?id=io.unom.punktfunk)
_(closed testing — request access)_
## Anything else — Moonlight
Any device with a [Moonlight](https://moonlight-stream.org/) client (browser, old phone, smart TV)
connects over GameStream with no punktfunk-specific software. See
[Connect with Moonlight](/docs/moonlight).
+1
View File
@@ -14,6 +14,7 @@
"running-as-a-service", "running-as-a-service",
"---Connecting---", "---Connecting---",
"clients", "clients",
"install-client",
"moonlight", "moonlight",
"pairing", "pairing",
"---Configuration---", "---Configuration---",