Platforms

How do you monitor a Laravel Forge server?

Add server monitoring to a Laravel Forge server in about a minute: install the Opservo agent with a Forge recipe running as root, or over SSH.

In short

Forge provisions and deploys, but it does not tell you why a server is slow or about to fill up. To add that, install the Opservo agent once on each Forge server with a Forge recipe that runs as root, or over SSH. It takes about a minute per server, needs no change in Forge, and opens no inbound port.

What do you need?

  • •A Forge server (Ubuntu with systemd, amd64 or arm64)
  • •An Opservo workspace; Free covers up to 2 servers
  • •Outbound HTTPS (port 443) to api.getopservo.com. Forge’s firewall rules restrict inbound ports; Opservo opens none

How do you install it with a Forge recipe?

  • •In Opservo, click Add a new server, then Generate install command. The token in it works once and expires after one hour
  • •In Forge, open Recipes, click New recipe, set User to root and paste the command as the script
  • •Run the recipe on one server. Generate a fresh command for each further server, because each token is single-use
  • •The Opservo dialog shows Server connected and added
curl -sSL https://api.getopservo.com/install.sh | sudo env OPSERVO_API_URL=https://api.getopservo.com OPSERVO_TOKEN=<token> bash

Run the recipe as root because the installer writes a systemd service. The forge user needs a sudo password that Forge emails at provisioning, so a recipe running as forge cannot finish on its own. Over SSH, run the same command as root.

Can you install on many Forge servers at once?

Yes, with a reusable fleet key that an owner or admin creates under Add server, then one recipe run against all selected servers. Fleet-enrolled servers are treated as disposable: one that is offline for 30 minutes is archived automatically, and restored when it reports again, instead of raising an offline alert. For long-lived Forge servers, one-time tokens are usually the better choice.

What do you see afterwards?

Within a few minutes each server has a 0–100 health score and findings with the command that fixes them: CPU, memory, disk and load; systemd services such as nginx, PHP-FPM, MySQL, Redis and Supervisor; listening ports; security checks such as exposed database ports and failed SSH logins; kernel-log errors; laravel.log under /home/forge/<site>/storage/logs clustered into plain-English patterns; and nginx sites with SSL expiry. The agent is read-only by default and never reads .env files.

Last updated 2026-10-10.

FAQ

Related questions

Does it replace Forge?+

No. Forge keeps provisioning and deploying. Opservo watches the server underneath and explains problems; it changes nothing in Forge.

Can Opservo run fixes on a Forge server?+

Only if you opt the server in with OPSERVO_ENABLE_ACTIONS=true on the box, on a paid plan. Every command is confirmed and audited. Without that, the agent only reads.

How do you remove it?+

Run curl -sSL https://api.getopservo.com/install.sh | sudo env OPSERVO_UNINSTALL=1 bash on the server, then remove or archive it in the fleet table.