anjanesh No, you cannot run this using a LAMP stack alone.
EasyMonitor is a complex app with a sophisticated architecture and is intended to run in a Docker container. We do not offer Docker, but you can run it on Opalstack using Podman on our AlmaLinux 9 servers. (Podman is not available on the CentOS 7 machines.)
You can try the following setup instructions:
A. Opalstack dashboard
Do this first — you need the proxy port before editing any config files.
- OS Users → create a user (e.g.
monitor)
- Applications → cerate a Nginx Proxy Port app → name it
easymonitor → assign to that OS user
- Open the new app and write down the port number (e.g.
22807)
- Domains → add your domain/subdomain (e.g.
monitor.example.com)
- Sites → Create a site record and route
/ to the easymonitor app → enable Let’s Encrypt + HTTPS redirect
B. SSH — download and configure
SSH to your Opalstack server and run these commands:
cd ~
git clone https://github.com/easymonitordev/easymonitor.git
cd easymonitor
cp .env.example .env
1. Edit docker-compose.yml
Caddy — bind to your Proxy Port (for example, 22807):
Change this:
ports:
- "80:80"
to
ports:
- "22807:80"
IMPORTANT: Remove or comment out the other default ports - 443:443, and 5432:5432 if present.
Probe — add under container_name: probe:
cap_add:
- NET_RAW
(Required for ICMP/ping monitors.)
2. Replace everything in docker/caddy/Caddyfile with this:
{
auto_https off
}
:80 {
reverse_proxy nginx:8080 {
header_up X-Forwarded-Proto https
header_up X-Forwarded-Host {http.request.host}
header_up X-Forwarded-Port 443
}
}
3. Edit .env
Replace monitor.example.com with your hostname:
APP_ENV=production
APP_DEBUG=false
APP_URL=https://monitor.example.com
ASSET_URL=https://monitor.example.com
REDIS_PASSWORD=
Set REDIS_PASSWORD to blank — not null.
C. Start EasyMonitor
cd ~/easymonitor
# 1. Start everything except the probe
podman-compose up -d --build --scale probe=0
podman ps # all services should show "Up"
# 2. Run setup (migrations, assets, probe token) — takes a few minutes
podman-compose exec -T php bash /var/www/html/docker/scripts/setup.sh
# 3. Start the probe
podman-compose up -d probe
# 4. Clear config cache
podman-compose exec -T php php artisan config:clear
D. Test it
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:22807/ # → 200
curl -s -o /dev/null -w "%{http_code}\n" https://monitor.example.com/ # → 200
Open the EasyMonitor URL in a browser and Sign up — the first account is admin.
To test ICMP: create a ping monitor, or run:
podman-compose exec -T probe ping -c 1 8.8.8.8
Restart later
cd ~/easymonitor
podman-compose up -d
podman ps # confirm caddy is "Up"