- What is tkachikov/chronos used for in a Laravel application?
- Chronos is a Laravel-native operations panel for scheduling, running, and observing artisan and system commands. It fits applications that already use Laravel's scheduler, queue workers, and cache, and it follows Laravel service-provider and config-publishing conventions. It is intended for command operations and observability rather than general application infrastructure.
- How do I install and configure Chronos in Laravel?
- Install the package with Composer, publish its configuration, and review chronos.system_commands before enabling scheduled or manual command execution. Version 1.9.1 has no migrations, so the main integration work is configuration governance. Set CHRONOS_TEST_COMMANDS and CHRONOS_PHP_BINARY deliberately for each environment.
- Which Laravel versions does Chronos 1.9.1 support?
- Chronos 1.9.1 supports illuminate/support ^10.0, ^11.0, ^12.0, and ^13.0. That makes it viable for Laravel 10 through Laravel 13 applications, including recently upgraded projects. It can be adopted without forcing a framework upgrade.
- Why are my scheduled commands not running after upgrading Chronos?
- System commands are disabled by default in 1.9.1, and only application and Chronos commands may be run or scheduled unless they are explicitly allowlisted. Existing schedules that reference disallowed vendor or framework commands are skipped rather than removed. Populate chronos.system_commands with every required command before deployment and verify that schedules execute after the upgrade.
- What is chronos.system_commands and how should I configure it?
- chronos.system_commands is the allowlist that controls which system, vendor, or framework commands Chronos may run or schedule. Inventory all currently scheduled and manually run commands, separate application and Chronos commands from vendor commands, and add the required names or classes before deploying. Application and Chronos commands are allowed by default, but anything outside those needs explicit configuration.
- Do Chronos test commands work outside local environments?
- Chronos test commands are local-only unless CHRONOS_TEST_COMMANDS=true is set. Staging environments that depend on commands such as chronos:test or chronos:answer will lose access until that setting is configured. Enable test commands deliberately per environment and leave them disabled outside local unless there is a clear operational need.
- What is CHRONOS_PHP_BINARY and when do I need to set it?
- Real-time execution in Chronos 1.9.1 uses the running PHP binary instead of resolving php from PATH, and CHRONOS_PHP_BINARY lets you override that binary. Set it when the panel runtime PHP differs from the intended worker or command execution runtime, especially in containerized or multi-version environments. Confirm that the selected binary matches the PHP version your commands expect.
- Will Chronos 1.9.1 change command duration metrics on my dashboard?
- Yes, metrics calculation changed in 1.9.1. Average command duration is no longer an average of averages, and metrics accumulation was fixed, so historical dashboards may show discontinuities or corrected values. Communicate the change to operators and review any alerts based on duration metrics after upgrading.
- Does Chronos require database migrations or config republishing?
- Chronos 1.9.1 does not include database migrations. New config keys are designed to work with older published configs, so republishing is not required, although reviewing the published configuration is advisable. The Authorize middleware fix and subdirectory deployment fix also reduce prior integration edge cases.
- How does the Chronos Authorize middleware affect access and how do I avoid authorization errors?
- The Authorize middleware controls access to Chronos operations, so authorization errors usually mean the middleware or published provider configuration is incomplete. Confirm that the published provider is present and that access rules match your application's authorization model. The 1.9.1 Authorize middleware fix reduces prior integration problems, but the provider and config still need to be in place.