How to install and configure Uptime Kuma with Docker

Uptime Kuma is a self-hosted monitoring tool that you can install natively or in a Docker container. It allows monitoring of various services and protocols such as HTTP, HTTPS, DNS, PING, TCP, SQL, MYSQL and more.
Uptime Kuma can notify admins of service outages using various methods such as Email, Telegram, Discord, Microsoft Teams and more.
I will demonstrate building and configuring Uptime Kuma in a Docker container since it’s lightweight and fast.

Step 1: Run a terminal session from the Docker host and run the Uptime Kuma container:

docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
uptime-kuma-1.jpg

To verify the container is running and listening on port 3001, use this command:

docker ps

Time to test the GUI. I navigate to the Docker host IP and port 3001 in the browser. If browsing from the same device where docker is installed, you can use localhost or 127.0.0.1:

http://your-ip:3001
http://127.0.0.1:3001
http://localhost:3001

Start by creating admin account

uptime-kuma-2.jpg

After you create the admin account, you will be welcomed with the fancy Uptime Kuma UI with no initial monitors

uptime-kuma-3.jpg

Start adding your preferred monitors, the following is a list of supported monitors in Uptime Kuma

uptime-kuma-4.jpg

I will create a simple HTTPS monitor to check the status of elasticourse.com. This monitor will send a GET request to the defined URL at the set threshold.
Make sure you don’t overwhelm your server with the default 1 minute interval option, I changed the interval to 600 seconds (10 minutes).
I can also choose HTTPS-Keyword option to make sure certain text from the web page is detected, instead of judging uptime based on status codes 200-299.

uptime-kuma-5.jpg

Now it’s time to setup the notification alerts. The following is a list of some popular notification and social media platforms you can integrate with Uptime Kuma:

uptime-kuma-6.jpg

I will setup my monitor with email alerts. This requires SMTP server hostname, port, protocol, SMTP username, SMTP password, from and to email:

uptime-kuma-7.jpg

It’s a good idea to click test before saving to make sure Uptime Kuma can send the notification to the target email(s):

uptime-kuma-8.jpg

After that I saved my monitor and it started pulling data immediately:

uptime-kuma-9.jpg

After a few monitoring checks you will have better idea of website response time and some visualization:

uptime-kuma-10.jpg

Note: to monitor sites with self-signed or built-in certificates, enable Ignore TLS/SSL error for HTTPS websites in the monitor settings to bypass certificate check.