Skip to main content

Artisan Commands

This is very much a WIP! Many Many commands, Layout might change.

Updated: 01/11/2026

Panel Information​

Displays the application, database, email and backup configurations along with the panel version.

php artisan p:info

User Commands​

Create a User​

Creates a user on the system via the CLI.

php artisan p:user:make [options]
Options:
--email[=EMAIL]
--username[=USERNAME]
--password[=PASSWORD]
--admin[=ADMIN]
--no-password
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Delete a User​

Deletes a user from the Panel if no servers are attached to their account.

php artisan p:user:delete [options]
Options:
--user[=USER]
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Disable 2fa for a single User​

Disable two-factor authentication for a specific user in the Panel.

php artisan p:user:disable2fa [options]
Options:
--email[=EMAIL] The email of the user to disable 2-Factor for.
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Node Commands​

Create a Node​

Creates a new node on the system via the CLI.

php artisan p:node:make [options]
Options:
--name[=NAME] A name to identify the node.
--description[=DESCRIPTION] A description to identify the node.
--locationId[=LOCATIONID] A valid locationId.
--fqdn[=FQDN] The domain name (e.g node.example.com) to be used for connecting to the daemon. An IP address may only be used if you are not using SSL for this node.
--public[=PUBLIC] Should the node be public or private? (public=1 / private=0).
--scheme[=SCHEME] Which scheme should be used? (Enable SSL=https / Disable SSL=http).
--proxy[=PROXY] Is the daemon behind a proxy? (Yes=1 / No=0).
--maintenance[=MAINTENANCE] Should maintenance mode be enabled? (Enable Maintenance mode=1 / Disable Maintenance mode=0).
--maxMemory[=MAXMEMORY] Set the max memory amount.
--overallocateMemory[=OVERALLOCATEMEMORY] Enter the amount of ram to overallocate (% or -1 to overallocate the maximum).
--maxDisk[=MAXDISK] Set the max disk amount.
--overallocateDisk[=OVERALLOCATEDISK] Enter the amount of disk to overallocate (% or -1 to overallocate the maximum).
--maxCpu[=MAXCPU] Set the max cpu amount.
--overallocateCpu[=OVERALLOCATECPU] Enter the amount of cpu to overallocate (% or -1 to overallocate the maximum).
--uploadSize[=UPLOADSIZE] Enter the maximum upload filesize.
--daemonListeningPort[=DAEMONLISTENINGPORT] Enter the daemon listening port.
--daemonConnectingPort[=DAEMONCONNECTINGPORT] Enter the daemon connecting port.
--daemonSFTPPort[=DAEMONSFTPPORT] Enter the daemon SFTP listening port.
--daemonSFTPAlias[=DAEMONSFTPALIAS] Enter the daemon SFTP alias.
--daemonBase[=DAEMONBASE] Enter the base folder.
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

List Nodes​

Lists all nodes with their ID, UUID, name and host.

php artisan p:node:list [options]
Options:
--format[=FORMAT] The output format: "text" or "json". [default: "text"]
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Node Configuration​

Displays the Wings configuration for the specified node.

php artisan p:node:configuration [options] <node>
Arguments:
node The ID or UUID of the node to return the configuration for.

Options:
--format[=FORMAT] The output format. Options are "yaml" and "json". [default: "yaml"]
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Server Commands​

Bulk Power Actions​

Perform bulk power management on large groupings of servers or nodes at once.

php artisan p:server:bulk-power [options] <action>
Arguments:
action The action to perform (start, stop, restart, kill)

Options:
--servers[=SERVERS] A comma separated list of servers.
--nodes[=NODES] A comma separated list of nodes.
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Process Schedules​

Process schedules in the database and determine which are ready to run. This runs every minute via the scheduler.

php artisan p:schedule:process

Egg Commands​

Check for Egg Updates​

Compares each egg against its update URL and reports whether it is up to date. Eggs without an update URL are skipped. This runs daily via the scheduler.

php artisan p:egg:check-updates

Update Egg Index​

Refreshes the cached index of available eggs from the Pelican CDN. This runs daily via the scheduler.

php artisan p:egg:update-index

Normalize an Egg​

Upgrades an egg json/yaml file to the latest format as yaml.

php artisan p:egg:normalize [options] <file>
Arguments:
file Path to the egg json/yaml file.

Options:
--delete-original Delete the original file after converting.
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Plugin Commands​

List Plugins​

List all installed plugins.

php artisan p:plugin:list

Create a Plugin​

Create a new plugin.

php artisan p:plugin:make [options]
Options:
--name[=NAME]
--author[=AUTHOR]
--description[=DESCRIPTION]
--category[=CATEGORY]
--url[=URL]
--updateUrl[=UPDATEURL]
--panels[=PANELS]
--panelVersion[=PANELVERSION]
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Install a Plugin​

Installs and enables a plugin. If no id is given you will be asked to choose one.

php artisan p:plugin:install [<id>]

Update a Plugin​

Updates a plugin, if an update is available.

php artisan p:plugin:update [<id>]

Disable a Plugin​

Disables a plugin.

php artisan p:plugin:disable [<id>]

Uninstall a Plugin​

Uninstalls a plugin.

php artisan p:plugin:uninstall [options] [<id>]
Options:
--delete Delete the plugin files
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Install Plugin Composer Packages​

Makes sure the needed composer packages for all installed plugins are available.

php artisan p:plugin:composer

Maintenance Commands​

Prune Docker Images​

Clean up all dangling docker images to clear up disk space. If no node ID is given, all nodes are cleaned. This runs daily via the scheduler.

php artisan p:maintenance:prune-images [<node>]

Prune Orphaned Backups​

Marks all backups older than "n" minutes that have not yet completed as being failed. Defaults to the backups.prune_age config value (360 minutes).

php artisan p:maintenance:prune-backups [options]
Options:
--prune-age[=PRUNE-AGE] Age in minutes after which an uncompleted backup is marked as failed.
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Clean Service Backup Files​

Clean orphaned .bak files created when modifying services. This runs daily via the scheduler.

php artisan p:maintenance:clean-service-backups

Fix Database Grants​

Re-issues the grants of all server databases so that their names are no longer used as wildcard patterns.

php artisan p:maintenance:fix-database-grants

Editing the Environment​

Editing Cache​

php artisan p:environment:cache [options]
Options:
--driver[=DRIVER] The cache driver backend to use.
--redis-host[=REDIS-HOST] Redis host to use for connections.
--redis-user[=REDIS-USER] User used to connect to redis.
--redis-pass[=REDIS-PASS] Password used to connect to redis.
--redis-port[=REDIS-PORT] Port to connect to redis over.
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Editing Database​

php artisan p:environment:database [options]
Options:
--driver[=DRIVER] The database driver backend to use.
--database[=DATABASE] The database to use.
--schema[=SCHEMA] The schema to use for the PostgreSQL database.
--host[=HOST] The connection address for the MySQL/ MariaDB/ PostgreSQL server.
--port[=PORT] The connection port for the MySQL/ MariaDB/ PostgreSQL server.
--username[=USERNAME] Username to use when connecting to the MySQL/ MariaDB/ PostgreSQL server.
--password[=PASSWORD] Password to use for the MySQL/ MariaDB/ PostgreSQL database.
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Editing Mail​

php artisan p:environment:mail [options]
Options:
--driver[=DRIVER] The mail driver to use.
--email[=EMAIL] Email address that messages from the Panel will originate from.
--from[=FROM] The name emails from the Panel will appear to be from.
--encryption[=ENCRYPTION]
--host[=HOST]
--port[=PORT]
--endpoint[=ENDPOINT]
--username[=USERNAME]
--password[=PASSWORD]
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Editing Queue​

php artisan p:environment:queue [options]
Options:
--driver[=DRIVER] The queue driver backend to use.
--redis-host[=REDIS-HOST] Redis host to use for connections.
--redis-user[=REDIS-USER] User used to connect to redis.
--redis-pass[=REDIS-PASS] Password used to connect to redis.
--redis-port[=REDIS-PORT] Port to connect to redis over.
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Editing Queue Service​

php artisan p:environment:queue-service [options]
Options:
--service-name[=SERVICE-NAME] Name of the queue worker service.
--user[=USER] The user that PHP runs under.
--group[=GROUP] The group that PHP runs under.
--overwrite Force overwrite if the service file already exists.
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Editing Session​

php artisan p:environment:session [options]
Options:
--driver[=DRIVER] The queue driver backend to use.
--redis-host[=REDIS-HOST] Redis host to use for connections.
--redis-user[=REDIS-USER] User used to connect to redis.
--redis-pass[=REDIS-PASS] Password used to connect to redis.
--redis-port[=REDIS-PORT] Port to connect to redis over.
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Setting cache, queue & session driver at once​

php artisan p:redis:setup [options]
Options:
--redis-host[=REDIS-HOST] Redis host to use for connections.
--redis-user[=REDIS-USER] User used to connect to redis.
--redis-pass[=REDIS-PASS] Password used to connect to redis.
--redis-port[=REDIS-PORT] Port to connect to redis over.
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Editing Setup​

php artisan p:environment:setup [options]
Options:
--url[=URL] The URL that this Panel is running on.
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Migrations​

Migration Command​

php artisan migrate [options]
Options:
--database[=DATABASE] The database connection to use
--force Force the operation to run when in production
--path[=PATH] The path(s) to the migrations files to be executed (multiple values allowed)
--realpath Indicate any provided migration file paths are pre-resolved absolute paths
--schema-path[=SCHEMA-PATH] The path to a schema dump file
--pretend Dump the SQL queries that would be run
--seed Indicates if the seed task should be re-run
--seeder[=SEEDER] The class name of the root seeder
--step Force the migrations to be run so they can be rolled back individually
--graceful Return a successful exit code even if an error occurs
--isolated[=ISOLATED] Do not run the command if another instance of the command is already running [default: false]
-q, --quiet Do not output any message
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Running Migations​

php artisan migrate

Rollback previous Migration​

php artisan migrate:rollback [options]
Options:
--database[=DATABASE] The database connection to use
--force Force the operation to run when in production
--path[=PATH] The path(s) to the migrations files to be executed (multiple values allowed)
--realpath Indicate any provided migration file paths are pre-resolved absolute paths
--pretend Dump the SQL queries that would be run
--step[=STEP] The number of migrations to be reverted
--batch=BATCH The batch of migrations (identified by their batch number) to be reverted
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Check Migration Status​

php artisan migrate:status [options]
Options:
--database[=DATABASE] The database connection to use
--pending[=PENDING] Only list pending migrations [default: false]
--path[=PATH] The path(s) to the migrations files to use (multiple values allowed)
--realpath Indicate any provided migration file paths are pre-resolved absolute paths
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question

Providing no extra options, php artisan migrate:status, You should see an output similar to the below

Migration Status Output
Migration name .............................................................................. Batch / Status
2016_01_23_195641_add_allocations_table ............................................................ [1] Ran
2016_01_23_195851_add_api_keys ..................................................................... [1] Ran
...
...
2024_07_12_095213_fix_missing_sqlite_foreign_keys .................................................. [1] Ran
2024_08_13_171337_fix_allocation_server_foreign_key ................................................ [2] Ran

If any show PENDING or FAILED. Open a support thread on our discord for further assistance.

Clearing Cache​

The below commands are helpful if you need to clear the config or application cache.

php artisan cache:clear # Clears application cache
php artisan config:clear # Clears configuration cache
note

php artisan config:cache is disabled in Pelican, and php artisan optimize skips config caching. Caching the config would stop plugin config files (/plugins/config/*.php) from loading.