About

Watchtower alerts you when something is wrong with your server or your Laravel applications. That's it. No AI or enterprise complexity, just an alert when things go wrong.

Watchtower is designed for typical Laravel applications that run on VPS servers. If all you want is an alert when something needs your attention, then Watchtower might be right for you.

How Watchtower works
Watchtower consists of two parts:

  • Watchtower (a Laravel application)
  • The Watchtower client (a Bash script that runs every minute via a cron job)

The client is installed on every server you want to monitor. It collects data and sends it to Watchtower. Watchtower ingests the data and sends alerts if necessary.

Hosting Watchtower
Watchtower is a standard Laravel application that you can self-host. To self-host Watchtower, host it as you would any other Laravel application (via Laravel Forge, for example). Once you have Watchtower hosted, also set up the cron, a queue worker, and SMTP credentials to send emails.

More documentation on how to host Watchtower will become available in the future. For now, if you've ever hosted a Laravel application before, you should have no trouble hosting Watchtower.

Installing the client
Once you have access to your Watchtower instance, you'll be given a command that installs the client. Run this command on all the servers you want to monitor. After you've installed the client on a server you'll see the server appear in Watchtower almost instantly.

The client is installed in a specific directory on your server, for example ~/watchtower-client. No files are created or changed outside of this directory. You don't have to install a composer package or make any changes to your applications.

You can fully uninstall the client by deleting the directory you installed it in.

Adding applications to monitor
Once the client is installed, you can run watchtower-client/configure.sh to add applications you want to monitor.

Client data collection
The client collects the following data from the server:

  • Server disk usage
  • Server CPU usage
  • Server memory usage
  • Supervisor worker status

The client collects the following data from all added applications:

  • Log files
  • The Laravel version from composer.json
  • APP_NAME, APP_ENV, APP_DEBUG from the .env
Terms & Conditions Privacy Policy