9e015304ee
Make the host docs match the real distribution path and the actual CLI. Reviewed by a multi-agent pass (6 editors against one verified fact sheet + an accuracy reviewer); its findings (a wrong client-Recommends claim, a native-concurrency overstatement) folded in. - Install front door: new README "Install (host)" method-picker + docs-site/install.md (+ nav), routing each distro to its package registry; source build demoted to a fallback. - Registry-first install: ubuntu-gnome/ubuntu-kde now lead with the apt registry (not a cargo build); bazzite leads with the Gitea RPM registry (was COPR/source). Source builds moved to an appendix. - CLI accuracy: serve --native arms pairing from the web console (NOT --allow-pairing, which with --require-pairing/--max-concurrent is m3-host-only); --open disables mandatory pairing. host-cli/configuration/pairing/quickstart/troubleshooting corrected; mgmt API documented as always HTTPS+token. Native host serves one session at a time (extras queue) — not multi. - Firewall: real ports documented (native UDP 9777 + the ephemeral data port caveat + GameStream ports) for Debian + Arch (ufw + nftables), not just Bazzite. - Sync/accuracy: punktfunk-client (GTK4) presented as a shipping client (not "roadmap"), punktfunk-client-rs as the headless tool; host Recommends punktfunk-web only (not the client); COPR chroots f43/44; bootc header says Gitea registry not COPR. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
50 lines
2.7 KiB
Docker
50 lines
2.7 KiB
Docker
# bootc / OCI image layer that bakes punktfunk into a Bazzite-based atomic image.
|
|
#
|
|
# Bazzite is already a bootc image (Fedora Atomic + gamescope + PipeWire + the NVIDIA
|
|
# stack), so we layer punktfunk on top: enable RPM Fusion (for the NVENC ffmpeg) and unom's
|
|
# Gitea RPM registry (NOT COPR — only the registry carries the punktfunk-web subpackage),
|
|
# install the packages, and pre-enable the udev rule. Build + push this image, then
|
|
# `bootc switch` (or rebase) a Bazzite host onto it for an image-based, atomic install —
|
|
# no per-host `rpm-ostree install` drift.
|
|
#
|
|
# podman build -t ghcr.io/<you>/bazzite-punktfunk -f packaging/bootc/Containerfile .
|
|
# podman push ghcr.io/<you>/bazzite-punktfunk
|
|
# # on the target Bazzite host:
|
|
# sudo bootc switch ghcr.io/<you>/bazzite-punktfunk # then reboot
|
|
#
|
|
# Pick the base tag that matches your hardware (NVIDIA shown). See ublue-os/bazzite tags.
|
|
ARG BASE_IMAGE=ghcr.io/ublue-os/bazzite-nvidia:stable
|
|
FROM ${BASE_IMAGE}
|
|
|
|
# punktfunk's RPMs come from unom's Gitea RPM registry (the recommended path — see
|
|
# packaging/rpm/README). Use it rather than COPR specifically because it carries the
|
|
# punktfunk-web management console subpackage, which COPR's mock chroot can't build (no `bun`).
|
|
# Group "bazzite" == the Fedora 43 base; override for a different base. Gitea signs the repo
|
|
# metadata (repo_gpgcheck=1); the packages themselves are unsigned (gpgcheck=0).
|
|
ARG PUNKTFUNK_RPM_GROUP=bazzite
|
|
|
|
# RPM Fusion nonfree provides the NVENC-capable ffmpeg-libs punktfunk records/encodes with.
|
|
# (Bazzite usually has RPM Fusion enabled already; this is belt-and-suspenders.)
|
|
RUN dnf5 -y install \
|
|
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
|
|
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm \
|
|
|| true
|
|
|
|
# Add the Gitea RPM repo and install the host + the web console (punktfunk-web pulls nodejs).
|
|
RUN printf '%s\n' \
|
|
'[gitea-unom-punktfunk]' \
|
|
'name=punktfunk (unom)' \
|
|
"baseurl=https://git.unom.io/api/packages/unom/rpm/${PUNKTFUNK_RPM_GROUP}" \
|
|
'enabled=1' 'gpgcheck=0' 'repo_gpgcheck=1' \
|
|
'gpgkey=https://git.unom.io/api/packages/unom/rpm/repository.key' \
|
|
> /etc/yum.repos.d/punktfunk.repo \
|
|
&& dnf5 -y install punktfunk punktfunk-web \
|
|
&& dnf5 clean all
|
|
|
|
# The udev rule + systemd *user* units ship in the RPMs; nothing else to enable at image build
|
|
# time (host + console run per-user in the graphical session, enabled after first boot with
|
|
# `systemctl --user enable --now punktfunk-host punktfunk-web`).
|
|
|
|
# bootc image hygiene: the container build must leave a clean ostree commit.
|
|
RUN ostree container commit
|