# Requirements

> Supported operating systems, CPU architectures, virtualization types, software and firewall ports for FeatherPanel, FeatherWings and FeatherQuilld.

Source: https://featherpanel.com/docs/getting-started/requirements/

FeatherPanel does not publish minimum CPU or RAM figures. Size the panel host for the number of users you expect and the
game, VDS and web nodes for the workloads they run. The backend sizes its PHP thread pool from the memory it can see, so
it adapts to small and large machines (see [Cron, workers and runner](https://featherpanel.com/docs/panel/cron-and-workers)).

## Operating systems

The installer (`install.bash`) checks `/etc/os-release` before it does anything:

| Distribution | Versions accepted by the installer |
|--------------|-----------------------------------|
| Debian | 11, 12, 13 |
| Ubuntu | 22.04 LTS, 24.04 LTS, 26.04 LTS, 25.04, 25.10 (20.04 also passes the check) |

Anything else stops with an error unless you pass `--skip-os-check`. The installer also warns when your release is past or
close to its end of life.

> [!NOTE]
> Ubuntu 20.04 passes the version check but is not listed in the installer's own "officially supports" message. Prefer a
> current LTS release.

**Windows**: the PowerShell installer (`install.ps1`) installs the panel and FeatherCli on top of Docker Desktop, into
`C:\featherpanel`. FeatherWings and FeatherQuilld are Linux only. See [Windows install](https://featherpanel.com/docs/panel/installation/windows).

## CPU architectures

| Architecture | Status |
|--------------|--------|
| `amd64` (x86_64) | Native images and packages |
| `arm64` (aarch64) | Native images and packages |
| `armv7l`, `armv6l` | Not native. The installer offers to install QEMU and run the amd64 images through emulation (`--force-arm` skips the confirmation). Expect slower startup and higher CPU and memory use. |

## Virtualization

Docker has to work on the machine. The installer runs `systemd-detect-virt` and refuses:

- OpenVZ / OVZ / Virtuozzo
- LXC (including `lxc-libvirt`)

KVM, VMware, Xen, Hyper-V and bare metal are fine. `--skip-virt-check` overrides the check if you know your container
supports nested Docker.

On kernels older than 6.1 the installer reminds you to add `swapaccount=1` to `GRUB_CMDLINE_LINUX_DEFAULT` if you want
Docker swap limits for game servers.

## Software

### Panel (Docker install, recommended)

- Docker Engine with the Compose plugin. The installer installs both if they are missing.
- That is all. PHP, MariaDB, Redis, Node.js and the Rust runner all ship in the images
  (`ghcr.io/mythicalltd/featherpanel-*`).
- A web server on the host only if you want one in front of the panel: nginx, Apache or Caddy for TLS, or a Cloudflare
  Tunnel. See [Web server](https://featherpanel.com/docs/panel/web-server).

### Panel (source install, unsupported)

The source installer (`installer/source/*.bash`) installs PHP **8.5** (`composer.json` requires `^8.5`), FrankenPHP,
MariaDB, Redis, Node.js for the Next.js build and a Rust toolchain for the async runner. It is meant for developers and
gets no support guarantee. See [Source install](https://featherpanel.com/docs/panel/installation/source).

### FeatherWings

- Docker CE. The installer installs it when it is missing.
- systemd.
- Installed from the MythicalSystems APT repository (`featherwings`, or the nightly package) or as a direct binary
  download from GitHub. See [Install Wings](https://featherpanel.com/docs/wings/installation).

### FeatherQuilld

- Debian or Ubuntu (APT and dpkg). FeatherQuilld is only shipped as an APT package (`featherquilld`, or
  `featherquilld-dev` for nightly).
- Docker CE (a recommended dependency; the installer makes sure it is present) and systemd.
- See [Install Quilld](https://featherpanel.com/docs/quilld/installation).

### FeatherCli

A single binary in `/usr/local/bin/feathercli`. The installer also installs `libicu-dev`, which the .NET runtime needs.
See [FeatherCli](https://featherpanel.com/docs/cli/feathercli).

## Network and ports

| Component | Port | Direction | Purpose |
|-----------|------|-----------|---------|
| Panel | `4831/tcp` | local | `frontendv2` container. Set `FEATHERPANEL_PANEL_PORT` to change it. Keep it closed when a reverse proxy is in front. |
| Panel | `80/tcp`, `443/tcp` | inbound | Your reverse proxy (HTTP and HTTPS). |
| FeatherWings | `8080/tcp` | inbound from the panel and browsers | Wings API and console websocket (`api.port`). |
| FeatherWings | `2022/tcp` | inbound | SFTP for server files (`system.sftp.bind_port`). |
| FeatherWings | allocation ports | inbound | The game ports you assign to servers. |
| FeatherWings | `80/tcp` | inbound (optional) | FastDL, only if enabled. |
| FeatherQuilld | `8989/tcp` | inbound from the panel and browsers | Quilld API (`api.port`). |
| FeatherQuilld | `2222/tcp` | inbound | SFTP for WebSpaces. |
| FeatherQuilld | `21/tcp`, `50000-50100/tcp` | inbound | FTP and its passive range. |
| FeatherQuilld | `80/tcp`, `443/tcp` | inbound | Websites through the managed reverse proxy. |
| FeatherQuilld | `587/tcp`, `993/tcp` (and `25/tcp` for inbound mail) | inbound | Mail, if a mail backend is installed. See [Mail](https://featherpanel.com/docs/quilld/mail). |
| Proxmox | `8006/tcp` | from the panel | Proxmox API for VDS nodes. |

The panel must reach every node API, and browsers must reach Wings and Quilld directly for console websockets and file
transfers. Put the daemons behind TLS (Let's Encrypt from the installer's SSL menu, or your own certificate) when the panel
is served over HTTPS; browsers block mixed content.

When the installer configures a firewall it only touches rules of an **existing** `ufw` or `iptables` setup. It opens 80
and 443 and closes the panel port if it finds a reverse proxy, or opens the panel port when there is none.

## Domains and TLS

- One domain (or subdomain) for the panel, e.g. `panel.example.com`.
- One per node is recommended, e.g. `node1.example.com`, so Wings and Quilld can have their own certificates.
- The installer's **SSL** menu issues Let's Encrypt certificates with certbot. See [SSL](https://featherpanel.com/docs/panel/ssl).

## Next steps

- [Quick start](https://featherpanel.com/docs/getting-started/quick-start)
- [Panel installation](https://featherpanel.com/docs/panel/installation)
- [Architecture](https://featherpanel.com/docs/getting-started/architecture)

## Frequently asked questions

### Which Linux distributions does FeatherPanel support?

The installer supports Debian 11, 12 and 13 and Ubuntu 22.04, 24.04, 25.04, 25.10 and 26.04 (20.04 also passes the check). Other distributions need --skip-os-check and are not supported.

### Does FeatherPanel run on ARM?

Yes. All images are published for amd64 and arm64. Older ARM (armv6, armv7) only works through QEMU emulation of the amd64 images, which the installer offers to set up.

### Can I run FeatherWings in an LXC or OpenVZ container?

The installer refuses OpenVZ, Virtuozzo and LXC by default because Docker does not work reliably there. Use a KVM, VMware, Xen or bare metal machine, or pass --skip-virt-check at your own risk.
