Skip to content

Laravel Kick Integration

The dashboard integrates with Laravel Kick to provide deep introspection into your running applications.

Laravel Kick is a package you install on your deployed application that exposes secure endpoints for:

  • Health checks (database, cache, storage, redis)
  • System stats (CPU, memory, disk, uptime)
  • Log file viewing with filtering
  • Queue status and failed jobs
  • Artisan command execution
Terminal window
composer require stumason/laravel-kick

Add to your application’s Coolify environment variables:

Terminal window
KICK_ENABLED=true
KICK_TOKEN=your-secure-random-token

Generate a secure token:

Terminal window
openssl rand -base64 32

After deployment, a Kick tab appears in the dashboard for that application.

  • Health Checks - Real-time status of database, cache, storage, and redis connections
  • System Stats - CPU load, memory usage, disk space, and uptime
  • Queue Status - Quick view of pending jobs and failed count
  • File Selection - Browse all Laravel log files
  • Level Filtering - Filter by DEBUG, INFO, WARNING, ERROR, etc.
  • Search - Full-text search across log entries
  • Line Limits - Control how many lines to display
  • Connection Info - Current queue driver and status
  • Queue Sizes - Pending jobs per queue (default, high, low)
  • Failed Jobs - List of failed jobs with exception details
  • Command List - All whitelisted artisan commands
  • Execution - Run commands directly from the dashboard
  • Output - View command output and exit codes

All Kick endpoints require the KICK_TOKEN for authentication. The token is:

  • Sent as a Bearer token in the Authorization header
  • Never exposed in the dashboard UI
  • Required for every request

Artisan commands must be explicitly whitelisted in your Kick configuration. By default, only safe read-only commands are allowed.

The artisan execution endpoint is rate-limited to 10 requests per minute to prevent abuse.

In your Laravel Coolify config (config/coolify.php):

'kick' => [
// Enable/disable kick integration globally
'enabled' => env('COOLIFY_KICK_ENABLED', true),
// Cache TTL for kick config lookups (seconds)
'cache_ttl' => env('COOLIFY_KICK_CACHE_TTL', 60),
// Timeout for kick API requests (seconds)
'timeout' => env('COOLIFY_KICK_TIMEOUT', 10),
],

In your deployed app’s Coolify environment:

Terminal window
KICK_ENABLED=true
KICK_TOKEN=your-secure-token
KICK_PREFIX=kick # Optional, defaults to 'kick'

This usually means:

  1. Route cache needs rebuilding - Run php artisan route:cache on the server
  2. Application is restarting - Wait for deployment to complete
  3. Kick package not installed - Verify with composer show stumason/laravel-kick

The Kick tab only appears when:

  1. KICK_ENABLED=true is set in the app’s environment
  2. KICK_TOKEN is configured
  3. The Kick endpoints are reachable

Verify your KICK_TOKEN matches between:

  • The app’s Coolify environment variables
  • What Laravel Kick expects on the deployed app