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

CommandDescription
php artisan extension:listList every discovered extension and its status
php artisan extension:discoverScan 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 --assetsPublish an extension's config and/or assets

Scaffolding

CommandCreates
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

CommandDescription
php artisan app:updatePick and install a WemX release from GitHub
php artisan app:update --tag={tag} --forceInstall a specific release without prompts
php artisan application:test-dataSeed the installation with test data (development only)
php artisan queue:workRun the queue worker (provisioning, emails)
php artisan schedule:runRun due scheduled tasks (call from cron every minute)
composer devDevelopment: 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:

CommandSchedulePurpose
cronjobs:orders:suspend-expiredEvery 3 hoursSuspend orders past the suspension period
cronjobs:orders:terminate-expiredEvery 3 hoursTerminate orders past the termination period
cronjobs:orders:renew-balance-renewalsDailyAuto-renew orders from customer balance
cronjobs:update-currency-ratesDailyRefresh exchange rates
cronjobs:mass-mails:sendEvery minuteDeliver queued mass mails (--chunk=100)
server-connections:testEvery 5 minutesHealth-check server connections
cronjobs:check-github-updateEvery 30 minutesCheck for WemX releases
cronjobs:check-marketplace-updatesDailyCheck for extension updates
cronjobs:report-active-checkEvery 3 hoursLicense heartbeat
cronjobs:check-subscriptionsManualSync subscription status with gateways

Extensions can add their own, for example tickets:auto-close (hourly) and tickets:ingest-mail from the Tickets module.

On this page