
Your entire stack, at a glance.
See health, latency and open incidents for every service the moment something changes.
- Health
- Latency
- Incidents
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
Create your monitors, understand your infrastructure at a glance, then share only what your users need to know. One continuous workflow in three steps.

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

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

Public status pages, several per instance, in grid or list layout, kept in sync with your checks.
See our live status pageNot 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.
Fast feedback, useful alerts and a dashboard that tells you what matters in one glance. Nothing more. Nothing hidden.
Incidents open and close on their own with the downtime duration, and export to CSV for monthly reports.
Eight notification channels, with optional reminders while a monitor stays down.
Track certificate validity on every HTTPS monitor before your users hit a browser warning.
One-off or recurring windows that mute alerts while you deploy or migrate.
A single native image for the interface, the API and the checks, on amd64 and ARM64.
Add workers to spread the checks. The job queue lives in PostgreSQL, so there is no extra service to run.
One Docker image and PostgreSQL. Write a compose file, set two secrets and start the stack, then add your first check from the dashboard.
Copy the Docker Compose file from the installation guide: the Uptime Kotlin image and PostgreSQL, nothing else.
Generate an encryption key with OpenSSL for ENCRYPTION_MASTER_KEY, then replace both change-me passwords.
Run docker compose up -d, open http://localhost:8080 and create your account.
# 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 guideAnything missing? Open an issue on GitHub. Questions asked there usually end up on this list.
Ask a questionUptime 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.
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.
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.
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.
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.
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.