uptimekit
Uptimekit provides distributed monitoring and status page
What is it?
What it is
UptimeKit is an open‑source, modern status page and monitoring platform that lets you track the uptime of HTTP/TCP services, publish status pages, manage incidents, and analyze performance metrics.
Why it exists
It was created to provide a single, self‑hostable solution that combines real‑time monitoring, incident reporting, multi‑tenant support, and analytics, eliminating the need for multiple disparate tools.
Who should use it
Developers, DevOps engineers, SREs, and product teams who need a self-hosted status page and monitoring solution with multi-tenant support.
Who should avoid it
Users looking for a fully managed SaaS status page, non-technical users unwilling to manage infrastructure, or those needing only basic uptime checks without customization.
How it works
A quick walkthrough in plain English
How uptimekit works
Step 1 of 3
You interact with it
Open uptimekit, send a request, or connect it to your stack.
Features
Advantages
- Scalable through distributed workers and app replicas
- High level of data and infrastructure control via self-hosting
- Comprehensive tech stack including Clickhouse and PostgreSQL
- Modern, customizable UI themes
Disadvantages
- Requires multiple dependencies (Redis, PostgreSQL, Clickhouse) for full functionality
- Complexity in managing distributed worker nodes
Installation
docker
curl -o docker-compose.yml https://raw.githubusercontent.com/uptimekit/uptimekit/main/docker-compose.yml && curl -L https://raw.githubusercontent.com/uptimekit/uptimekit/refs/heads/main/.env.example -o.env # Edit.env variables # APP_SECRET=change_me_to_a_secure_secret # APP_URL=http://localhost:3000 docker compose up -d
compose
curl -o docker-compose.yml https://raw.githubusercontent.com/uptimekit/uptimekit/main/docker-compose.yml && curl -L https://raw.githubusercontent.com/uptimekit/uptimekit/refs/heads/main/.env.example -o.env # Edit.env variables # APP_SECRET=change_me_to_a_secure_secret # APP_URL=http://localhost:3000 docker compose up -d
FAQ
How do I get UptimeKit running locally on my machine?
First, download the `docker-compose.yml` and `.env.example` files with the provided curl commands. Edit the `.env` file to set `APP_SECRET`, `APP_URL`, and optionally `APP_STATUS_PAGE_DOMAIN`. Then run `docker compose up -d` to start all services. After the containers are up, follow the on‑screen setup steps in the web app to finish the installation.
What are the prerequisites for running UptimeKit?
UptimeKit requires Redis, PostgreSQL, and optionally ClickHouse for analytics. Ensure these services are available and configured before starting the Docker compose stack.
Can I run multiple workers or app replicas?
Yes. UptimeKit is designed as a distributed monitoring solution. You can launch as many worker containers as you like; each worker polls the app every 15 seconds for its assigned monitors. Similarly, you can run multiple replicas of the main app for high availability.
How do I set up a custom domain for the status page?
In the `.env` file, set `APP_STATUS_PAGE_DOMAIN` to your desired domain (e.g., `status.example.com`). This configures the public status page application to serve under that domain. Make sure DNS and SSL are configured appropriately.
Can I display monitors from external Instatus pages?
Yes. UptimeKit supports Instatus integration, allowing you to pull monitors from external Instatus pages and display them on your own status page. Refer to the documentation for the exact configuration steps.
Featured in Videos
YouTube tutorials and walkthroughs for uptimekit
Alternatives
Similar projects ranked by category, topics, and text overlap.