FREE Monitoring Tool for Home and Office Networks
IT PROJECTS
Want a free network monitoring tool that is easy to setup and actually gives you quality realtime updates? Enter Uptime Kuma. Uptime Kuma is a popular open-source monitoring tool designed to track the availability and performance of websites, servers, and other network services.
Uptime Kuma has gained significant popularity due to its simplicity, modern interface, and comprehensive feature set, making it an excellent choice for both small-scale personal use and larger organizational deployments. Here are the capabilities Uptime Kuma possesses:
Monitoring Capabilities
HTTP/HTTPS monitoring: Checks website availability with support for custom headers, authentication, and content verification
Ping monitoring: Traditional ICMP or TCP ping to check host availability
Port monitoring: Verifies if specific network ports are open and responsive
DNS monitoring: Checks if DNS servers are resolving correctly
Push monitoring: Accepts heartbeat signals from applications
Docker monitoring: Checks container status
MongoDB, PostgreSQL, MySQL: Database connection monitoring
MQTT, Redis, and more: Support for various application protocols
You can use this tool for your home lab or small office LAN to view device uptime, check the status of services, and set up alerts that will notify you if any device is down. We don't need a dedicated piece of equipment either, this tool can be installed on a virtual machine and here is how.
Installing Uptime Kuma on an ESXi Host as a Virtual Machine
This guide provides step-by-step instructions for installing Uptime Kuma on a virtual machine running on an ESXi host.
Prerequisites
VMware ESXi 6.7 or later
vSphere Client or ESXi Web Client access
Internet access for the VM
ISO image of a Linux distribution (Ubuntu Server 22.04 LTS recommended)
At least 1 vCPU, 1GB RAM, and 10GB storage for the VM
Step 1: Create a Virtual Machine in ESXi
Log in to your ESXi host using the vSphere Client or ESXi Web Client
Right-click on your ESXi host and select Create/Register VM
Select Create a new virtual machine and click Next
Enter a name for your VM (e.g., "Uptime-Kuma") and click Next
Select a storage location for the VM and click Next
Configure the virtual machine:
Guest OS Family: Linux
Guest OS Version: Ubuntu Linux (64-bit)
Click Next
Customize the hardware:
CPU: 1 vCPU (minimum)
Memory: 1GB (minimum)
Hard disk: 10GB
Network adapter: Connect to your network
CD/DVD Drive: Select the Ubuntu Server ISO
Make sure the CD/DVD drive is connected and set to connect at power on
Click Next and then Finish to create the VM
Step 2: Install Ubuntu Server
Power on the VM
Follow the Ubuntu Server installation prompts:
Select language, keyboard layout, and network settings
Configure a static IP address (recommended)
Set up hostname, create a user account, and set password
Install OpenSSH server when prompted
Complete the installation and reboot
Step 3: Update Ubuntu and Install Prerequisites
Connect to your VM using SSH or the console
Update the system packages:
sudo apt updatesudo apt upgrade -y
Install required dependencies:
sudo apt install -y curl git npm nodejs
Step 4: Install Uptime Kuma
Option 1: Direct Installation
Install Uptime Kuma using npm:
sudo npm install -g pm2git clone https://github.com/louislam/uptime-kuma.gitcd uptime-kumanpm run setup
Start Uptime Kuma using PM2 (process manager):
pm2 start server/server.js --name uptime-kumapm2 savepm2 startup
Option 2: Docker Installation (Recommended)
Install Docker:
sudo apt install -y docker.iosudo systemctl enable --now docker
Run Uptime Kuma as a Docker container:
sudo docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
Step 5: Configure Firewall
If using UFW (Ubuntu's firewall), allow port 3001:
sudo ufw allow 3001/tcpsudo ufw reload
Step 6: Access Uptime Kuma
Open a web browser and navigate to http://<your-vm-ip>:3001
You should see the Uptime Kuma setup page
Create an admin account when prompted
Step 7: Configure Uptime Kuma
Log in with your admin account
Add your first monitor:
Click "Add New Monitor"
Select the monitor type (HTTP, Ping, etc.)
Enter the required details
Click "Save"
Configure notification methods as needed
Step 8: Securing Uptime Kuma (Optional)
Using Reverse Proxy (Nginx)
Install Nginx:
sudo apt install -y nginx
Create a new Nginx config file:
sudo nano /etc/nginx/sites-available/uptime-kuma
Add the following configuration:
server { listen 80; server_name monitor.yourdomain.com; location / { proxy_pass http://localhost:3001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }}
Enable the site and restart Nginx:
sudo ln -s /etc/nginx/sites-available/uptime-kuma /etc/nginx/sites-enabled/sudo nginx -tsudo systemctl restart nginx
Adding SSL with Let's Encrypt
Install Certbot:
sudo apt install -y certbot python3-certbot-nginx
Obtain and configure SSL certificate:
sudo certbot --nginx -d monitor.yourdomain.com
Step 9: Maintenance and Updates
For Direct Installation
To update Uptime Kuma:
cd uptime-kumagit pullnpm installnpm run buildpm2 restart uptime-kuma
For Docker Installation
To update Uptime Kuma:
sudo docker pull louislam/uptime-kuma:1sudo docker stop uptime-kumasudo docker rm uptime-kumasudo docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
Troubleshooting
If you can't access the web interface, check that:
The VM is running
The firewall allows traffic on port 3001
The Docker container is running (sudo docker ps)
The VM has network connectivity
If Uptime Kuma fails to start:
Check logs with pm2 logs uptime-kuma or sudo docker logs uptime-kuma
Ensure all dependencies are installed
Verify disk space is sufficient



