NGINXwatch

Self-hosted edition

Installing NGINXwatch on your server

The self-hosted edition runs entirely on your own infrastructure: the NGINXwatch server (dashboard, alerting, license) on one machine, and a small agent on each nginx server. Both come as RPM packages that carry everything they need — no Node.js, Java or other runtime to install.

Check System requirements first. In short: RHEL, Oracle Linux, Rocky or AlmaLinux 8 or 9 on x86_64, 1 GB free memory, and outbound HTTPS to the license server.

1. Install the server package

sudo dnf install ./nginx-monitor-*.x86_64.rpm

The package creates a nginx-monitor system account, starts the nginx-monitor service, enables it at boot, and prints the address to open and a setup code:

  NGINXwatch is installed and running.
  Finish setup in your browser:   http://your-server:3030/nginxmon/setup
  Setup code:                     7Q4K-M2XD

Keep the setup code — the browser asks for it once, so only the person who installed the server can finish the setup. If it scrolled away:

sudo journalctl -u nginx-monitor | grep "Setup code"

2. Open the port

The server listens on TCP 3030. Open it for your users' browsers and for the agents:

sudo firewall-cmd --add-port=3030/tcp --permanent && sudo firewall-cmd --reload

For production, put the server behind your existing reverse proxy (nginx, Apache httpd or a load balancer) with HTTPS, and open only the proxy's port. Forward X-Forwarded-Proto so sign-in cookies are marked secure.

With SELinux enforcing (the default — leave it on), allow the proxy to connect to NGINXwatch once; the installer reminds you if it is needed:

sudo setsebool -P httpd_can_network_connect 1

Nothing else about NGINXwatch needs SELinux changes — see System requirements.

3. Finish setup in the browser

Open http://your-server:3030/nginxmon/setup and continue with First-time setup and your license.

Where things are

Program /usr/bin/nginx-monitor (one self-contained file)
Settings /etc/nginx-monitor/nginx-monitor.env (port, base path, log level)
Data /var/lib/nginx-monitor — users, license, servers, history
Logs journalctl -u nginx-monitor
Service `systemctl status