The uptime of online services, websites, or applications is critical.

Whether it is being used for mission-critical business or just individual requirements, downtime for any application affects its users in various ways. Hence, it is vital to monitor your website or application uptime.

While several online services monitor uptimes, you cannot self-host them. Of course, if you do not have any plans to self-host, and want a hassle-free way to monitor uptime, most of the available options should help.

There aren't many impressive alternatives when it comes to self-hosted options.

Luckily, Uptime Kuma, an open-source self-hosted monitoring tool, can be an exciting choice.

Here, I discuss the features you get with Uptime Kuma and detailed step-by-step instructions to help you set it up and explore it.

Uptime Kuma: A Free Open-Source Self-Hosted Monitoring Tool

The developer team behind Uptime Kuma mentions that this project aimed to offer a self-hosted alternative to “Uptime Robot.”

Uptime Robot is one of the best uptime monitoring services available. However, it cannot be self-hosted and offers limited monitoring with its free plan.

So, Uptime Kuma can be the perfect replacement as a self-hosted monitoring tool. Let us take a look at what it offers.

Benefits of Using a Self-Hosted Monitoring Tool

With a self-hosted uptime solution, you get a few bonuses. Some of them are:

  • Complete control of your data.
  • Customize the way you want to get notified.
  • More features for potentially less investment.
  • Helps you gain some skills while you learn managing it yourself.
  • Monitor internal services without exposing them to the Internet.

While self-hosted platforms need you to have some technical knowledge, it is getting easier to manage with time.

Even if it is your first time, you can easily follow the instructions in this article to install it and deploy an instance in a few minutes.

Features of Uptime Kuma

Uptime Kuma lets you monitor services over various protocols, including HTTP/S, TCP, DNS, etc. Some key highlights of the tool include:

  • Tweak the appearance to use Dark/Light or Auto to respect device preferences.
  • Ability to set a timezone to accurately monitor uptime.
  • Available directly through Linode's Marketplace.
  • Notification support for numerous platforms like Telegram, Discord, Signal, Rocket.Chat, Slack, Microsoft Teams, Google Chat, Matrix, and more.
  • Ability to specify the number of days to keep the monitoring history.
  • Option to optimize/shrink the history database.
  • Two-Factor Authentication to protect the monitoring account.
  • Ability to Export/Import notification and monitoring data.
  • A separate Status page.
  • Ping chart.
  • Multi-language support.
  • Steam game server support.
  • Easily apply notifications to new/all monitors, if required.

How to Configure Uptime Kuma to Monitor Website and Application Infrastructure?

I will use Linode as the hosting platform to create an Uptime Kuma instance for this article.

It is incredibly easy to get started with Linode as your cloud hosting solution. You get Uptime Kuma available in its marketplace.

So, you do not need to set it up manually. All you need to do is set the configuration values as per your requirements, and you will have an Uptime Kuma instance up and running in no time.

Let me show you how it is done.

Step #1. Head to Linode's marketplace when creating a Linode instance.

Step #2. You should find “Uptime Kuma” among the listed applications as you scroll to the bottom of the list. Once you find it, click on it.

Step #3. When you select it, you will get to access the options below that you need to configure to make it work:

It is best to fill up the fields with values that you can memorize or have a copy somewhere, especially the password for the limited root user.

You can use a password manager to store it or note it down anywhere.

For the email address, if you have a specific domain where you want to set up Uptime Kuma, you should use an email address with the same domain name.

You can choose to use any other email, but you should stick to the domain's email address for your SSL certificate installation. If you haven't configured the domain's email, you might want to check out some of the best email hosting services available.

Step #4. As per the options available, you can ignore the domain values if you want to test things out from within Linode.

However, if you want to set up the Uptime Kuma instance on your domain, you should create the Linode API token. The token can be helpful for a variety of things, like using another cloud provider to create servers/manage them, etc.

It is essential if you want to add a domain. For SSH root access, you may not want to disable it if you want the ability to connect to your server easily remotely, but you can choose to disable it if you do not need it.

Step #5. Next, you need to select an image (for your server). By default, it should be Ubuntu's latest LTS version, and unfortunately, you cannot change it when setting up through the marketplace. If you decide to set up your server from scratch, you can select Debian 11, as it also supports Uptime Kuma officially.

Step #6. For selecting the location, the nearest the better regarding quick response/access time from your location.

Step #7. Finally, you must select your preferred Linode Plan to ensure smooth operation with Uptime Kuma.

While you can go with the cheapest, we recommend you to have better resources if you want to monitor numerous things with critical importance.

Step #8. To complete the setup, you will have to set a root password for admin access to your server. You can also set up an SSH key to access it via SSH.

You can also set up a VLAN, but it is tailored for a particular group of users. So, you might want to check out if you require the use of VLAN.

Step #9. Optionally, you can opt for automatic backups for an additional fee. Of course, you can manually export that data after installing Uptime Kuma, but automated backups give you the convenience. So, if the monitoring insights are essential to you, backups are a must.

Now, you can create the Linode instance with Uptime Kuma installed.

How to Access Uptime Kuma After Installation?

First-time access is easy if you already have a domain configured. You have to type in the domain name (HTTP//:domain.com), and the setup screen for Uptime Kuma should appear when you attempt to access it.

Here's what it should look like:

Once you create the user, you will be redirected to the Dashboard, where you can start creating monitors for your websites or applications.

It could also look entirely black (with the dark mode theme) per your system's preference.

In case you haven't configured any domain associated with the Linode instance, you can access it using your Linode's server IP in the following format:

https://LINODESERVERIP.ip.linodeusercontent.com/

For example, my test server can be accessed through:

https://170-187-200-29.ip.linodeusercontent.com/add

Here, my Linode's server IP is – 170.187.200.29

Note that you cannot access anything using the URL above (I've deleted the instance after testing). Moreover, you may notice a malware warning when accessing it through your instance's address because it looks suspicious to security programs and browsers. You can ignore the warning and proceed to set up Uptime Kuma.

Ultimately, after setting up the user account, you can get started with creating monitors for your website or app.

How to Add Monitors to Uptime Kuma?

You will have to click on “Add New Monitor” to start adding monitors to the Dashboard.

The options for monitor should appear on the same page as shown below.

You will have to select the type of monitor whether you want to monitor a website, DNS, game server, TCP port, and others.

You can set up notifications if you need them. While loads of options are available for it, here's how it looks when setting up a Telegram channel notification using a bot:

For this test, I went with the essential HTTP monitoring to check the uptime of Geekflare. So, here's what I chose for the options:

  • Monitoring type: HTTP
  • URL of the website
  • Interval of 30 seconds (Custom)

By default, the interval is set to 60 seconds, but you can tweak it to monitor more or less. You also get advanced options for HTTP authentication and access HTTP(S) pages using GET, POST, HEAD, and other methods.

You can also specify the monitor to ignore TLS/SSL errors, if any.

The maximum redirects are set to 10. However, it is best to keep it 0 if you want to avoid following any redirects when you want to monitor a specific page or URL.

When everything's set along with the notifications you need, save the configuration to add the monitor. And, after a while of monitoring, you should see something like this:

The data includes the response time (latest), the average response time, uptime, and information on the SSL certificate.

There's also a “Status” page in the menu, which gives you an overview of all the monitors and lets you add any notification/messages to any recent incident.

The Status page is helpful for any of your users/customers who want to keep up with the latest happenings in your back-end infrastructure. All you have to do is share the link of the status page; it does not need any user authentication, the page is accessible to all public.

It is usually accessible with HTTP://domain.com/status.

Uptime Kuma is a Solid Self-Hosted Option

In addition to the Linode, you can also install it using Docker or a non-Docker setup manually. You will get all the necessary information for additional installation instructions (like using reverse proxy) on the project's GitHub page.

So, you get a variety of installation possibilities with all the essential functionalities of a monitoring tool. What more could you ask for?

It should be an ideal monitoring tool for most use-cases. Try it out if you haven't!