# Installer reference

> Every flag, menu and environment variable of the FeatherPanel installer script (installer.sh), plus the files it writes and how to run it unattended.

Source: https://featherpanel.com/docs/cli/installer/

## Running the installer

One script installs, updates and removes the panel, FeatherWings, FeatherQuilld and the helpers around them. Run it as root on Debian or Ubuntu:

```bash
curl -sSL https://get.featherpanel.com/installer.sh | bash
```

Pass flags through bash with `bash -s --`, for example`curl -sSL https://get.featherpanel.com/installer.sh | bash -s -- --skip-virt-check`. The documented script version is `2.1.16-dev` (from `installer/install.bash`). The website's install dialog also offers`installer.sh?dev=true` for more distributions; at the time of writing, `installer.sh`,`installer.sh?dev=true` and `stable.sh` all served the same script.

Before it shows a menu, the script checks that it runs as root, then the OS version, CPU architecture and virtualisation (OpenVZ, LXC and Virtuozzo are refused), and warns if Docker is already installed. See [Requirements](https://featherpanel.com/docs/getting-started/requirements/).

## Flags

| Flag | Effect |
| --- | --- |
| `--skip-os-check` | Skip OS version compatibility checks |
| `--force-arm` | Bypass ARM architecture warnings and checks |
| `--skip-install-check` | Skip check for existing installation |
| `--skip-virt-check` | Skip virtualization compatibility checks |
| `--skip-system-update` | Skip apt update and essential package installation |
| `--system-cleanup` | Opt-in apt purge + autoremove after essentials (risky on production hosts) |
| `--refresh-docker-updater-only` | Rewrite /etc/featherpanel host updater scripts only (no full install) |
| `--wings-install-only` | Install FeatherWings only (no setup wizard; for panel quick-setup step 1) |
| `--quilld-install-only` | Install FeatherQuilld only (no setup wizard; for panel quick-setup step 1) |
| `--dev` | Use latest dev release images |
| `--dev-branch BRANCH` | Use dev images for specific branch (e.g., develop, main) |
| `--dev-sha SHA` | Use dev images for specific commit SHA (requires --dev-branch) |
| `--config / -c` | Open configuration manager |
| `--help / -h` | Show this help message |
| `featherquilld` or `quilld` | Positional shorthand for `--quilld-install-only`. |

## Unattended runs

These environment variables pre-answer the first menus, which is how the panel's "setup command" for a new node works:

| Variable | Values | Effect |
| --- | --- | --- |
| `FP_COMPONENT` | panel, wings, cli, ssl, db or databases, proxmox, featherquilld, config or configuration | Skips the main menu. |
| `FP_ACTION` | install, uninstall, update, db\_remote | Skips the operation menu. db\_remote also selects the Databases component. |
| `FP_WINGS_SKIP_CONFIGURE` | true | Install FeatherWings but skip its configuration wizard (the panel join command configures it). |
| `FP_QUILLD_SKIP_CONFIGURE` | true | Same for FeatherQuilld. |
| `FP_WINGS_METHOD` | apt, direct | Install FeatherWings from the APT repository or as a downloaded binary. |
| `FP_WINGS_CHANNEL` | stable, nightly | Which FeatherWings package to install (featherwings or featherwings-dev). |
| `FP_DAEMON_METHOD / FP_DAEMON_CHANNEL` | same as above | Fallback for both daemons when the component-specific variable is unset. |
| `FP_QUILLD_CHANNEL` | stable, nightly | FeatherQuilld channel. FeatherQuilld is installed from APT only. |

```bash
# Update the panel without menus
curl -sSL https://get.featherpanel.com/installer.sh | env FP_COMPONENT=panel FP_ACTION=update bash

# Install FeatherWings only; configure it afterwards with the join command from the panel
curl -sSL https://get.featherpanel.com/installer.sh | env FP_COMPONENT=wings FP_ACTION=install FP_WINGS_SKIP_CONFIGURE=true bash
```

## Menus

### Main menu

| # | Option | What it does |
| --- | --- | --- |
| 1 | Panel | Web interface install/update/uninstall |
| 2 | Wings | Game server daemon |
| 3 | CLI | Migration & server management helpers |
| 4 | SSL Certificates | Let's Encrypt tools |
| 5 | Databases | Remote MySQL/MariaDB hosts |
| 6 | Proxmox VNC Agent | Install on Proxmox node |
| 7 | FeatherQuilld Daemon | WebHosting daemon |
| 8 | Configuration | Settings & preferences |

### Panel operations

| # | Option | What it does |
| --- | --- | --- |
| 1 | Install Panel | Docker (recommended) or source mode |
| 2 | Uninstall Panel | Removes containers/data (destructive) |
| 3 | Update Panel | Pull images / rebuild source |
| 4 | Backup Manager | Create/list/restore/export (Docker mode) |
| 5 | Panel Info | Live health & resource usage (Docker mode) |
| 6 | Firewall Manager | Open required ports (Docker mode) |

Installing the panel then asks for the install mode (Docker, recommended, or source), the release (stable, the`develop` branch or a custom branch) and how the panel is reached: Cloudflare Tunnel, Nginx, Apache or direct access on port 4831. Details are on the [installation](https://featherpanel.com/docs/panel/installation/) page.

## Files and paths

| What | Path |
| --- | --- |
| Install root | `/var/www/featherpanel` |
| Docker Compose file | `/var/www/featherpanel/docker-compose.yml` |
| Install log | `/var/www/featherpanel/install.log` |
| Installer settings | `/var/www/featherpanel/.featherpanel.conf` |
| Install mode marker | `/var/www/featherpanel/.install_mode` |
| Global CLI wrapper | `/usr/local/bin/featherpanel` |
| FeatherWings config | `/etc/featherpanel/config.yml` |
| Backend container | `featherpanel_backend` |

On Windows the PowerShell installer (`install.ps1`) installs the panel on Docker Desktop. See [Windows](https://featherpanel.com/docs/panel/installation/windows/).
