Introducing Checkstack: The Uptime Kuma Alternative with User Management and Incident Tracking
Uptime Kuma is a great tool, but...#
If you're searching for user management with Uptime Kuma or wondering how to add team features to your uptime monitor, you've probably hit the same wall I did. Uptime Kuma is a fantastic tool for basic uptime monitoring, but when you need proper incident management, maintenance windows, and enterprise-grade access control, it falls short.
That's why I built Checkstack.
Why I Created Checkstack#
I've been using Uptime Kuma for years in my homelab. It's simple, lightweight, and gets the job done for basic health checks. But as my infrastructure grew and I started collaborating with others, I ran into limitations:
- No user management - Uptime Kuma doesn't support multiple users with different access levels
- No incident tracking - When something breaks, there's no way to document and communicate what happened
- No maintenance windows - Can't schedule planned downtime without triggering false alerts
- No team collaboration - No concept of teams or role-based access control
Checkstack was born to address these gaps while keeping what makes self-hosted monitoring tools great: simplicity, extensibility, and complete control over your data.
Checkstack vs Uptime Kuma: What's Different?#
Let me break down the key differences:
| Feature | Uptime Kuma | Checkstack |
|---|---|---|
| Health Checks | ✅ HTTP, TCP, Ping, etc. | ✅ HTTP, TCP, DNS, ICMP, RCON / Gameservers... |
| User Management | ❌ Single user only | ✅ Full multi-user with RBAC |
| Team Management | ❌ Not available | ✅ Teams with managers and members |
| Incident Management | ❌ Not available | ✅ Full incident lifecycle tracking |
| Maintenance Windows | ⚠️ Basic | ✅ Scheduled with auto-transitions |
| SSO/LDAP/SAML | ❌ Not available | ✅ GitHub OAuth, SAML 2.0, LDAP/AD |
| API Access | ⚠️ Limited | ✅ Full REST API with service accounts |
| Plugin System | ❌ Not available | ✅ Extensible backend and frontend plugins |
| Notifications | ✅ Many channels | ✅ Teams, Slack, Discord, Telegram, and more |
| Horizontal Scaling | ❌ Single instance only | ✅ Multiple replicas with shared PostgreSQL |
Enterprise-Grade User Management#
This is where Checkstack really shines. You get:
- Role-Based Access Control (RBAC) - Define custom roles with specific permissions
- Resource-Level Access Control - Grant teams fine-grained access to individual systems
- Team Management - Organize users into logical teams with designated managers
- Directory Integration - Map LDAP/SAML groups directly to Checkstack roles
Perfect for enterprises where different teams need access to different parts of your infrastructure.
Incident Management That Actually Works#
When things break, you need to communicate clearly. Checkstack provides:
- Incident Tracking - Document unplanned outages with status updates
- Timeline Updates - Keep stakeholders informed as situations evolve
- Affected Systems - Link incidents to impacted services
- Realtime Updates - Changes broadcast instantly via WebSocket
Maintenance Windows with Smart Automation#
Schedule your planned maintenance and let Checkstack handle the rest:
- Automatic status transitions from "Planned" → "Active" → "Completed"
- Notification suppression during maintenance periods
- Multi-system impact tracking
- User notifications before and during maintenance
Perfect for Self-Hosters#
If you're running a homelab or self-hosting infrastructure, Checkstack fits right in:
# Download the docker-compose file and start
curl -O https://raw.githubusercontent.com/enyineer/checkstack/main/docker-compose.yml
docker compose up -dNote: Checkstack requires a few environment variables (
DATABASE_URL,ENCRYPTION_MASTER_KEY,BETTER_AUTH_SECRET,BASE_URL). Check out the full Docker Getting Started Guide for complete setup instructions.
You get:
- Complete data ownership - Everything runs on your hardware
- Free to use - Source-available under the Elastic License 2.0 (ELv2). This means you can use, modify, and extend Checkstack freely for your own purposes, even in a commercial setting. The only restriction? Big SaaS providers can't take this code and sell it as a managed service without contributing back. I believe developers should be able to extend and customize their tools, while ensuring the project stays sustainable and isn't exploited by companies who want to profit without giving anything in return.
- Simple deployment - Single Docker container
- Low resource usage - Built with modern technologies (Bun, React)
Built for Enterprise Scale#
While Checkstack is simple enough for a homelab, it's designed to scale:
Horizontal Scalability#
One of the biggest limitations of Uptime Kuma is that it's single-instance only. It uses SQLite - a file-based embedded database stored locally - which means you can't run multiple replicas sharing the same data. If your Uptime Kuma instance goes down, your entire monitoring system goes dark.
Checkstack takes a different approach:
- PostgreSQL-backed - All state lives in the database, not on local disk
- Stateless workers - Run multiple Checkstack instances behind a load balancer
- Redis-powered queues - BullMQ distributes health checks across workers
- No single point of failure - Scale horizontally for high availability
This means you can deploy Checkstack in Kubernetes with multiple replicas, behind a load balancer, or in any distributed setup your infrastructure requires.
Enterprise Authentication & Access#
- SAML 2.0 SSO - Connect to Okta, Azure AD, OneLogin, and more
- LDAP/Active Directory - Enterprise directory integration with group mapping
- External Applications - API keys for machine-to-machine access with full RBAC
- Plugin Architecture - Extend with custom health check strategies, notification channels, and integrations
Example: Create an incident from an external alerting system:
curl -X POST https://checkstack.local/api/incident/createIncident \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ck_<appId>_<secret>" \
-d '{"title": "High CPU Alert", "status": "investigating", "systemIds": ["..."]}'The Technology Stack#
For the tech-curious, Checkstack is built with:
- Frontend - React 19 with Tanstack Query and oRPC
- Backend - Bun runtime with oRPC
- Database - PostgreSQL with customized Drizzle ORM
- Queue - BullMQ for background jobs
- Architecture - Modular plugin system for extensibility
Everything is available on checkstack.dev.
Get Started Today#
Ready to upgrade your monitoring setup? Here's how to get started:
- Star the repo - github.com/enyineer/checkstack
- Visit the website - checkstack.dev
- Try the Docker image - Quick deployment for testing
- Read the docs - Comprehensive documentation included
- Join the community - Contribute plugins, report issues, or request features
Whether you're a homelab enthusiast looking for a more capable Uptime Kuma alternative, or an enterprise team needing proper access control and incident management, Checkstack has you covered.
The best part? It's completely free (even for commercial use!) and the source is available. Give it a try and let me know what you think!
Have questions or feedback? Feel free to open an issue on GitHub or reach out to me directly.
Frequently Asked Questions
How is Checkstack different from Uptime Kuma?
Checkstack keeps the parts of Uptime Kuma that work - simple monitor setup, clean status pages, sensible defaults - and adds the pieces teams actually need in production: real user management with roles and teams, incident tracking with timelines, and an audit log. It is built for the moment your monitoring stack outgrows a single shared login.
Is Checkstack free and self-hostable?
Yes. Checkstack is open source and ships as a container image you can run anywhere - homelab, VPS, or a Kubernetes cluster. There is no paid tier and no telemetry phoning home.
Can I migrate from Uptime Kuma to Checkstack?
Checkstack supports the same monitor types (HTTP, TCP, ping, DNS, push) so most of your existing checks port over directly. Migration tooling is on the roadmap; for now the recommended path is to set up Checkstack alongside Uptime Kuma, mirror your monitors, and switch over once you are happy.
Does Checkstack support status pages?
Yes. Public and private status pages are first-class, with the ability to scope which monitors and incidents appear on which page. You can run multiple status pages from a single Checkstack instance, which is useful if you operate several products or customer environments.