Don't you want to know when your websites go down? And you don't have to pay hundreds of dollars a year for it. Introducing Uptime Kuma: a completely free, open-source uptime monitoring tool that you can host on your own server. In this article, I'll walk you through installing, configuring, and using Uptime Kuma step by step.
Why Uptime Kuma?
There are many paid alternatives like Pingdom and UptimeRobot. But why choose them over Uptime Kuma? Because you have full control. Your data resides on your own VDS or home server, not on third-party servers. Plus, it's completely free. No 50-site monitoring limit, no notification channel restrictions. You can send notifications to Discord, Telegram, email, Slack—anywhere you can think of.
Advantages Over Alternatives
- Free and unlimited: You decide how many sites to monitor.
- Self-hosted: Your data belongs to you.
- Customizable: Monitoring intervals, timeout durations, HTTP methods.
- Beautiful interface: A modern and user-friendly dashboard.
Installation Steps
I'll cover two methods: Docker (recommended) and manual installation. Docker is ideal for quickly spinning up a current version like 1.23.0.
Docker Installation
First, ensure Docker and Docker Compose are installed on your server. Then run the following command:
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
This command runs Uptime Kuma on port 3001 and stores data in a persistent volume. Open your browser to http://your-server-ip:3001. You'll see the admin account creation screen. Enter a simple username and password – choose a strong password for security.
Manual Installation
If you prefer not to use Docker, you can install via Node.js. Node.js 18+ is required. Clone the repository:
git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
npm run setup
After setup, start with npm start. It listens on port 3001 by default. For a more permanent solution, use PM2.
Configuration and Usage
After first login, you'll want to add a monitor. Click the "Add Monitor" button in the top left. Enter the site URL, set the monitoring interval (e.g., 60 seconds). Besides "HTTP", there are options like "TCP", "Ping", "DNS". I often create monitors that also check SSL certificate expiration – I get instant alerts.
Notification setup is very simple. Go to Settings > Notifications and add a new notification channel. For example, for a Telegram bot, just enter the bot token and chat ID. You can test it immediately with the test button. My favorite feature of Uptime Kuma is the ability to create a status page. You can publish a public page to show your customers that your site is operational.
Conclusion
Uptime Kuma is flexible and powerful enough to meet the needs of everyone from small businesses to large projects. It takes less than 5 minutes to install and is completely free. With the confidence of running it on your own server, you can rest assured your sites are monitored 24/7. If you haven't tried it yet, start a Docker container now and see the difference.