Open-source uptime monitoring

Stay ahead of downtime.

Uptime Kotlin is a free, open-source uptime monitoring platform that you host yourself. It checks your HTTP, TCP, DNS, ping, database and message-queue endpoints at the interval you choose, alerts your team the moment one fails, and publishes a public status page. Everything runs on your own infrastructure, with no vendor and no monthly per-monitor fee.

Try it yourself on demo.uptime-kotlin.com

From first check to public status page.

Create your monitors, understand your infrastructure at a glance, then share only what your users need to know. One continuous workflow in three steps.

Uptime Kotlin monitoring dashboard

Your entire stack, at a glance.

See health, latency and open incidents for every service the moment something changes.

  • Health
  • Latency
  • Incidents
Create a monitor in Uptime Kotlin

Add a check in seconds.

Pick a protocol, set a target and an interval, wire up alerts. No YAML, no redeploy.

  • 11 protocols
  • Alerts
  • Reminders
Public Uptime Kotlin status page

Keep users in the loop.

Public status pages, several per instance, in grid or list layout, kept in sync with your checks.

See our live status page
  • Health
  • History
  • Grid & list

11 protocols. Your whole stack.

Not just URLs: the databases and message brokers your application depends on are checked natively, from the same dashboard as your public endpoints.

Alerts through Email, Slack, Discord, Teams, Telegram, ntfy, Gotify and webhooks.

The calm you need when everything else is on fire.

Fast feedback, useful alerts and a dashboard that tells you what matters in one glance. Nothing more. Nothing hidden.

Incidents, handled for you

Incidents open and close on their own with the downtime duration, and export to CSV for monthly reports.

TLS certificate expiry

Track certificate validity on every HTTPS monitor before your users hit a browser warning.

About 50 MB of RAM

A single native image for the interface, the API and the checks, on amd64 and ARM64.

Cluster mode

Add workers to spread the checks. The job queue lives in PostgreSQL, so there is no extra service to run.

Your stack, up and monitored.

One Docker image and PostgreSQL. Write a compose file, set two secrets and start the stack, then add your first check from the dashboard.

  1. 1

    Create compose.yaml

    Copy the Docker Compose file from the installation guide: the Uptime Kotlin image and PostgreSQL, nothing else.

  2. 2

    Set your secrets

    Generate an encryption key with OpenSSL for ENCRYPTION_MASTER_KEY, then replace both change-me passwords.

  3. 3

    Start and sign up

    Run docker compose up -d, open http://localhost:8080 and create your account.

Terminalbash
# compose.yaml from the installation guide (image + PostgreSQL)
$ openssl rand -base64 32
# paste it as ENCRYPTION_MASTER_KEY, change the passwords
$ docker compose up -d
dashboard ready on http://localhost:8080
$ 

Configuration, cluster mode and Docker images in the docs.

Read the installation guide

Frequently asked questions.

Anything missing? Open an issue on GitHub. Questions asked there usually end up on this list.

Ask a question

What is Uptime Kotlin?

Uptime Kotlin is a free, open-source uptime monitoring platform that you host yourself. It checks HTTP, TCP, DNS, ping, database and message-broker endpoints at the interval you choose, alerts your team through Email, Slack, Discord, Microsoft Teams, Telegram, ntfy, Gotify or a webhook when a check fails, and publishes a public status page. It is written in Kotlin, released under the MIT license and deployed with Docker Compose.

How much does Uptime Kotlin cost? Is there a free plan?

Uptime Kotlin is free. There is no paid plan, no per-monitor pricing and no hosted edition to subscribe to: you download the source, run it on your own infrastructure and monitor as many services as your server can handle. The only cost is the machine you run it on.

What can Uptime Kotlin monitor?

Eleven monitor types: HTTP/HTTPS, TCP, DNS, ping (ICMP), PostgreSQL, MySQL/MariaDB, Microsoft SQL Server, Redis, SMTP, Apache Kafka and RabbitMQ. Database and message-broker checks are built in, so the backing services of your application are watched from the same dashboard as your public endpoints.

Is Uptime Kotlin a good alternative to Uptime Kuma?

It is, when you need to monitor more than URLs. Uptime Kuma has a larger notification catalogue (90+ providers) and a lighter SQLite install. Uptime Kotlin monitors PostgreSQL, MySQL, SQL Server, Redis, Kafka and RabbitMQ natively, which Uptime Kuma does not, and is written in Kotlin on top of PostgreSQL. Both are MIT licensed and fully self-hosted.

How do I install Uptime Kotlin?

Create a compose.yaml file with the Uptime Kotlin image (ghcr.io/theomeunier/uptime-kotlin) and PostgreSQL, as shown in the installation guide (uptime-kotlin.com/docs/installation). Replace ENCRYPTION_MASTER_KEY with the output of openssl rand -base64 32 and set the database passwords, then run docker compose up -d. Open http://localhost:8080 and create your account.

Where is my monitoring data stored?

In a PostgreSQL database that runs on your own infrastructure, alongside the application. No monitoring data, credential or check result is sent to a third party, and the MIT license lets you fork, audit or modify the code without asking anyone.