Installation
import { Aside } from ‘@astrojs/starlight/components’;
Not on Laravel?
Post one HTTP receipt when the job finishes. First-class paths: curl, Node, Python, Sidekiq, and GitHub Actions. See the HTTP check-in recipes and quick start. You do not need Composer.
Laravel package
The rest of this page is for Laravel apps that want the package to attach that receipt from the scheduler and add queue depth and Horizon freshness.
1. Prerequisites
- PHP 8.2+
- Laravel 11, 12, or 13
- A Crontinel account (sign up free)
2. Install
composer require crontinel/laravelphp artisan crontinel:installphp artisan migrate3. Configure
By default the dashboard is at /crontinel. Optionally change it in your .env:
CRONTINEL_PATH=crontinel4. Open the dashboard
Visit /crontinel in your browser. You’ll see the monitoring dashboard.
What you should see: The Horizon and Queue sections populate immediately. The Cron section will be empty until your scheduler has run at least once — this is normal.
5. Run your scheduler
For local development:
php artisan schedule:workFor production, add this to your server’s crontab:
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&16. Dashboard verification
After the first scheduler tick:
- Go to
/crontinelin your browser - The Cron section now shows your registered scheduled commands
- Each command displays its last run time, exit code, and duration
Laravel package details
Still not on Laravel? Stop here and use the HTTP recipes. Everything below is Composer-only.
Requirements
- PHP 8.2, 8.3, 8.4, or 8.5
- Laravel 11, 12, or 13
Install (repeat of the quickstart)
composer require crontinel/laravelphp artisan crontinel:installphp artisan migrateAfter running the installer, config/crontinel.php is published to your project. Review it to set the dashboard path, middleware, and alert thresholds. See the configuration reference for all available options.
Using Horizon? Set
'horizon' => ['enabled' => true]inconfig/crontinel.php. If you’re not using Horizon, set it tofalseto hide the Horizon panel.
Requirements check
Run the health check to confirm everything is wired up correctly:
php artisan crontinel:checkDashboard path
By default the dashboard is at /crontinel. To change it:
CRONTINEL_PATH=monitoring # Required environment variableMiddleware
The dashboard uses ['web', 'auth'] middleware by default. To customize:
'middleware' => ['web', 'auth', 'can:view-monitoring'],Requirements check
php artisan crontinel:checkExits 0 if healthy, 1 if any alert is active. Use in CI pipelines:
php artisan crontinel:check --format=jsonEnvironment variables
All Crontinel environment variables and their defaults. Set these in .env or directly in config/crontinel.php:
# Dashboard path (default: /crontinel)CRONTINEL_PATH=crontinel
# Horizon integration (set to false if you don't use Horizon)CRONTINEL_HORIZON_ENABLED=trueCRONTINEL_HORIZON_CONNECTION=horizon
# Alert channel (slack, email, webhook)CRONTINEL_ALERT_CHANNEL=slackCRONTINEL_SLACK_WEBHOOK=https://hooks.slack.com/services/YOUR/WEBHOOK/URLCRONTINEL_ALERT_EMAIL=alerts@example.comCRONTINEL_WEBHOOK_URL=https://your-endpoint.example.com/crontinel# PagerDuty is on the alerts roadmap — see /alerts/channels
# SaaS reporting (optional — omit for local-only monitoring)CRONTINEL_API_KEY=CRONTINEL_API_URL=https://app.crontinel.comSee the configuration reference for all options including thresholds, retention, and middleware.
Upgrading
Pull the latest version through Composer:
composer update crontinel/laravelIf you want to pin a specific version, use composer require crontinel/laravel:^0.8 instead.
Run new migrations
New releases sometimes add or modify tables. After updating, always run:
php artisan migrateThe package uses its own migration files, so this is safe to run alongside your app migrations. Check the release notes if you’re curious what changed.
Config changes
If a new version introduces config options, your existing config/crontinel.php won’t have them. You’ve got two choices:
- Re-publish and diff manually:
php artisan vendor:publish --tag=crontinel-configThis will ask to overwrite your existing file. Say no, then compare the new defaults with your current config.
- Check the changelog for new keys and add them yourself. This is usually faster if only one or two options were added.
Check for breaking changes
Before upgrading across major versions, read the changelog. Major releases may rename config keys, drop support for older Laravel/PHP versions, or change method signatures. In practice, minor and patch releases won’t break anything.
Verify the upgrade
Once you’ve migrated and updated your config, run the health check:
php artisan crontinel:checkThis confirms your database tables are current, the API key is valid, and the agent can reach the Crontinel servers. If something’s off, it’ll tell you exactly what failed.
So, the full upgrade sequence looks like this:
composer update crontinel/laravelphp artisan migratephp artisan crontinel:checkThree commands, done in under a minute.