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.
- Instatus Integration - Display monitors from external instatus pages on your status page,
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.
Follow these steps to get UptimeKit running locally on your machine.
- PostgreSQL
- Clickhouse (optional)
-
Download the docker-compose.yml and .env.example
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 these variables in the .env
APP_SECRET=change_me_to_a_secure_secret
APP_URL=http://localhost:3000
# Status Page Configuration (Optional)
APP_STATUS_PAGE_DOMAIN=status.example.comPoint both APP_URL and APP_STATUS_PAGE_DOMAIN at the same UptimeKit service.
The dashboard and public status pages are served from the same container.
-
Start the docker compose
docker compose up -d
-
Now follow the steps on the app. Enjoy :D
Need help with UptimeKit? Join our community support room on Matrix:
Join the UptimeKit Matrix room
Room address: #uptimekit:irazz.lol
Use the room to ask questions, report problems, and connect with other UptimeKit users and contributors.
uptimekit/
├── apps/
│ ├── dash/ # Main Dashboard application
│ ├── worker/ # Probe who actually pings the monitors
├── packages/
│ ├── api/ # Shared API definition & logic
│ ├── auth/ # Authentication configuration
│ ├── db/ # Database schema & Drizzle config
│ └── config/ # Shared configuration (TS, ESLint, etc.)
└── ....Thank you to all our amazing sponsors who make this project possible!
Become a sponsor and get your logo here!
We welcome contributions! Please check out our Contributing Guide for details on how to submit pull requests, report issues, and request features.
This project is licensed under a MIT License
