Server Guide

Monitor Your Services and Server with Uptime Kuma

Published on March 22, 2026

Monitoring is one of those things that feels optional until the first outage happens at the wrong time. If you run a website, an API, a game server, a mail service, or a small stack of Docker containers, you want to know quickly when something stops responding.

Uptime Kuma is a practical way to cover that gap without building a large monitoring system on day one. It is easy to self-host, simple to understand, and flexible enough to monitor different service types from a single dashboard.

In this post I will focus on the straightforward setup: create useful checks, add notifications through Discord and Pushover, and keep Prometheus and Grafana in mind for later if you want to extend your monitoring stack.

Why Uptime Kuma is a good starting point

It gives you a clean dashboard, enough check types for most real setups, and alerting that is simple to wire into the tools you already use.

HTTP and HTTPS endpoints

Track websites, APIs, login pages, and health endpoints with status code checks, keyword matching, and response time history.

TCP ports and game or app services

Watch raw TCP services such as SSH, mail, databases, custom applications, or anything that should answer on a port.

Ping for host reachability

Confirm that a machine is reachable even before a specific application check starts to fail.

Docker containers and internal services

Keep an eye on self-hosted apps that are not public but still critical for your backups, queues, or admin tools.

A small setup is enough to get real value

You do not need a complex rollout. One Uptime Kuma instance and a short list of high-value checks already improve your response time when something breaks.

services:
      uptime-kuma:
          image: louislam/uptime-kuma:2
          restart: unless-stopped
          container_name: uptime-kuma
          ports:
              - "3001:3001"
          volumes:
              - ./uptime-kuma:/app/data
  1. Deploy Uptime Kuma with Docker Compose on a small server or alongside your existing services.
  2. Add monitors one by one, starting with the services that would hurt the most if they failed silently.
  3. Use sensible intervals and retry settings so you do not create noise from short network spikes.
  4. Group monitors by project or environment so the dashboard stays readable as it grows.

Notifications are what make monitoring useful

A dashboard is helpful, but alerts are what turn monitoring into action. Uptime Kuma supports many notification targets, and Discord plus Pushover are an easy combination for most small teams or solo operators.

Discord

A Discord webhook is quick to set up and works well for team-wide alerts in a shared operations channel.

Pushover

Pushover is useful for direct phone notifications when you want alerts to reach you even away from your desk.

A good default is to send recovery messages as well, so you know whether the issue resolved itself or still needs manual work.

What to monitor first

Start with the parts that are closest to real impact. That usually means the public endpoint, the admin or API surface, and one lower-level reachability check for the host itself.

  • Monitor from the user perspective when possible. A homepage or API health check often tells you more than a container status alone.
  • Use tags or names that make incidents obvious at a glance, especially if you have staging and production side by side.
  • Send alerts to more than one place when uptime matters, for example Discord for the team and Pushover for direct escalation.
  • Review recurring alerts instead of only acknowledging them. Repeated noise usually means the check or the service needs adjustment.

Prometheus and Grafana are a natural next step

If you later want dashboards, longer retention, or combined infrastructure metrics, Uptime Kuma can feed that journey as well. Its monitoring data can be exported into Prometheus and then visualized in Grafana.

That is the point where a lightweight uptime view turns into a broader observability setup. If you want the Prometheus and Grafana part in more detail, I already covered that stack in a separate post.

Read the Prometheus and Grafana monitoring post

Keep it simple and make it actionable

The best monitoring setup is usually the one you actually maintain. Uptime Kuma is a strong fit if you want quick visibility into websites, services, and servers without starting with a heavy stack.

Begin with a handful of monitors, wire in Discord and Pushover, and then expand into Prometheus and Grafana only when you genuinely need deeper metrics and dashboards.