See rates for the top Laravel developers in Latin America

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 $2500/month. Get 160 hours of dedicated expertise & a risk-free 15-day trial. Schedule a call now!

Bacancy
Laravel Forge logo

Laravel Forge

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

Laravel Forge
Tinkerwell logo

Tinkerwell

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

Tinkerwell
Cut PHP Code Review Time & Bugs into Half with CodeRabbit logo

Cut PHP Code Review Time & Bugs into Half with CodeRabbit

CodeRabbit is an AI-powered code review tool that specializes in PHP and Laravel, running PHPStan and offering automated PR analysis, security checks, and custom review features while remaining free for open-source projects.

Cut PHP Code Review Time & Bugs into Half with CodeRabbit
Join the Mastering Laravel community logo

Join the Mastering Laravel community

Connect with experienced developers in a friendly, noise-free environment. Get insights, share ideas, and find support for your coding challenges. Join us today and elevate your Laravel skills!

Join the Mastering Laravel community
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
Lucky Media logo

Lucky Media

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

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar: Laravel E-Commerce

E-Commerce for Laravel. An open-source package that brings the power of modern headless e-commerce functionality to Laravel.

Lunar: Laravel E-Commerce
LaraJobs logo

LaraJobs

The official Laravel job board

LaraJobs
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 →
Auto-translate Application Strings with Laratext image

Auto-translate Application Strings with Laratext

Read article
Simplify Factory Associations with Laravel's UseFactory Attribute image

Simplify Factory Associations with Laravel's UseFactory Attribute

Read article
Improved Installation and Frontend Hooks in Laravel Echo 2.1 image

Improved Installation and Frontend Hooks in Laravel Echo 2.1

Read article
Filter Model Attributes with Laravel's New except() Method image

Filter Model Attributes with Laravel's New except() Method

Read article
Arr::from() Method in Laravel 12.14 image

Arr::from() Method in Laravel 12.14

Read article
Streamline API Resources with Laravel's Fluent Methods image

Streamline API Resources with Laravel's Fluent Methods

Read article