CHECKING STATUS
I AM LISTENING TO
|

Day 23: Uptime Kuma – A Self-Hosted Monitoring Solution – 7 Days of Docker

24. March 2025
.SHARE

Table of Contents

In today’s digital landscape, ensuring the reliability and availability of your online services is crucial. Whether you’re running a personal blog, a business website, or managing a complex web application, knowing when your services are down can save you from potential revenue loss and user frustration. This is where Uptime Kuma comes in – a powerful, user-friendly, and completely free monitoring solution that you can host on your own infrastructure.

What is Uptime Kuma?

Uptime Kuma is an open-source, self-hosted monitoring tool with a clean and intuitive user interface. Developed by Louis Lam, this powerful tool allows you to monitor various services, including websites, servers, and applications in real-time.

Key Features:

  • User-friendly dashboard: Easy-to-use interface with real-time statistics
  • Multiple monitoring methods: HTTP(S), TCP, Ping, DNS, Docker containers, and more
  • Extensive notification options: Email, Slack, Discord, Telegram, Webhook, and many others
  • Status page: Public status page for your services
  • SSL/TLS certificate monitoring: Get alerts before your certificates expire
  • Authentication: Secure access with 2FA support
  • Data visualization: Response time graphs with historical data
  • Docker support: Easy deployment using containers
  • Open-source: Completely free to use and modify

Prerequisites

Before installing Uptime Kuma, ensure you have:

  • A server or computer with Docker installed
  • Basic knowledge of Docker and command-line interface
  • Internet access for the monitoring server

Installation with Docker

Uptime Kuma can be easily deployed using Docker, which simplifies the installation process. Here’s how to get started:

Option 1: Using Docker Run Command

The simplest way to deploy Uptime Kuma is using the Docker run command:

This command will:

  • Pull the latest stable Uptime Kuma image (version 1)
  • Create a Docker volume for persistent data storage
  • Map port 3001 on your host to port 3001 in the container
  • Set the container to restart automatically unless explicitly stopped
  • Name the container “uptime-kuma”

Once the container is running, you can access Uptime Kuma by navigating to http://your-server-ip:3001 in your web browser.

Option 2: Using Docker Compose (Recommended)

For better management and easier updates, using Docker Compose is recommended. First, create a directory for your Uptime Kuma installation:

Create a docker-compose.yml file with the following content:

Start the container using:

Initial Configuration

Once Uptime Kuma is up and running, follow these steps to set it up:

  1. Open your browser and navigate to http://your-server-ip:3001
  2. You’ll be prompted to create an admin account on first launch
  3. Enter your desired username and password
  4. Click “Create” to access the Uptime Kuma dashboard

Setting Up Monitors

Now that you have Uptime Kuma installed, it’s time to set up monitors for your services:

Website Monitoring (HTTP/HTTPS)

  1. Click “Add New Monitor” on the dashboard
  2. Select “HTTP(s)” as the Monitor Type
  3. Enter a friendly name for your monitor (e.g., “My Website”)
  4. Enter the URL of the website you want to monitor
  5. Set the heartbeat interval (how often to check the site)
  6. Configure notification settings if desired
  7. Click “Save” to start monitoring

Server Monitoring (Ping)

  1. Click “Add New Monitor”
  2. Select “Ping” as the Monitor Type
  3. Enter a friendly name
  4. Enter the IP address or hostname of your server
  5. Set the interval and other options
  6. Configure notifications
  7. Click “Save”

Docker Container Monitoring

To monitor Docker containers:

  1. First, add the Docker socket to your Uptime Kuma container by modifying your docker-compose.yml:
  1. Restart your container: docker compose down && docker compose up -d
  2. In the web interface, go to “Settings” > “Docker Hosts” > “Setup Docker Host”
  3. Give it a friendly name, choose “Socket” as the connection type, and enter /var/run/docker.sock as the Docker daemon
  4. Test the connection and save
  5. Now you can add a new Docker container monitor from the dashboard

Setting Up Notifications

Uptime Kuma supports various notification methods to alert you when your services go down:

  1. Go to “Settings” > “Notifications” > “Setup Notification”
  2. Choose your preferred notification method (e.g., Email, Discord, Telegram)
  3. Configure the required settings for your chosen method
  4. Test the notification to ensure it works
  5. Save your configuration

You can add multiple notification methods and assign them to different monitors as needed.

Creating a Status Page

Uptime Kuma allows you to create a public status page to inform your users about your services’ status:

  1. Go to “Status Page” in the sidebar
  2. Click “Add New Status Page”
  3. Configure your status page settings
  4. Add the monitors you want to display on the status page
  5. Save your configuration

Your status page will be available at http://your-server-ip:3001/status/your-page-slug.

Thoughts

Uptime Kuma offers a powerful yet simple solution for monitoring your services, all while keeping your data under your control. By self-hosting this tool, you eliminate the need for expensive subscription-based monitoring services and gain full control over your monitoring infrastructure.

Whether you’re a small website owner, a system administrator, or a DevOps engineer, Uptime Kuma provides the tools you need to ensure your services remain reliable and available.

Resources

Happy monitoring!

Let’s Talk!

Looking for a reliable partner to bring your project to the next level? Whether it’s development, design, security, or ongoing support—I’d love to chat and see how I can help.

Get in touch,
and let’s create something amazing together!

RELATED POSTS

FrankenWP is a specialized WordPress Docker image built on FrankenPHP, which is a PHP application server built on top of the Caddy web server. This combination offers several advantages: This guide will walk you through setting up FrankenWP on your own server using Docker Compose, including all necessary configuration options and client connection details. Also […]

Remember when people used to joke that PHP was dying? Well, in 2025, PHP is not only alive and kicking but thriving thanks to its Frankenstein-inspired application server that’s been taking the web development world by storm! What Is This Monster? FrankenPHP is the brainchild of Kévin Dunglas (the same genius behind API Platform) who […]

Hey there! Ever wondered how websites know when you’re actually looking at them, or if you’ve wandered off to make coffee? That’s presence detection in action – and it’s super useful for creating responsive, user-friendly web apps. In this guide, I’ll walk you through everything you need to know about detecting user presence with JavaScript […]

Alexander

I am a full-stack developer. My expertise include:

  • Server, Network and Hosting Environments
  • Data Modeling / Import / Export
  • Business Logic
  • API Layer / Action layer / MVC
  • User Interfaces
  • User Experience
  • Understand what the customer and the business needs


I have a deep passion for programming, design, and server architecture—each of these fuels my creativity, and I wouldn’t feel complete without them.

With a broad range of interests, I’m always exploring new technologies and expanding my knowledge wherever needed. The tech world evolves rapidly, and I love staying ahead by embracing the latest innovations.

Beyond technology, I value peace and surround myself with like-minded individuals.

I firmly believe in the principle: Help others, and help will find its way back to you when you need it.