---
title: Fedora
description: Install the Punktfunk host on Fedora 43 or newer from the RPM repo — four steps.
---

For **Fedora 43 or newer** (Workstation or KDE). Bazzite and other Fedora Atomic spins have
[their own page](/docs/bazzite).

## 1. GPU driver

- **NVIDIA:** the driver and an NVENC-capable FFmpeg both come from **RPM Fusion** — Fedora's own
  `ffmpeg-free` has no NVENC and the host cannot encode with it. Enable RPM Fusion, install, reboot:

  ```sh
  sudo dnf 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
  sudo dnf install akmod-nvidia xorg-x11-drv-nvidia-cuda
  sudo dnf install --allowerasing ffmpeg ffmpeg-libs
  ```

  With **Secure Boot** on, the module won't load until you enrol its key — `nvidia-smi` will say it
  can't talk to the driver; the fix is in
  [Troubleshooting](/docs/troubleshooting#nvidia-smi-says-it-cant-communicate-with-the-driver).
- **AMD / Intel:** nothing to install — Mesa carries Vulkan Video and VAAPI. For full codec coverage
  add RPM Fusion's `mesa-va-drivers-freeworld` (AMD) or `intel-media-driver` (Intel).

## 2. Install the host

The RPM repo has one group per Fedora release: **`fedora-44`** on Fedora 44, **`bazzite`** on
Fedora 43 (it's a plain Fedora 43 build of the same package). `rpm -E %fedora` prints your number —
set `baseurl` to match, then install. The browser console, `punktfunk-web`, comes along
automatically:

<Install platform="fedora" />

Updates ride along with `sudo dnf upgrade`; restart the host afterwards
(`systemctl --user restart punktfunk-host`) — or let the [console do it](/docs/updating).

## 3. Let it use your controllers

Join the `input` group (virtual gamepads go through `/dev/uinput`), then **log out and back in**:

```sh
sudo usermod -aG input "$USER"
```

Want the **virtual Steam Deck controller** (paddles, trackpads, gyro)? Also join the `punktfunk`
group — [what it gates and why it's separate](/docs/gamescope#nobara-and-other-autologin-display-managers).

## 4. Start it, open the firewall

From a terminal inside your desktop session:

```sh
systemctl --user enable --now punktfunk-host punktfunk-web
```

Fedora runs **firewalld**, and a package never opens ports for you — so until you allow it, no client
can reach the host. The RPM installed the service definitions; enable them once:

```sh
sudo firewall-cmd --reload   # load the definitions the package installed
sudo firewall-cmd --permanent --add-service=punktfunk-native --add-service=punktfunk-web
sudo firewall-cmd --reload
```

(`punktfunk-web` is only needed to reach the console from another device. Turning on Moonlight
compat later? Add `punktfunk-gamestream` too — [Ports & firewall](/docs/ports).)

**That's the install.** Continue with the [Quick Start from step 3](/docs/quickstart#3-open-the-web-console)
— open the console, pair a client, stream.

## When you want more

- **No video on NVIDIA?** `ffmpeg-libs` is only a *recommended* dependency — without RPM Fusion's
  build, NVENC fails at runtime. Re-run step 1.
  [More in Troubleshooting](/docs/troubleshooting#no-video-on-fedora-nvenc-fails-ffmpeg-libs-is-missing).
- `punktfunk-host detect-conflicts` tells you if Sunshine or Apollo is also running;
  [Troubleshooting](/docs/troubleshooting) starts from the symptom.
- Your desktop's particulars — [KDE](/docs/kde), [GNOME](/docs/gnome), [gamescope](/docs/gamescope).
- Stream with nobody logged in, or a headless KDE appliance —
  [Running as a service](/docs/running-as-a-service), [KDE → Headless session](/docs/kde#headless-session).
- Track `main` instead of releases (`fedora-44-canary` / `bazzite-canary`) —
  [Release channels](/docs/channels). No group for your release — [Build from source](/docs/build-from-source).
