A push to main publishes canary builds to canary channels (fast iteration,
unchanged); a single vX.Y.Z tag releases every platform at one version to the
stable channels and attaches all artifacts (.deb/.rpm/.msix/.apk/.aab/.dmg +
flatpak/decky/host-installer) to one Gitea Release. Collapses the
host-v*/win-v*/host-win-v* tag namespaces into v* — the channel split makes the
version-shadow bug structurally impossible (canary and stable are separate repos,
never a shared version line).
- scripts/ci/gitea-release.{sh,ps1}: one idempotent release helper
(create-or-fetch + delete-before-upload), replacing 3 copy-pasted inline blocks
and fixing their latent 409-on-reupload bug; prerelease flag auto-derived from
the tag (an -rc tag won't shadow "Latest")
- channels: apt canary/stable distributions; rpm *-canary/base groups; flatpak
canary/stable OSTree branches + a 2nd .Canary.flatpakref; generic-registry
canary/ vs latest/ aliases; Play internal/alpha; Apple TestFlight vs notarized DMG
- android versionName threaded through gradle (versionCode stays run_number);
Apple canary = TestFlight-only (no DMG/tvOS); canary base bumped to 0.3.0
- docs: new docs-site channels.md (subscribe table + cut-a-release runbook +
box migration), refreshed ci.md workflow table + packaging READMEs
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
5.9 KiB
title, description
| title | description |
|---|---|
| Install a Client | 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; to install the host, see Install the Host. Whichever client you install, the first connection needs a one-time pairing.
The links below are the stable channel (moves on
vX.Y.Zreleases). For the latestmainbuild, use the canary channel — TestFlight / Play Internal, the…Canary.flatpakref, or thecanary/download URLs. See Release Channels.
Pick your device
| Device | Install |
|---|---|
| Linux desktop / laptop | Flatpak (any distro) or native apt/rpm/Arch packages |
| Steam Deck | Flatpak in Desktop Mode (or the Decky plugin) |
| Windows | Signed MSIX from the package registry |
| macOS | Notarized .dmg from the releases page |
| iPhone / iPad / Apple TV | TestFlight beta |
| Android / Android TV | Google Play |
| Anything else (browser, old phone, TV) | 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:
flatpak install --user https://flatpak.unom.io/io.unom.Punktfunk.flatpakref
flatpak run io.unom.Punktfunk
Updates, from then on:
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 |
| Fedora / Bazzite | rpm-ostree install punktfunk-client |
packaging/rpm |
| Arch / SteamOS | punktfunk-client from the PKGBUILD |
packaging/arch |
Then launch it, pick your host from the list, and stream. For scripting, skip the picker:
punktfunk-client --connect <host>:9777
Steam Deck
In Desktop Mode, install the Flatpak exactly as above — it carries its own libadwaita + SDL3 and survives SteamOS updates:
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.
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.
-
Open the packages page (generic group), find
punktfunk-client-windows, and download the newest.msixand its matching.cer. -
Trust the publisher certificate, then install. The MSIX won't install until the certificate is trusted — but it's 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-client-windows.cer ` -CertStoreLocation Cert:\LocalMachine\TrustedPeople Add-AppxPackage .\punktfunk-client-windows.msixIf Windows reports a missing dependency, install the Windows App Runtime 2.x (the MSIX depends on
Microsoft.WindowsAppRuntime.2), then re-runAdd-AppxPackage. -
Launch Punktfunk from the Start menu and pick your host.
The Windows client's hardware-decode (D3D11VA) and HDR paths are complete but still pending validation on real GPU hardware. If anything misbehaves, Moonlight is a solid alternative for Windows.
macOS
Download the notarized disk image from the releases page
— Punktfunk-<version>.dmg. It's Developer-ID signed, notarized, and stapled, so Gatekeeper opens
it without warnings:
- Open
Punktfunk-<version>.dmgand drag Punktfunk to Applications. - Launch it, pick your host from On this network, and pair.
The Mac app is also in the TestFlight beta; the DMG is the no-account path.
iOS, iPadOS, Apple TV
The Apple app is in TestFlight beta — one universal build covers iPhone, iPad, Apple TV, and the Mac. Install Apple's TestFlight app, then join:
Join the punktfunk beta on TestFlight →
Open the app, and your hosts appear automatically under On this network.
Android
The Android client (phone + Android TV) is on Google Play:
Get punktfunk on Google Play →
Install, open the app, and pick your host. (The app is in testing — if the listing isn't visible to you yet, you'll need to be added to the test track.)
Anything else — Moonlight
Any device with a Moonlight client (browser, old phone, smart TV) connects over GameStream with no punktfunk-specific software. See Connect with Moonlight.