The go-to PHP IDE with extensive out-of-the-box support for Laravel and its ecosystem.

Fire Tower: Application & Config Monitoring

Last updated on by

Fire Tower: Application & Config Monitoring image

In a perfect world all our side projects, dev sites, customer systems, and other Laravel applications would be up to date running on Laravel 12, PHP 8.4, and the latest version of all the packages we love. We’d also have applications that run perfectly, always have the external ETL processes provide the correct data, and never forget to set a variable in our .env file.

Unfortunately, most of us aren’t that lucky.

Fire Tower provides an easy to use Laravel package that plugs into your Laravel application and monitors crucial information using our expanding checks and version information. By default, Fire Tower will check to see if you’re running the latest version of Laravel, PHP, verify you don’t have debug mode on in Production, and even let you know if you forgot to setup your Mail config for those password reset emails.

It doesn’t just stop there. Fire Tower lets you build your own bespoke checks. Does your application need to ensure a specific piece of data is within a certain range? Do you need to ensure a certain number of rows exist in a column? Do you need to check the latest created_at date on a table to make sure your ETL process ran? All these can easily be created and used with Fire Tower.

Use Cases

The Hobbyist

If you’re like me, you have a bunch of small apps that you’ve built to do different things and they don’t always get the attention they deserve. Sure, the last one you put out is running Laravel 11 but that one you built a few years ago? Did you upgrade it to 10 yet?

Or, are you also like me and have a bunch Statamic websites, or custom applications, you’ve built for clients that might be a bit behind on updates?

Fire Tower lets you quickly see the specific composer package version each of your applications are running. Quickly know which apps need some TLC, and work towards getting them upgraded.

The Agency

Years ago I helped develop a Laravel package that was 99% of a Laravel application. It was really only deployed as a package to help facilitate easier updates and provide some flexibility as needed with the individual Laravel applications. Over the course of a few years we realized that keeping previous clients up to date with the newest version was a problem. We started trying to keep a spreadsheet, and do other things to keep it straight.

A product like Fire Tower back then would’ve saved us a ton of time and energy. To select specific packages to show on the dashboard just go to your team settings page and choose which focused packages you want.

Pricing

Fire Tower has two pricing options, one for users with only a few applications to monitor and one for advanced users, or agencies, that have more than five applications they want to monitor. The Pro plan also provides an advanced interface for managing applications with multiple servers.

Get 20% off your first month by using the coupon code LARAVELNEWS. This coupon is valid until midnight on Feb 25, 2025.

Setup

Installation

To get started, subscribe to Fire Tower, and install the Fire Tower package into your application:

composer require krakero/firetower

The next step is to run the installer:

php artisan firetower:install

The installer will publish the service provider and config file needed.

Next, we create an application and put our account and application keys into our .env file.

FIRETOWER_ACCOUNT_KEY="laravel-news-4ee4-838a-250aa0fb17f0"
FIRETOWER_APPLICATION_KEY="fire-tower-4181-936f-6f0f3f754ca3"

Once you have all that setup you’re ready to send your report:

php artisan firetower:report

We recommend scheduling the command to run once a week. View our docs for more information on setting this up.

Custom Checks

We have a artisan command to scaffold a check for you:

php artisan make:firetower-check

It will prompt you for a name, and will generate the following file:

<?php
 
namespace App\Checks;
 
use Krakero\FireTower\Checks\Check;
 
class EnsureNightlyDataLoadCheck extends Check
{
public string $name = 'My New Check';
 
public string $description = 'This checks that important data';
 
public function handle(): string
{
 
$this->pass();
 
// Note: This data is stored on the firetower servers.
// PLEASE DO NOT SEND ANY SENSITIVE DATA.
$this->data([
'my_variable' => 8675309
]);
 
return 'Success';
}
}

We’ll make some quick updates to our default check to send over relevant data:

<?php
 
namespace App\Checks;
 
use Krakero\FireTower\Checks\Check;
use App\Models\Order;
 
class EnsureNightlyDataLoadCheck extends Check
{
public string $name = 'Nightly ETL Check';
 
public string $description = 'Validates that the latest daily sales values made it into the application.';
 
public function handle(): string
{
$order = Order::latest()->get();
 
if ($order->created_at > now()->subDay()) {
$this->pass();
 
$this->data([
'newest_order_date' => $order->created_at
]);
 
return 'PASS';
} else {
$this->fail();
 
return 'FAIL';
}
}
}

We’ll then need to add our check to the FireTowerServiceProvider.php file:

<?php
 
namespace App\Providers;
 
use App\Checks\EnsureNightlyDataLoadCheck;
//...
 
class FireTowerServiceProvider extends ServiceProvider
{
public function boot()
{
FireTower::checks(function () {
return [
DebugModeInProductionCheck::check(),
LaravelVersionCheck::check(),
PhpVersionCheck::check(),
//MailConfigInProductionCheck::check(),
//StripeKeyCheck::check()
EnsureNightlyDataLoadCheck::check(),
];
});
}
}

To learn more:

Vince Mitchell photo

Creator of Fire Tower and many other smaller projects. Developing for the web for over 20 years.

Filed in:
Cube

Laravel Newsletter

Join 40k+ other developers and never miss out on new tips, tutorials, and more.

image
Tinkerwell

Enjoy coding and debugging in an editor designed for fast feedback and quick iterations. It's like a shell for your application – but with multi-line editing, code completion, and more.

Visit Tinkerwell
Curotec logo

Curotec

World class Laravel experts with GenAI dev skills. LATAM-based, embedded engineers that ship fast, communicate clearly, and elevate your product. No bloat, no BS.

Curotec
Bacancy logo

Bacancy

Supercharge your project with a seasoned Laravel developer with 4-6 years of experience for just $3200/month. Get 160 hours of dedicated expertise & a risk-free 15-day trial. Schedule a call now!

Bacancy
Tinkerwell logo

Tinkerwell

The must-have code runner for Laravel developers. Tinker with AI, autocompletion and instant feedback on local and production environments.

Tinkerwell
Get expert guidance in a few days with a Laravel code review logo

Get expert guidance in a few days with a Laravel code review

Expert code review! Get clear, practical feedback from two Laravel devs with 10+ years of experience helping teams build better apps.

Get expert guidance in a few days with a Laravel code review
PhpStorm logo

PhpStorm

The go-to PHP IDE with extensive out-of-the-box support for Laravel and its ecosystem.

PhpStorm
Laravel Cloud logo

Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Laravel Cloud
Kirschbaum logo

Kirschbaum

Providing innovation and stability to ensure your web application succeeds.

Kirschbaum
Shift logo

Shift

Running an old Laravel version? Instant, automated Laravel upgrades and code modernization to keep your applications fresh.

Shift
Harpoon: Next generation time tracking and invoicing logo

Harpoon: Next generation time tracking and invoicing

The next generation time-tracking and billing software that helps your agency plan and forecast a profitable future.

Harpoon: Next generation time tracking and invoicing
Lucky Media logo

Lucky Media

Get Lucky Now - the ideal choice for Laravel Development, with over a decade of experience!

Lucky Media
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit: Laravel SaaS Starter Kit

SaaSykit is a Multi-tenant Laravel SaaS Starter Kit that comes with all features required to run a modern SaaS. Payments, Beautiful Checkout, Admin Panel, User dashboard, Auth, Ready Components, Stats, Blog, Docs and more.

SaaSykit: Laravel SaaS Starter Kit

The latest

View all →
Migrating Laravel News from Laravel Forge to Cloud image

Migrating Laravel News from Laravel Forge to Cloud

Read article
Laravel News Is the Live Stream Partner for Laracon EU 2026 image

Laravel News Is the Live Stream Partner for Laracon EU 2026

Read article
Query Builder Expression Aliases in Laravel 12.48 image

Query Builder Expression Aliases in Laravel 12.48

Read article
Restrict User Actions with Time-Based Sanctions Using Laravel Prohibitions image

Restrict User Actions with Time-Based Sanctions Using Laravel Prohibitions

Read article
Laravel Invite Only Adds a Full User Invitation System with Tokens, Events, and Reminders image

Laravel Invite Only Adds a Full User Invitation System with Tokens, Events, and Reminders

Read article
Docker Support in Laravel VS Code Extension v1.4.2 image

Docker Support in Laravel VS Code Extension v1.4.2

Read article