Requirements
Supported operating systems, CPU architectures, virtualization types, software and firewall ports for FeatherPanel, FeatherWings and FeatherQuilld.
On this page
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).
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.
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.
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.
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.
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.
FeatherQuilld
- Debian or Ubuntu (APT and dpkg). FeatherQuilld is only shipped as an APT package (
featherquilld, orfeatherquilld-devfor nightly). - Docker CE (a recommended dependency; the installer makes sure it is present) and systemd.
- See Install Quilld.
FeatherCli
A single binary in /usr/local/bin/feathercli. The installer also installs libicu-dev, which the .NET runtime needs.
See 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. |
| 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.
Next steps
Frequently asked questions
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.
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.
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.