Installation

Requirements

  • Craft CMS 5.0 or later
  • PHP 8.2 or later

Install via Composer

Open your terminal and run:

composer require justinholtweb/craft-controltower

Install the Plugin

Then install the plugin via the Craft CLI:

php craft plugin/install control-tower

Or navigate to Settings → Plugins in the Control Panel and click “Install” next to Control Tower.

What Happens on Install

Control Tower creates eight database tables to store visitor sessions, editor activity, content events, metric samples, alerts, editor sessions, alert rules, and webhooks. It registers a CP section (Overview, Live Traffic, Editors, Content Health, Queue Watch, System Pulse, Alerts, Alert Rules, Webhooks, Settings) and a configurable dashboard widget.

Default Alert Rules

On install, Control Tower seeds five default alert rules so monitoring is useful immediately:

  • Queue has failed jobs — critical, fires at 3+ failed jobs
  • Multiple editors on same entry — warning, fires at 1+ collision
  • CPU usage critical — critical, fires at ≥ 90%
  • Memory usage critical — critical, fires at ≥ 90%
  • Disk usage critical — critical, fires at ≥ 90%

You can edit, disable, or delete any of these in Control Tower → Alert Rules, and add your own. See Alerts & Webhooks for details.

Upgrading from 5.0.x

Running php craft up after upgrading to 5.1.0 applies a schema migration that creates the controltower_alert_rules and controltower_webhooks tables, adds an alertRuleId column to controltower_alerts, and seeds the default rules. The schema version is bumped to 1.1.0. The legacy queueFailureAlertThreshold and enableCollisionDetection settings are no longer read — their behavior is now expressed as the corresponding seeded rules.