docker / build-push-arm64cross (push) Successful in 10s
docker / deploy-docs (push) Successful in 31s
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Successful in 26m54s
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Successful in 26m56s
apple / screenshots (push) Canceled after 11m30s
windows-host / package (push) Failing after 12s
windows-host / winget-source (push) Skipped
apple / swift (push) Successful in 6m2s
ci / web (push) Successful in 1m53s
ci / docs-site (push) Successful in 1m29s
ci / rust-arm64 (push) Successful in 9m56s
android / android (push) Successful in 12m33s
ci / bench (push) Successful in 7m17s
decky / build-publish (push) Successful in 29s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 12s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 12s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 11s
docker / build-push (ci, ci/rust-ci-noble.Dockerfile, punktfunk-rust-ci-noble) (push) Successful in 11s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 19s
arch / build-publish (push) Successful in 18m18s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 16s
deb / build-publish (push) Successful in 9m2s
ci / rust (push) Failing after 19m38s
deb / build-publish-client-arm64 (push) Successful in 7m21s
deb / build-publish-host (push) Successful in 9m43s
`winget install unom.PunktfunkHost` after adding the source, and `winget upgrade`
from then on. Windows had no update path at all before this — no self-update, no
package manager — so keeping a host current meant noticing a release and
re-running an installer by hand.
Ships the manifest trio in winget-pkgs' own format (so submitting upstream later
is a copy, not a rewrite) plus a release-time generator that substitutes only
version, URL, hash and release-notes link. Everything reviewable — the silent
switches, the agreements, the installation notes — stays in the checked-in
templates rather than buried in a generator.
Silent installs deliberately take the SAME task defaults the wizard shows: a
per-channel default is a support trap. The disclosures the wizard puts on screen
travel as manifest Agreements instead, shown before install and requiring
acceptance — VB-Audio's bundling grant wants the user to see VB-CABLE's origin
and donationware status, and a silent install shows them nothing otherwise. The
console password can only be pointed at, never printed: it is generated per
install and the notes are fixed at publish time.
Self-hosted rather than the community repo, which gates on Defender/SmartScreen
validation the self-signed installer cert would not clear today. The source is
three endpoints — /information, /manifestSearch, /packageManifests/{id}. The
reference implementation's other twenty are its admin API for mutating a
CosmosDB; a catalogue generated at release time has nothing to mutate.
It runs on unom-1 as a stock bun image with the two .mjs files bind-mounted, the
same shape as the flatpak server, so there is no image to build or pull. The
catalogue is derived from the RELEASES rather than local files: winget resolves
--version and upgrade against the version list, so a source that only knew the
newest release could neither pin an older one nor show an upgrade path from it.
That also leaves no state to drift — re-running the build reproduces it exactly.
NormalizedPackageNameAndPublisher is declared unsupported on purpose. winget
derives it client-side with its own normalization, and a near-miss silently
mis-correlates an installed host; ProductCode is exact and Inno gives us one.
28 checks drive the handler directly, and CI gates on them before anything
reaches the box — a wrong response shape does not fail loudly, it just makes
winget report "no package found".
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
73 lines
3.7 KiB
YAML
73 lines
3.7 KiB
YAML
# yaml-language-server: $schema=https://aka.ms/winget-manifest.defaultLocale.1.6.0.schema.json
|
|
PackageIdentifier: unom.PunktfunkHost
|
|
PackageVersion: 0.19.2
|
|
PackageLocale: en-US
|
|
|
|
Publisher: unom
|
|
PublisherUrl: https://git.unom.io/unom/punktfunk
|
|
PublisherSupportUrl: https://git.unom.io/unom/punktfunk/issues
|
|
PackageName: Punktfunk Host
|
|
PackageUrl: https://docs.punktfunk.unom.io/docs/windows-host
|
|
License: MIT OR Apache-2.0
|
|
LicenseUrl: https://git.unom.io/unom/punktfunk/src/branch/main/LICENSE-MIT
|
|
Copyright: Copyright (c) unom
|
|
ShortDescription: Low-latency game-streaming host — stream your PC's games to any Punktfunk or Moonlight client.
|
|
Description: |-
|
|
Punktfunk Host turns a Windows 11 PC into a low-latency game-streaming server. It captures the
|
|
desktop or a dedicated virtual display, encodes with NVENC / AMF / QSV / Vulkan, and streams over
|
|
its native QUIC protocol to Punktfunk clients on Windows, macOS, iOS, tvOS, Android and Linux —
|
|
or over GameStream to stock Moonlight clients.
|
|
|
|
The installer bundles the pf-vdisplay virtual display driver (native-resolution and HDR streaming
|
|
without a physical monitor), virtual DualSense / DualShock 4 / Xbox 360 gamepads, and a web
|
|
management console served on port 47992.
|
|
Moniker: punktfunk-host
|
|
Tags:
|
|
- game-streaming
|
|
- remote-desktop
|
|
- moonlight
|
|
- gamestream
|
|
- streaming
|
|
- remote-play
|
|
ReleaseNotesUrl: https://git.unom.io/unom/punktfunk/src/branch/main/docs/releases/v0.19.2.md
|
|
Documentations:
|
|
- DocumentLabel: Windows Host Setup
|
|
DocumentUrl: https://docs.punktfunk.unom.io/docs/windows-host
|
|
|
|
# Shown BEFORE download/install; the user must accept or the install does not proceed. This is what
|
|
# carries — on the unattended path, where no wizard page is on screen — the disclosures the wizard
|
|
# puts in its task text. VB-Audio's bundling grant specifically requires the end user to see
|
|
# VB-CABLE's origin + donationware status at install time.
|
|
Agreements:
|
|
- AgreementLabel: Bundled virtual audio (VB-CABLE by VB-Audio)
|
|
Agreement: >-
|
|
Punktfunk's streaming microphone uses VB-CABLE by VB-Audio (www.vb-cable.com), which this
|
|
installer bundles and installs. VB-CABLE is donationware — all participations welcome. It is
|
|
redistributed under VB-Audio's bundling grant; the full notice is installed to
|
|
%ProgramFiles%\punktfunk\licenses\VB-CABLE-NOTICE.txt.
|
|
AgreementUrl: https://vb-audio.com/Cable/
|
|
- AgreementLabel: GameStream (Moonlight) compatibility is enabled by default
|
|
Agreement: >-
|
|
The default install enables GameStream so stock Moonlight clients can connect. GameStream uses
|
|
legacy plain-HTTP pairing and is intended for trusted LANs only. To install without it, use
|
|
--override "/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP- /MERGETASKS=!gamestream", or run
|
|
--interactive and clear the GameStream checkbox. It can also be changed later via
|
|
PUNKTFUNK_HOST_CMD in %ProgramData%\punktfunk\host.env.
|
|
AgreementUrl: https://docs.punktfunk.unom.io/docs/windows-host
|
|
|
|
# Displayed after the install completes. The console password is generated per install, so it can
|
|
# only be pointed at, never printed here — this text is fixed at publish time.
|
|
InstallationNotes: |-
|
|
Web management console: https://<this-PC>:47992
|
|
The login password was generated during installation and is stored in
|
|
%ProgramData%\punktfunk\web-password (edit that file to change it).
|
|
|
|
Configuration: %ProgramData%\punktfunk\host.env
|
|
Logs: %ProgramData%\punktfunk\logs\
|
|
|
|
The host service starts automatically at boot. `punktfunk-host` is on the machine PATH — run
|
|
`punktfunk-host service status` from an elevated prompt to check it.
|
|
|
|
ManifestType: defaultLocale
|
|
ManifestVersion: 1.6.0
|