UptimeKeep is a production-ready uptime monitoring SaaS script built on Laravel 12. Monitor websites, APIs, servers, DNS, domains, SSL certificates, cron jobs and game servers, alert your customers on the channels they already use, publish branded public status pages — and sell it as a subscription service on your own domain with plans, an affiliate programme and a full admin control panel.
You get both halves of the product in one codebase: the customer-facing monitoring app (dashboard, monitors, incidents, status pages, integrations, team seats, API keys) and the operator side (users, plans, payments, taxes, redeem codes, affiliates, e-mail templates, content, system health) — dark-themed panels, a marketing site and pricing page with light & dark themes, and public status pages in both.
Run it as a business — earn money with your own monitoring service
UptimeKeep is designed to be operated as a SaaS, not just used internally. The commercial building blocks are in the box:
- Subscription plans you define — every plan sets price (monthly / yearly), limits (monitors, heartbeats, DNS, domains, server monitors, game servers, status pages, projects, alert channels, team seats), allowed check intervals, log retention, REST API access, e-mail reports and white labelling, plus allow-lists for monitor types and alert integrations. The starter catalogue is Free $0 / Pro $29 / Business $99 per month (yearly prices included) — a sample you can edit or replace in the admin.
- Upsell levers that already exist — faster check intervals, higher limits, team seats (per-seat prices are configurable per plan), e-mail reports, longer history and white-labelled status pages can each be reserved for paid tiers.
- Affiliate programme — approve affiliates, track referrals, hold commissions through a refund period, review fraud flags and record payouts (default 20% commission, configurable). A separate referral-reward system (credit and bonus days) is included for regular users.
- Billing back office — payments ledger, invoices with your prefix, taxes (inclusive / exclusive by country), redeem codes for discounts or free plans, and a Record payment form that assigns the plan to the customer.
- White-label & custom domains — customers can brand status pages, attach their own domain, and (on the plan you choose) remove the “Powered by” footer — a feature agencies and SaaS buyers pay for.
- Possible ways to monetize: subscription tiers, annual plans, seat-based pricing, agency / reseller packages, managed monitoring for clients, and bundling status pages with your hosting or support offers.
Billing, honestly: UptimeKeep does not include a live Stripe or PayPal charging integration. The admin has fields to store gateway credentials, but no card-processing code ships with the script. In production the built-in demo checkout is disabled, so out of the box you invoice customers yourself (bank transfer, payment links, your invoicing tool) and then activate the plan with Record payment or a redeem code. To take cards automatically, integrate a gateway at the documented hook (BillingController::checkout) or order the Installation Service add-on / contact the seller. Revenue depends entirely on your market, pricing and marketing — nothing here is an income guarantee.
Who it’s for
Founders launching a monitoring / status-page product, hosting companies and agencies that want to white-label monitoring for clients, MSPs, dev-tool makers who need a monitoring module they fully own, and teams who want a self-hosted alternative to paid uptime SaaS — all with readable, unobfuscated Laravel code.
What your customers get
Monitoring (17 monitor types)
- HTTP / website, keyword, API (JSON assertions), multi-step API (transaction), ping, port, UDP and service-protocol checks
- Cron-job / heartbeat monitors, DNS monitors, domain-name expiry and SSL certificate monitoring
- Server monitoring (agent push with CPU / memory / disk thresholds), game-server checks, third-party status-page monitoring, security & protocol audits, e-mail health checks
- Per-plan check intervals (down to 30 seconds on the starter Pro plan), double-check before alerting, projects to organise resources, CSV import / export
- Incidents with timelines and acknowledgement, maintenance windows with announcements, uptime / response-time statistics and e-mail reports
Alerts (21 channel types)
- E-mail, in-app notifications, Slack, Telegram, Discord, Microsoft Teams, Google Chat, Mattermost, webhooks, Zapier, PagerDuty, Splunk On-Call, Pushbullet, Pushover, browser / mobile push, Twilio SMS & voice, WhatsApp, X and more — which channels each plan may use is yours to decide
Status pages
- Public status pages with component groups, 90-day uptime history, incidents and maintenance, subscriber e-mail notifications, password protection, custom domains and a theme editor (accent colour, fonts, logo, light / dark)
Account & team
- Dashboard, REST API with API keys (read-only and per-monitor keys), an MCP endpoint for AI assistants, team members with roles and seats, two-factor authentication, billing history and invoices, redeem codes, referrals
What you get as the operator
- Admin overview with KPIs, signups & revenue chart and system health (scheduler, queue, failed jobs, mail, disk)
- Users, plans, payments, taxes, redeem codes, affiliates (applications, commissions, payouts, referral fraud flags), statistics, languages (English + German UI included), ping servers, e-mail template editor with test sends, blog, help-centre articles and free public tools (JSON formatter, cron generator, uptime calculator and more) for SEO
- Marketing site: home, pricing, blog, help centre, comparison pages, free tools — light and dark themes
Tech stack & requirements
- Laravel 12, PHP 8.2+, MySQL 8 / MariaDB 10.6+, Blade + Livewire (Volt), Tailwind CSS 3 + Vite (pre-built assets included)
- Database-backed sessions, cache and queue — no Redis or Node.js required on the server
- Apache (mod_rewrite) or Nginx with the document root on
public/; one cron entry for the Laravel scheduler
- Mail via SMTP, Resend or sendmail; optional Google / Discord login and Cloudflare Turnstile
vendor/ is included (production dependencies), so Composer is not needed to install
Install overview
- Upload and extract the package, point the web root at
public/
cp .env.example .env and set APP_URL, DB_* and mail settings
- Run
php artisan uptimekeep:install — creates the app key, the tables, starter plans, e-mail templates and help articles, and your admin account (no default passwords)
- Add the cron job:
* * * * * php artisan schedule:run
- Configure mail, branding and plans in the admin panel
INSTALL.md covers SSH, shared-hosting (cPanel) and VPS installs; further guides cover deployment (Supervisor, custom domains), configuration (billing, affiliates, social login) and updating.
Scheduler & queue
Checks, notifications, e-mail reports, log pruning and mail delivery are all driven by the scheduler cron entry (schedule:run every minute). No permanent queue worker is required; you can optionally run one under Supervisor on a VPS.
What’s included in the download
- Complete Laravel 12 application source, compiled front end (
public/build) and production vendor/
uptimekeep:install installer and a safe production seeder (no demo users)
- Optional
DemoDataSeeder for local evaluation (refuses to run in production)
INSTALL.md, README.md, docs/ (deployment, configuration, updating), API.md (REST + MCP reference) and LICENSE.txt
- Production
.env.example — no secrets, no database dumps, no uploads, no logs
Support & updates
Support is provided by the UptimeKeep author through this listing (installation help, bug reports against the shipped feature set). Updates are published as new versions here. Custom work, payment-gateway integration and server setup can be arranged with the seller — see the Installation Service add-on.