# FeatherPanel installer (`install.bash`)

Docker-first installer/uninstaller for Ubuntu/Debian. Source: `installer/install.bash` (version **2.1.15-dev**).

## How users usually get it

```bash
# Public one-liner (stable)
curl -sSL https://get.featherpanel.com/stable.sh | bash

# Or via the global wrapper after a prior install
featherpanel run-script

# From a git checkout
sudo bash installer/install.bash
sudo bash installer/install.bash --help
```

**Must run as root** (`sudo`).

## What it does (high level)

1. Validates OS / virt / existing install (unless skipped).
2. Interactive main menu (Panel, Wings, CLI helpers, SSL, DBs, Proxmox VNC, Quilld, Configuration).
3. For Panel (Docker mode): installs Docker, writes compose + `.featherpanel.conf`, pulls images, starts `featherpanel_backend` (+ mysql/redis as configured), installs reverse proxy / tunnel options, installs global `featherpanel` CLI.
4. Logs to `/var/www/featherpanel/install.log`. Failed installs may upload logs for support tickets.

## CLI flags

| Flag | Description |
| --- | --- |
| `--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 |
| `--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) |
| `--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 |

### Dev / pre-release examples

```bash
sudo bash installer/install.bash --dev
sudo bash installer/install.bash --dev-branch develop
sudo bash installer/install.bash --dev-branch develop --dev-sha abc1234
```

### Wings-only (panel quick-setup)

```bash
sudo bash installer/install.bash --wings-install-only
```

### Configuration manager only

```bash
sudo bash installer/install.bash --config
```

## Non-interactive automation

```bash
sudo FP_COMPONENT=panel FP_ACTION=update bash installer/install.bash
sudo FP_COMPONENT=panel FP_ACTION=install bash installer/install.bash --dev-branch develop
```

| Variable | Meaning |
| --- | --- |
| `FP_COMPONENT` | Non-interactive target: panel | wings | … (e.g. `FP_COMPONENT=panel`) |
| `FP_ACTION` | Non-interactive action: install | update | uninstall | … (e.g. `FP_ACTION=update`) |

## After install — guide users

| Task | What to tell the user |
| --- | --- |
| Open panel | Visit the URL/port chosen during install (Nginx/Apache/Tunnel/Direct). |
| Run migrations | `featherpanel migrate` |
| Change settings | Admin → Settings (`/admin/settings`) or `featherpanel settings` |
| Upload logs | `featherpanel logs` or share `/var/www/featherpanel/install.log` |
| Update panel | Re-run installer → Panel → Update, or `FP_COMPONENT=panel FP_ACTION=update` |
| CLI help | `featherpanel help` |

See [../cli/usage.md](../cli/usage.md) and [../settings/guide.md](../settings/guide.md).

## Important paths

| Path | Purpose |
| --- | --- |
| `/var/www/featherpanel` | install root |
| `/var/www/featherpanel/install.log` | install log |
| `/var/www/featherpanel/.featherpanel.conf` | config file |
| `/var/www/featherpanel/docker-compose.yml` | compose file |
| `/etc/featherpanel/config.yml` | wings config |
| `/usr/local/bin/featherpanel` | global cli |
| `featherpanel_backend` | backend container |

## Menus (interactive)

### Main menu

- **[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

- **[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)

## AI support tips

- Prefer Docker mode for most users; source mode is advanced.
- Never invent flags — use the table above.
- For install failures: ask for `/var/www/featherpanel/install.log` and any paste URLs the installer printed.
- Remote shell (sshx) is **only** when FeatherPanel staff request it in an active ticket (Admin → Settings → Support).
- After install, `featherpanel` wraps `docker exec … php cli`.
- Settings keys: use [../settings/all.json](../settings/all.json), not guesses.
