October CMS is a free and open-source PHP content management system built on the Laravel framework, prized by developers for its clean architecture, Twig templating engine, and extensive plugin marketplace. It powers custom web applications, content sites, and client projects worldwide. When October CMS goes down — whether due to a PHP crash, database failure, or failed deployment — visitors see errors and backend editors lose access. Vigilmon monitors your October CMS frontend, backend panel, and Laravel scheduled tasks so you know the moment something breaks.
What You'll Set Up
- HTTP uptime monitor for the October CMS frontend (homepage health check)
- Backend panel availability monitor (
/backend/auth/signin) - API endpoint health check via HTTP response monitoring
- SSL certificate expiry alerts for HTTPS October CMS deployments
- Cron heartbeat monitors for Laravel scheduled tasks (maintenance, newsletter delivery)
Prerequisites
- October CMS v3 (or v2) installed on a server running PHP 8.1+ and a web server (nginx or Apache)
- October CMS frontend reachable over HTTP or HTTPS
- A free Vigilmon account
Step 1: Monitor the October CMS Frontend
The homepage is the first indicator of site health. A successful response confirms PHP-FPM is running, the database connection is alive, and October CMS's routing and rendering pipeline is working end-to-end.
- Log in to vigilmon.online and click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter your site's homepage URL:
https://yoursite.com/ - Set Check interval to
1 minute. - Set Expected HTTP status to
200. - In Keyword check, enter a phrase that should always be present in your homepage HTML — for example, your site name or a nav element. This catches silent PHP errors that return HTTP 200 with a blank or error page.
- Click Save.
If October CMS is configured to show a maintenance page during updates, remember to create a Vigilmon Maintenance window before running artisan october:update to avoid false alarms.
Step 2: Monitor the Backend Panel
The October CMS backend panel (/backend) is where editors, administrators, and content managers work. Its availability depends on the same PHP and database stack as the frontend, but a misconfigured plugin or an ACL change can take the backend offline while the frontend continues to serve cached pages.
- Click Add Monitor → HTTP / HTTPS.
- Enter the backend sign-in URL:
https://yoursite.com/backend/auth/signin - Set Check interval to
5 minutes. - Set Expected HTTP status to
200. - In Keyword check, enter
Sign inorBackend— a string that appears on the backend login page. - Click Save.
This monitor alerts you if the backend becomes unavailable (plugin crash, permission error, or database issue) independently of whether the frontend is still up.
Step 3: Monitor Your API Endpoints
October CMS sites often expose API endpoints — either through the built-in AJAX framework, custom routes, or plugins like RainLab.User or custom RESTful controllers. Monitor a representative API endpoint to verify your application logic is reachable:
- Click Add Monitor → HTTP / HTTPS.
- Enter your API health check URL. If you have a dedicated health route, use it:
If not, add a simple health route to your routes file:https://yoursite.com/api/health// routes.php or a service provider Route::get('/api/health', function () { return response()->json(['status' => 'ok']); }); - Set Check interval to
5 minutes. - Set Expected HTTP status to
200. - In Keyword check, enter
ok. - Click Save.
Step 4: SSL Certificate Alerts
October CMS sites served over HTTPS need valid SSL certificates. Let's Encrypt auto-renewal can fail silently if the ACME challenge is blocked, certbot's cron entry is missing, or disk space runs out.
- Open any of your HTTPS monitors.
- Enable Monitor SSL certificate under the SSL section.
- Set Alert when certificate expires in less than
21 days. - Click Save.
Verify your certificate expiry from the command line:
echo | openssl s_client -servername yoursite.com \
-connect yoursite.com:443 2>/dev/null \
| openssl x509 -noout -dates
Repeat for every domain your October CMS site uses. A 21-day window leaves time to investigate and renew before visitors see security warnings.
Step 5: Heartbeat Monitoring for Laravel Scheduled Tasks
October CMS inherits Laravel's task scheduler (artisan schedule:run). This single cron entry, invoked every minute, dispatches all registered tasks — plugin maintenance, image processing, newsletter delivery, and more. If the cron entry is removed, the server runs out of memory, or artisan crashes, all scheduled tasks silently stop without any HTTP-level signal.
Use Vigilmon's cron heartbeat to detect scheduler failures before they impact users.
Laravel Scheduler Heartbeat
- In Vigilmon, click Add Monitor → Cron Heartbeat.
- Set the name to
October CMS Laravel Scheduler. - Set Expected ping interval to
2 minutes(the scheduler runs every minute; a 2-minute window accounts for one missed run). - Copy the heartbeat URL (e.g.,
https://vigilmon.online/heartbeat/abc123). - Update your server cron to ping Vigilmon after the scheduler runs:
# /etc/cron.d/october-cms
* * * * * www-data cd /var/www/yoursite && php artisan schedule:run >> /dev/null 2>&1 \
&& curl -s https://vigilmon.online/heartbeat/abc123
Newsletter Delivery Heartbeat
If you use a newsletter plugin (e.g., RainLab.Notify or a custom mailer) that sends newsletters on a schedule:
- Click Add Monitor → Cron Heartbeat.
- Set the name to
October CMS Newsletter Delivery. - Set Expected ping interval to match your send schedule (e.g.,
1440 minutesfor daily sends). - Register a scheduled task in your plugin's
Plugin.phpthat pings Vigilmon after successful delivery:
// Plugin.php
public function registerSchedule($schedule)
{
$schedule->call(function () {
// Your newsletter delivery logic
Newsletter::sendPending();
// Signal success to Vigilmon
Http::get('https://vigilmon.online/heartbeat/def456');
})->daily();
}
If the scheduler stops running or the newsletter job fails, Vigilmon alerts you after the expected interval passes.
Step 6: Configure Alert Channels
- Go to Alert Channels in Vigilmon and connect Slack, email, or a webhook.
- Set Consecutive failures before alert to
2on frontend and backend monitors — a single slow PHP response during a cache rebuild can cause one probe to time out without indicating a real outage. - Use Maintenance windows when deploying updates:
# Suppress alerts for 10 minutes during a deployment
curl -X POST https://vigilmon.online/api/maintenance \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"monitor_id": "YOUR_MONITOR_ID", "duration_minutes": 10}'
php artisan october:update
# Maintenance window expires automatically
Summary
| Monitor | Target | What It Catches |
|---|---|---|
| Frontend | https://yoursite.com/ | PHP crash, DB down, render failure |
| Backend panel | /backend/auth/signin | Backend-specific outage |
| API endpoint | /api/health | Application logic failure |
| SSL certificate | Each HTTPS domain | Certificate expiry |
| Laravel scheduler heartbeat | Heartbeat URL | Cron missing, artisan crash |
| Newsletter delivery heartbeat | Heartbeat URL | Failed newsletter sends |
October CMS's Laravel foundation makes it a joy to build on — but you're responsible for its uptime. With Vigilmon watching the frontend, backend panel, API endpoints, SSL certificates, and Laravel scheduled tasks, you'll catch problems before your editors and visitors do.