# Panel CLI reference

> All 14 FeatherPanel panel CLI commands with their subcommands, arguments and global flags, and how to run them on Docker and source installs.

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

## Running commands

The panel ships a PHP command-line tool. How you call it depends on how the panel is installed:

| Install | Command |
| --- | --- |
| Installer (Docker or source) | `featherpanel <command>` |
| Docker, without the wrapper | `docker exec -it featherpanel_backend php cli <command>` |
| Source install | `php /var/www/featherpanel/app <command>` or `cd /var/www/featherpanel/backend && php cli <command>` |
| All-in-one image | `docker exec -it <container> php cli <command>` (run from the backend directory) |

The installer writes `/usr/local/bin/featherpanel`. It reads `/var/www/featherpanel/.install_mode`(`docker` or `source`) and either runs `docker exec` into`featherpanel_backend` or runs the source entry point. `featherpanel run-script` downloads and runs the installer again.

## Global flags

| Flag | Effect |
| --- | --- |
| `--skip-path-check` | Skip CWD validation. Required in CI and some container contexts where cwd is not /var/www/featherpanel or /var/www/html. |
| `--no-colors` | Disable Minecraft-style color codes in CLI output. |
| `--clean-output` | Strip decorative formatting for machine-friendly output. |
| `--no-prefix` | Omit the \[FeatherPanel\] prefix on each output line. |

## Commands

### cron

Runs the due cron jobs once. The container and the source install call it every minute; you rarely run it by hand. See Cron and workers.

```
featherpanel cron
```

Source: [`backend/app/Cli/Commands/Cron.php`](https://github.com/MythicalLTD/FeatherPanel/blob/develop/backend/app/Cli/Commands/Cron.php)

### developer

Development helper. Not needed on production panels.

```
featherpanel developer
```

| Subcommand | Description |
| --- | --- |
| `developer start` | Start the developer server and VS Code Tunnel |
| `developer stop` | Stop the developer server and VS Code Tunnel |
| `developer status` | Check if the developer server is running |
| `developer logs [lines]` | Show VS Code Tunnel logs |

Source: [`backend/app/Cli/Commands/Developer.php`](https://github.com/MythicalLTD/FeatherPanel/blob/develop/backend/app/Cli/Commands/Developer.php)

### help

Lists every command.

```
featherpanel help
```

Source: [`backend/app/Cli/Commands/Help.php`](https://github.com/MythicalLTD/FeatherPanel/blob/develop/backend/app/Cli/Commands/Help.php)

### logs

Uploads the panel web and app logs to MythicalSystems Paste and prints the links, so you can share them with support. Review what you share.

```
featherpanel logs
```

Source: [`backend/app/Cli/Commands/Logs.php`](https://github.com/MythicalLTD/FeatherPanel/blob/develop/backend/app/Cli/Commands/Logs.php)

### migrate

Applies pending database migrations. Updates run this for you.

```
featherpanel migrate
```

Source: [`backend/app/Cli/Commands/Migrate.php`](https://github.com/MythicalLTD/FeatherPanel/blob/develop/backend/app/Cli/Commands/Migrate.php)

### module

Optional bundled modules. The only module currently defined is pma (phpMyAdmin).

```
featherpanel module
```

| Subcommand | Description |
| --- | --- |
| `module install <module>` | Install a module |
| `module ensure <module>` | Reinstall a module if its install marker exists but files are missing |
| `module list` | List available and installed modules |
| `module uninstall <module>` | Uninstall a module |

Source: [`backend/app/Cli/Commands/Module.php`](https://github.com/MythicalLTD/FeatherPanel/blob/develop/backend/app/Cli/Commands/Module.php)

### rebuild

Drops every table in the panel database after you type yes. All data is lost. Use only on a fresh or test install.

```
featherpanel rebuild
```

Source: [`backend/app/Cli/Commands/Rebuild.php`](https://github.com/MythicalLTD/FeatherPanel/blob/develop/backend/app/Cli/Commands/Rebuild.php)

### saas

Non-interactive admin helpers meant for scripts and automation.

```
featherpanel saas
```

| Subcommand | Description |
| --- | --- |
| `saas createuser <username> <email> <firstName> <lastName> <password> [roleId]` | Create a new user |
| `saas deleteuser <uuid|username|email>` | Delete a user |
| `saas updateuser <uuid|username|email> <field> <value>` | Update a user field |
| `saas banuser <uuid|username|email>` | Ban a user |
| `saas unbanuser <uuid|username|email>` | Unban a user |
| `saas resetpassword <uuid|username|email> <newPassword>` | Reset user password |
| `saas userinfo <uuid|username|email>` | Get user information |
| `saas listusers [limit] [search]` | List users |
| `saas setsetting <key> <value>` | Set a configuration setting |
| `saas getsetting <key>` | Get a configuration setting |
| `saas listsettings` | List all configurable settings |

Source: [`backend/app/Cli/Commands/Saas.php`](https://github.com/MythicalLTD/FeatherPanel/blob/develop/backend/app/Cli/Commands/Saas.php)

### seedWebPlates

Inserts or updates the bundled WebPlate templates (static, PHP, Node, Python) used by WebSpaces.

```
featherpanel seedWebPlates
```

Source: [`backend/app/Cli/Commands/SeedWebPlates.php`](https://github.com/MythicalLTD/FeatherPanel/blob/develop/backend/app/Cli/Commands/SeedWebPlates.php)

### settings

Interactive, menu-driven settings editor in the terminal.

```
featherpanel settings
```

Source: [`backend/app/Cli/Commands/Settings.php`](https://github.com/MythicalLTD/FeatherPanel/blob/develop/backend/app/Cli/Commands/Settings.php)

### setup

Interactive first-time setup: asks for the database connection, writes the .env file and generates the encryption key. The Docker images do this for you.

```
featherpanel setup
```

Source: [`backend/app/Cli/Commands/Setup.php`](https://github.com/MythicalLTD/FeatherPanel/blob/develop/backend/app/Cli/Commands/Setup.php)

### snapshots

Database snapshots (SQL dumps) managed by the panel. restore asks for confirmation unless you pass -y.

```
featherpanel snapshots
```

| Subcommand | Description |
| --- | --- |
| `snapshots list` | List all available database snapshots |
| `snapshots create` | Create a new database snapshot |
| `snapshots download <filename>` | Download a snapshot file |
| `snapshots restore <filename> [-y]` | Restore database from a snapshot |
| `snapshots delete <filename>` | Delete a snapshot file |

Source: [`backend/app/Cli/Commands/Snapshots.php`](https://github.com/MythicalLTD/FeatherPanel/blob/develop/backend/app/Cli/Commands/Snapshots.php)

### testAsyncRunner

Checks the Redis connection and lists the featherpanel:\* pub/sub channels the async runner is subscribed to. The command description in the code says "Test mail sending", which does not match what it does.

```
featherpanel testAsyncRunner
```

Source: [`backend/app/Cli/Commands/TestAsyncRunner.php`](https://github.com/MythicalLTD/FeatherPanel/blob/develop/backend/app/Cli/Commands/TestAsyncRunner.php)

### users

Interactive user manager in the terminal.

```
featherpanel users
```

Source: [`backend/app/Cli/Commands/Users.php`](https://github.com/MythicalLTD/FeatherPanel/blob/develop/backend/app/Cli/Commands/Users.php)

## Common tasks

```
# Create an admin when the installer did not (role 4 = Administrator)
featherpanel saas createuser admin admin@example.com Ada Admin 'S3cure-Passw0rd' 4

# Promote an existing account to Administrator
featherpanel saas updateuser admin role_id 4

# Reset a forgotten password
featherpanel saas resetpassword admin 'N3w-Passw0rd'

# Script a setting (keys are the snake_case names from the settings reference)
featherpanel saas setsetting app_name "My Hosting"

# Take a database snapshot before an upgrade
featherpanel snapshots create
```

See the [settings reference](https://featherpanel.com/docs/panel/settings/) for valid keys.
