CLI Reference
Artisan commands for managing extensions, updating WemX and running scheduled tasks by hand.
Run all commands from your WemX folder, as the web server user where possible (for example sudo -u www-data php artisan …), so file permissions stay correct.
Extensions
| Command | Description |
|---|---|
php artisan extension:list | List every discovered extension and its status |
php artisan extension:discover | Scan extensions/ and register new extensions |
php artisan extension:enable {name} | Enable an extension (runs onEnable, registers elements) |
php artisan extension:disable {name} | Disable an extension (data is kept) |
php artisan extension:install {name} | Enable, migrate and publish assets in one step |
php artisan extension:uninstall {name} | Uninstall an extension |
php artisan extension:migrate {name} | Run an extension's migrations |
php artisan extension:publish {name} --config --assets | Publish an extension's config and/or assets |
Scaffolding
| Command | Creates |
|---|---|
php artisan make:module {name} | extensions/Modules/{name}/Module.php |
php artisan make:server {name} | extensions/Servers/{name}/Server.php |
php artisan extensions:add-routes {name} | routes.php |
php artisan extensions:add-views {name} | Views/ |
php artisan extensions:add-migrations {name} | Migrations/ |
php artisan extensions:add-translations {name} | Lang/ |
php artisan extensions:add-config {name} | Config/config.php |
Application
| Command | Description |
|---|---|
php artisan app:update | Pick and install a WemX release from GitHub |
php artisan app:update --tag={tag} --force | Install a specific release without prompts |
php artisan application:test-data | Seed the installation with test data (development only) |
php artisan queue:work | Run the queue worker (provisioning, emails) |
php artisan schedule:run | Run due scheduled tasks (call from cron every minute) |
composer dev | Development: runs the queue listener, the scheduler, the log viewer and Vite together |
Scheduled tasks
These run automatically from the scheduler, but you can run them by hand:
| Command | Schedule | Purpose |
|---|---|---|
cronjobs:orders:suspend-expired | Every 3 hours | Suspend orders past the suspension period |
cronjobs:orders:terminate-expired | Every 3 hours | Terminate orders past the termination period |
cronjobs:orders:renew-balance-renewals | Daily | Auto-renew orders from customer balance |
cronjobs:update-currency-rates | Daily | Refresh exchange rates |
cronjobs:mass-mails:send | Every minute | Deliver queued mass mails (--chunk=100) |
server-connections:test | Every 5 minutes | Health-check server connections |
cronjobs:check-github-update | Every 30 minutes | Check for WemX releases |
cronjobs:check-marketplace-updates | Daily | Check for extension updates |
cronjobs:report-active-check | Every 3 hours | License heartbeat |
cronjobs:check-subscriptions | Manual | Sync subscription status with gateways |
Extensions can add their own, for example tickets:auto-close (hourly) and tickets:ingest-mail from the Tickets module.