---
title: "Deploy Uptime Kuma — Self-Hosted UptimeRobot Alternative"
description: "Unlimited monitors, 20s intervals, free status pages. No commercial-use ban"
category: "Observability"
url: https://railway.com/deploy/uptime-kuma-monitoring
---

# Deploy Uptime Kuma — Self-Hosted UptimeRobot Alternative

Unlimited monitors, 20s intervals, free status pages. No commercial-use ban

**[Deploy Uptime Kuma — Self-Hosted UptimeRobot Alternative on Railway](https://railway.com/template/uptime-kuma-monitoring)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/uptime-kuma-monitoring/manifest.json

- **Creator:** SilverBanana
- **Category:** Observability
- **Total deploys:** 3

## Template content

### Uptime Kuma https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/uptime-kuma.svg

- **Image:** louislam/uptime-kuma

## Documentation

# Deploy and Host Uptime Kuma on Railway

![Uptime Kuma monitoring dashboard](https://user-images.githubusercontent.com/1336778/212262296-e6205815-ad62-488c-83ec-a5b0d0689f7c.jpg)

Uptime Kuma is the most popular open-source uptime monitor — **85k+ GitHub stars** — with
unlimited monitors, 20-second check intervals, beautiful status pages, and 90+ notification
channels (Telegram, Discord, Slack, PagerDuty, email, webhooks). The 2.x line adds MariaDB
support, Globalping worldwide probes, and domain expiry monitoring alongside HTTP(s), TCP, DNS,
ping, Docker, and game-server checks.

**UptimeRobot's free tier is now restricted to personal, non-commercial use** — and its paid
plans start at $7/month for just 10 monitors at 1-minute intervals. Uptime Kuma on Railway gives
you unlimited monitors at 20-second intervals for ~$2–5/month flat, with every check and status
page owned by you.

---

## What This Template Deploys

| Service | Purpose |
|---|---|
| **Uptime Kuma 2.x** | The complete monitoring stack — checks, alerting, status pages, and dashboard on port `3001`, using the official `louislam/uptime-kuma` image |
| **Persistent Volume** | Mounted at `/app/data` — monitors, history, notification config, and the embedded SQLite database survive every redeploy |

Fully self-contained: embedded SQLite, no PostgreSQL, no Redis, no external dependencies.
512 MB RAM comfortably handles 50–100 monitors at 60-second intervals.

---

## About Hosting Uptime Kuma

The one rule of uptime monitoring: the monitor must not go down with the thing it monitors.
Running Uptime Kuma on the same VPS as your apps creates exactly that blind spot. Railway runs
it as an independent managed container with automatic HTTPS and a persistent volume — separate
from the infrastructure it watches, with zero server maintenance.

The decisive advantage over SaaS monitors: UptimeRobot's external probes cannot reach private
IPs, localhost, or internal services. Uptime Kuma deployed on Railway can monitor anything your
Railway project can reach — including other services over Railway's private network.

Typical cost: **~$2–5/month** on Railway's Hobby plan. UptimeRobot Solo is $7/month for 10
monitors at 1-minute intervals, and its free tier now prohibits commercial use. Commercial
status-page tools charge $20–100/month for what Uptime Kuma includes free.

---

## Deploy in Under 2 Minutes

1. Click **Deploy on Railway** — Uptime Kuma builds automatically (~1–2 minutes)
2. The persistent volume at `/app/data` is pre-configured — nothing to set
3. Open your Railway-assigned URL and create your admin account
4. Add your first monitor — HTTP, TCP, DNS, ping, keyword, or Docker
5. Connect notifications: Telegram, Discord, Slack, email, or any of 90+ channels

No database setup. No environment variables required. No SSL configuration.

---

## Common Use Cases

- **Self-hosted alternative to UptimeRobot** — unlimited monitors at 20-second intervals with
  no per-monitor pricing; UptimeRobot's free tier is now non-commercial-only and paid starts
  at $7/month for 10 monitors
- **Monitor internal Railway services** — check private IPs, `.railway.internal` hostnames,
  and localhost endpoints that external SaaS probes can never reach
- **Free public status page** — branded status pages with custom domains at no cost, versus
  $20–100/month for commercial status-page tools
- **Startup and agency monitoring without commercial-use restrictions** — UptimeRobot's free
  tier prohibits commercial use; Uptime Kuma is MIT-licensed with no usage restrictions
- **SSL and domain expiry alerts** — certificate expiry warnings plus v2.1's domain expiry
  monitoring, so renewals never blindside you
- **Prometheus-compatible observability** — Uptime Kuma exposes a `/metrics` endpoint, so you
  can scrape uptime data into an existing Prometheus + Grafana stack

---

## Configuration

| Variable | Required | Description |
|---|---|---|
| — | — | No environment variables are required. All configuration happens in the web UI after deploy |
| `UPTIME_KUMA_PORT` | Optional | Override the default port `3001` if needed |

> All monitors, notification channels, and status pages are configured through the dashboard
> and stored on the `/app/data` volume. NFS-style network file systems are not supported —
> Railway's native volumes are the correct storage type.

---

## Uptime Kuma vs. Alternatives

| | Uptime Kuma (Railway) | UptimeRobot | Pingdom | Better Stack |
|---|---|---|---|---|
| **Monthly cost** | ~$2–5 flat | Free (non-commercial) / $7+ | From $15/mo | From $29/mo |
| **Monitors** | ✅ Unlimited | ❌ 50 free / 10 on Solo | ❌ Tiered | ❌ Tiered |
| **Check interval** | ✅ 20 seconds | ❌ 5 min free / 1 min paid | ❌ 1 min | ✅ 30 sec |
| **Commercial use on free** | ✅ MIT, unrestricted | ❌ Prohibited | N/A | ⚠️ Limited |
| **Monitors internal services** | ✅ Private IPs, localhost | ❌ External only | ❌ External only | ❌ External only |
| **Status pages** | ✅ Unlimited, free | ⚠️ Capped, paid branding | ⚠️ Add-on | ✅ Included |
| **Notification channels** | ✅ 90+ | ⚠️ Fewer, SMS credits | ⚠️ Limited | ✅ Good |
| **Self-hostable** | ✅ Yes | ❌ No | ❌ No | ❌ No |

---

## Dependencies for Uptime Kuma Hosting

- Railway account — Hobby plan (~$2–5/month) for the single-service deployment
- Nothing else — SQLite is embedded, notifications use your existing accounts (free)

### Deployment Dependencies

- [Uptime Kuma GitHub Repository](https://github.com/louislam/uptime-kuma) — source and releases
- [Uptime Kuma Notification List](https://github.com/louislam/uptime-kuma) — all 90+ channels
- [Uptime Kuma Wiki](https://github.com/louislam/uptime-kuma/wiki) — configuration reference
- [Railway Volumes Documentation](https://docs.railway.com/volumes) — persistent storage

### Implementation Details

This template deploys the official `louislam/uptime-kuma:2` image with a Railway persistent
volume at `/app/data`. The 2.x line adds MariaDB support for large installations, Globalping
integration for worldwide probe locations, and domain expiry monitoring — while the embedded
SQLite remains performant well past 500 monitors for typical deployments.

Uptime Kuma runs everything in one container: checks, the Vue dashboard, alerting, and status
pages. The `/metrics` endpoint exposes Prometheus-compatible uptime data on the same port.
Because it deploys inside your Railway project, it can monitor sibling services over private
networking — the one capability no external SaaS monitor can replicate.

---

## Frequently Asked Questions

**Why switch from UptimeRobot to Uptime Kuma?**
UptimeRobot's free tier is now restricted to personal, non-commercial use, checks at 5-minute
intervals, and paid plans start at $7/month for 10 monitors. Uptime Kuma gives unlimited
monitors at 20-second intervals with no usage restrictions, for flat Railway compute of
~$2–5/month. Migration takes under an hour: recreate monitors, point notifications at the
same channels, switch dashboards.

**Can Uptime Kuma monitor internal services that aren't publicly accessible?**
Yes — this is its key advantage over every SaaS monitor. Deployed on Railway, it can reach
private IPs, localhost, internal APIs, and `.railway.internal` addresses. External probes
like UptimeRobot's can only see public endpoints.

**Do I lose monitoring history if Railway redeploys?**
No. All monitors, history, and configuration live on the persistent volume at `/app/data`.
Redeploys and version updates don't affect your data. Checks pause during a redeploy and
resume automatically; history is preserved.

**How many monitors can one instance handle?**
512 MB RAM handles 50–100 monitors at 60-second intervals comfortably. Scale to 1 GB for 200+
monitors or aggressive 20-second intervals. SQLite stays performant well beyond 500 monitors;
v2.x adds MariaDB support for very large installations.

**Is Uptime Kuma really free for commercial use?**
Yes — MIT licensed, no usage limits, no licensing fees, actively maintained. Unlike
UptimeRobot's free tier, there is no non-commercial restriction. You pay only Railway compute.

**What happens if Railway itself has an outage?**
Checks pause and resume when service restores; historical data on the volume is preserved.
For belt-and-braces redundancy, some teams pair a self-hosted Kuma with a free external probe
watching the Kuma instance itself.

---

## Why Deploy and Host Uptime Kuma on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your
infrastructure so you don't have to deal with configuration, while allowing you to vertically
and horizontally scale it.

By deploying Uptime Kuma on Railway, you get unlimited uptime monitors at 20-second intervals,
free branded status pages, 90+ notification channels, and the ability to monitor internal
services no SaaS probe can reach — at ~$2–5/month flat with no commercial-use restrictions.

## Similar templates

- [Rootprint](https://railway.com/deploy/rootprint-1) — Open-source logs and traces with full-text search on object-storage.
- [VPS Fleet Watch Hub with Beszel](https://railway.com/deploy/vps-fleet-watch-hub-with-beszel) — A persistent Beszel hub for external VPS agents and fleet alerts.
- [Pyroscope profiling](https://railway.com/deploy/pyroscope-profiling) — Protected continuous profiling with durable Pyroscope storage.

Open this page in a browser: https://railway.com/deploy/uptime-kuma-monitoring
