Noureddine RAMDI / Uptime Kita: Laravel-powered uptime monitoring with a cronless scheduler

Created Mon, 04 May 2026 10:23:02 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

syofyanzuhad/uptime-kita

Uptime monitoring is one of those essential services every infrastructure team needs but few want to build from scratch. Uptime Kita tackles this with a Laravel 12.x foundation, delivering HTTP/HTTPS status checks, SSL monitoring, and real-time notifications without relying on traditional cron jobs — a pain point in containerized setups.

What uptime kita does and how it’s built

Uptime Kita is an open-source uptime monitoring platform built on PHP 8.2+ using Laravel 12. It focuses on tracking website availability and SSL certificate validity, providing multi-channel alerting through Email (SMTP), Telegram, and Slack.

The stack is straightforward yet thoughtfully combined: SQLite databases for persistent storage, Redis for caching and queue management, and Node.js (v22+) for frontend asset building. This choice keeps the footprint light, suitable for small to medium deployments.

Under the hood, Uptime Kita supports real-time notifications via Server-Sent Events (SSE), enabling the frontend dashboard to update instantly with status changes without polling overhead. It also provides Google OAuth for authentication, multiple customizable status pages, embeddable uptime badges for public display, and a server resource monitoring dashboard that auto-refreshes.

Deployment is flexible: it supports traditional cron jobs combined with Supervisor or a Docker-based setup leveraging a built-in cronless scheduler. This flexibility makes it practical for environments where cron is unavailable or unreliable, such as containers.

The cronless scheduler and real-time alerting as a technical highlight

The standout implementation detail in Uptime Kita is its cronless scheduler. Containerized Laravel apps often struggle with scheduled tasks because cron isn’t accessible inside containers by default. Instead of relying solely on external cron services or complex workarounds, Uptime Kita embeds a self-managed scheduler loop within the app.

This scheduler runs continuously, using memory and runtime guards to avoid resource exhaustion or runaway processes. It periodically triggers scheduled checks and queue workers internally, mimicking cron behavior without external dependencies. This approach reduces operational complexity in container orchestration and ensures reliable job execution.

Choosing SQLite for persistence is a clear tradeoff. SQLite offers simplicity and zero-configuration but doesn’t scale well for high concurrency or distributed setups. Redis complements this by handling caching and queues efficiently, improving responsiveness and throughput.

The codebase sticks to Laravel conventions, making it approachable for PHP developers familiar with the framework. The SSE implementation is a modern touch that improves UX by pushing live status updates to the browser, avoiding the typical latency of polling.

Multi-channel alerting is well-integrated, with support for Email via Resend, Telegram bots, and Slack webhooks. This means alerts can reach operators across different communication platforms seamlessly.

Quick start with uptime kita

Getting Uptime Kita running involves a few straightforward steps, directly from the repository’s installation instructions:

# Clone repository:
git clone https://github.com/syofyanzuhad/uptime-kita

# Install PHP dependencies:
composer install

# Install JavaScript dependencies and build assets:
npm install
npm run build

# Setup environment file:
cd uptime-kita
cp .env.example .env

# Generate application key:
php artisan key:generate

You then configure admin credentials and API keys in the .env file, including Google OAuth, Telegram bot token, and email API keys.

The database setup requires creating SQLite files manually:

touch database/database.sqlite
touch database/queue.sqlite
touch database/telescope.sqlite

Migration and seeding scripts populate initial monitor data. The project includes seeders for default monitors and collages.

This setup process reflects a typical Laravel app but with added steps to accommodate SQLite and Redis components.

Verdict: who should consider uptime kita

Uptime Kita is well-suited for PHP developers and teams already invested in Laravel who want a self-hosted uptime monitoring solution without introducing new languages or frameworks.

Its cronless scheduler is a practical solution for containerized environments, reducing deployment friction. The real-time SSE notifications and multi-channel alerting improve observability and on-call responsiveness.

That said, it trades off scalability. SQLite’s limitations mean it’s best for small to medium workloads rather than large-scale distributed monitoring. The Laravel foundation adds some overhead compared to leaner Go or Node.js alternatives.

In sum, if you need a Laravel-native uptime monitor with real-time updates and flexible deployment — especially in container contexts where cron jobs are a challenge — Uptime Kita is worth exploring. It provides a clean codebase and developer-friendly conventions, balanced with pragmatic architecture choices for real-world constraints.


→ GitHub Repo: syofyanzuhad/uptime-kita ⭐ 167 · PHP