- How do I install Laravel Totem in a Laravel app?
- Install with composer require studio/laravel-totem, then run php artisan migrate and php artisan totem:assets. You also need Laravel's scheduler cron entry running schedule:run every minute. The package requires PHP 8.2+ and Laravel 11.x or 12.x.
- Which Laravel and PHP versions does Laravel Totem support?
- The compatibility matrix maps Totem 11.x to Laravel 11.x and 12.x with PHP 8.2+. Every Laravel major upgrade should be treated as a coordinated Totem dependency upgrade, asset republish, and regression test cycle. Pin your Composer version and verify tags on Packagist before standardizing.
- How do I secure the Laravel Totem dashboard?
- Configure Totem::auth in the boot method of AppServiceProvider with a closure that returns true or false, such as Auth::check(). The dashboard is local-only by default, so you must deliberately change that behavior for shared or production environments. There is no evidence of fine-grained RBAC, approval workflows, or immutable audit trails, so add authorization around the dashboard as needed.
- Does Laravel Totem replace Laravel's native scheduler?
- No. Totem is a thin scheduling control plane layered on top of Laravel's native scheduler and assumes schedule:run is already running every minute. It stores task definitions and results in your application database and executes Artisan commands in the application runtime. It is not a distributed scheduler, queue replacement, or workflow engine.
- Can I enable or disable scheduled tasks without deploying code?
- Yes. Totem lets you enable or disable scheduled tasks on the fly from the dashboard and schedule Laravel console commands without going back to your code. The v13.3.0 pause all tasks feature is a useful global stop lever for incidents. It is coarse-grained, so it does not provide per-team scoping or approval steps.
- Why does TOTEM_CACHE_STORE matter for Laravel Totem?
- Totem warns that separate cache clusters between the dashboard UI and worker servers can cause inconsistent state. Set TOTEM_CACHE_STORE to a shared cache store used by both sides. Disabling caching with array avoids that inconsistency but increases database load.
- Can Laravel Totem run arbitrary Artisan commands with parameters?
- Totem exposes non-hidden Artisan commands in the dashboard and provides a free-text parameter field for arguments such as name=john.doe --greetings=hello. That is flexible but weak for validation and auditability. Decide deliberately which Artisan commands are exposed and secure dashboard access accordingly.
- How do I avoid table name conflicts when installing Laravel Totem?
- Totem uses generic table names that may conflict with existing tables, so set the TOTEM_TABLE_PREFIX environment variable before migrating. You can also configure TOTEM_WEB_MIDDLEWARE and related options as needed. Run php artisan migrate after setting the prefix.
- What are the production risks of using Laravel Totem?
- The main risks are lifecycle and operational: version lockstep with Laravel, rapid minor releases that favor pinned versions and staged upgrades, and a community-maintained support model with no vendor SLA. The dashboard can trigger non-hidden Artisan commands, so auth and environment gating need deliberate review. Task results and output logs accumulate in application storage or the database, and cache consistency must be owned operationally.
- What should I use instead of Laravel Totem for scheduled tasks?
- If code-managed schedules are sufficient, Laravel's native scheduler with a cron entry is the simplest baseline. If you need distributed scheduling, central governance, or workflow orchestration, use a dedicated scheduler or workflow engine rather than Totem. Totem fits best as an internal operations dashboard for a Laravel monolith or a small number of first-party apps.