Home
Softono
uptimekit

uptimekit

Open source MIT TypeScript
70
Stars
14
Forks
0
Issues
0
Watchers
1 week
Last Commit

About uptimekit

Uptimekit provides distributed monitoring and status page

Platforms

Web Self-hosted Docker

Languages

TypeScript
UptimeKit Logo

UptimeKit

The modern open-source status page and monitoring solution.

Features β€’ Getting Started β€’ Tech Stack β€’ Contributing


UptimeKit Banner

badges


✨ Features

UptimeKit is designed to be the all-in-one solution for tracking your services' uptime and communicating with your users.

  • πŸ“Š Monitoring - Real-time uptime monitoring for your HTTP/TCP services.
  • 🚦 Status Pages - Beautiful, customizable status pages for your users.
  • πŸ”” Incidents - Create and manage incident reports to keep users informed.
  • 🏒 Organizations - Multi-tenant support with team management.
  • πŸ“ˆ Analytics - Detailed uptime and response time metrics.
  • πŸ› οΈ Self-Hostable - Full control over your data and infrastructure.

How it works

Uptimekit is a distributed monitoring solution. You can have as many workers as you want and as many replicas of the app as you want. The workers check with the app every 15 seconds to get their assigned monitors and run the checks whenever they have to.

πŸš€ Tech Stack

Built with a modern, type-safe stack for maximum performance and developer experience.

πŸ› οΈ Getting Started

Follow these steps to get UptimeKit running locally on your machine.

Prerequisites

  • Redis
  • Clickhouse/Timescale
  • PostgreSQL

Install

  1. Download the docker-compose.yml

     curl -o docker-compose.yml https://raw.githubusercontent.com/uptimekit/uptimekit/main/docker-compose.yml
  2. Start the docker compose

     docker-compose up -d
  3. Now follow the steps on the app. Enjoy :D

Manual installation

  1. Clone the repository

     git clone https://github.com/uptimekit/uptimekit.git
     cd uptimekit
  2. Install dependencies

     pnpm install
  3. Environment Setup

    Copy the .env.example file in .env

  4. Database Setup

    Push the schema to your database:

     pnpm run db:push
  5. Run Development Server

    Start all applications (Dashboard, Status Page, Marketing/Docs):

     pnpm run dev

πŸ“‚ Project Structure

uptimekit/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ dash/          # Main Dashboard application
β”‚   β”œβ”€β”€ worker/        # Probe who actually pings the monitors
β”‚   └── status-page/   # Public Status Page application
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ api/           # Shared API definition & logic
β”‚   β”œβ”€β”€ auth/          # Authentication configuration
β”‚   β”œβ”€β”€ db/            # Database schema & Drizzle config
β”‚   β”œβ”€β”€ scheduler/     # Scheduler application
β”‚   └── config/        # Shared configuration (TS, ESLint, etc.)
└── ....

πŸ’ Sponsors

Thank you to all our amazing sponsors who make this project possible!

Become a sponsor and get your logo here!

πŸ‘€ Previews

Default theme with length bars

image

Flat theme with length bars

image

Signal theme with signal bars

image

🀝 Contributing

We welcome contributions! Please check out our Contributing Guide for details on how to submit pull requests, report issues, and request features.

πŸ“„ License

This project is licensed under a MIT License


Built with ❀️ by the UptimeKit Team