Self-hosting

Hosting Uptime Kuma in 2026: pricing and platform constraints

A guide to hosting Uptime Kuma on Ownkube, Fly.io, Railway, Render, or a VPS, with current pricing and technical requirements for persistent storage.

A server rack with one active monitor node connected to an isolated safety box
Illustration created for this article

As of November 2026, teams seeking to self-host the open-source monitoring tool Uptime Kuma have five primary infrastructure options, each with distinct cost structures and technical trade-offs. The analysis highlights that while platforms like Heroku and Replit are no longer viable due to filesystem limitations, services such as Ownkube, Fly.io, Railway, and Render offer supported environments alongside traditional virtual private servers.

What happened

Uptime Kuma is a single Node.js process that relies on a SQLite database file to store monitor configurations, check history, and settings. Because of this architecture, the hosting environment must provide a disk that persists across restarts and redeploys. The application cannot function correctly on ephemeral filesystems, which has led to its official README listing Heroku and Replit as unsupported platforms. Any host chosen must ensure the data directory sits on a local or block volume rather than a network file system like NFS, which is also incompatible.

The practical choices for 2026 include Ownkube, Fly.io, Railway, Render, and self-managed VPS instances. Each option varies in setup complexity, monthly cost, and maintenance responsibility. Ownkube offers a one-click deployment with automatic HTTPS and a prepaid billing model. Fly.io provides the lowest entry price but requires manual configuration via a fly.toml file. Railway and Render offer template-based or Docker-based deployments with persistent disks, though Render imposes specific constraints on zero-downtime deploys when disks are attached. A self-managed VPS remains the option for those who already maintain server infrastructure and desire full control over OS updates and firewall rules.

Key details

  • Ownkube: Costs approximately $5 per month with metered billing per minute. It includes a 2 GiB persistent volume at no extra storage charge and handles HTTPS automatically. The platform manages server patching.
  • Fly.io: The cheapest option at about $2.34 per month for a 256 MB Machine and 1 GB volume. Users must write a fly.toml configuration file to mount the volume correctly. Volumes bill on provisioned size even if the machine is stopped.
  • Railway: Requires a $5 Hobby fee which includes $5 of usage. Templates attach volumes automatically, but heavy usage may exceed the included credit. Memory and CPU are billed separately if limits are surpassed.
  • Render: Starts at $7.25 per month for a Starter instance plus disk costs. Services with attached disks lose zero-downtime deploy capabilities, causing brief monitor outages during updates. It cannot scale past one instance, which aligns with SQLite’s single-writer constraint.
  • Self-managed VPS: Offers the lowest unit cost for those who already pay for server infrastructure. The user is responsible for OS patches, reverse proxy configuration, certificate management, and backups. Docker Compose is the standard installation method.

Background

Uptime Kuma’s reliance on SQLite dictates several critical infrastructure requirements. SQLite allows only one writer at a time, meaning the application must run as a single instance. Scaling horizontally with multiple copies is not possible without changing the database backend, which Uptime Kuma does not natively support in this context. Additionally, the process must never sleep. Many cloud providers offer free tiers that spin down containers after periods of inactivity to save resources. For a monitoring tool, this behavior is fatal because a sleeping monitor cannot detect outages, creating a blind spot exactly when it is needed most.

Another essential requirement is a public hostname with HTTPS. This is necessary both for accessing the administrative dashboard securely and for serving status pages to end users. While some platforms provide this automatically, others require manual configuration of reverse proxies and TLS certificates. The choice of host often depends on whether the team prefers managed convenience or granular control over these networking layers.

Why it matters

For teams running their own software, the placement of the monitoring tool is as critical as the tool itself. If Uptime Kuma runs on the same platform, region, or server as the applications it monitors, a widespread outage will take down the monitor along with the apps. This results in a silent failure where no alerts are sent, and the status page becomes inaccessible to users seeking information. To avoid this, the monitor should be hosted on a different provider or in a different region from the primary applications. For example, if apps run on a platform in Germany, the monitor could be placed in Mumbai or on a completely different service.

Cost predictability and operational overhead are also significant factors. Self-hosting eliminates per-monitor fees associated with commercial SaaS solutions like UptimeRobot, which charges $9 per month for its Solo plan to achieve 60-second check intervals. However, self-hosting introduces the burden of maintaining the underlying infrastructure. Teams must weigh the savings against the time spent managing server updates, backups, and security patches. The decision often hinges on whether the organization already has DevOps capacity to manage a VPS or prefers the simplicity of a managed container platform.

What you can do

  • Verify that the data directory for Uptime Kuma is mounted on a persistent volume that survives redeployments and restarts.
  • Disable any idle sleep or spin-down features in your hosting platform to ensure continuous monitoring checks.
  • Run only one instance of Uptime Kuma to prevent SQLite database corruption from concurrent writes.
  • Host the monitor on a different cloud provider or geographic region than your production applications to ensure availability during outages.
  • Establish a regular backup routine for the SQLite data file to preserve monitor history and configuration.
  • Send test alerts to all configured channels, such as email, Slack, or Telegram, to confirm notification pathways are functional before relying on them.

More news

All news