Zabbix
Monitoring everything from network switches to Kubernetes clusters since 2001 with over 6,200 GitHub stars and deployments exceeding 100,000 devices per installation, Zabbix has established itself as one of the most mature and feature-rich open-source monitoring platforms available, trusted by organizations including Dell, Salesforce, ICANN, and T-Mobile. The platform collects metrics from virtually any source using Zabbix Agent written in C, Zabbix Agent 2 written in Go with native plugin support, SNMP v1/v2c/v3 polling and trapping, IPMI for hardware health, JMX for Java applications, SSH and Telnet checks, HTTP/HTTPS polling, and ODBC database queries. Version 7.0 LTS introduced synthetic browser monitoring that executes user-defined JavaScript via WebDriver to simulate multi-step user interactions on websites, proxy load balancing with automatic host redistribution across proxy groups for high availability, in-memory proxy data buffering delivering up to 100x performance improvement, native multi-factor authentication with TOTP and Duo support, and just-in-time user provisioning from SAML and LDAP. Low-level discovery automatically detects file systems, network interfaces, SNMP OIDs, VMware resources, and Kubernetes pods, creating monitoring items and triggers dynamically. The alerting engine correlates events with configurable escalation chains, sending notifications through Slack, Microsoft Teams, PagerDuty, Jira, email, and SMS with customizable message templates. Over 1,000 official templates provide instant monitoring for Linux, Windows, VMware, AWS, Azure, Docker, PostgreSQL, MySQL, Apache, Nginx, and hundreds more. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. AGPL-3.0 licensed.
xyOps
With 4,500+ GitHub stars and version 1.0.92 released August 2026, xyOps delivers a complete operations platform that unifies workflow automation, job scheduling, server monitoring, alerting, and incident response in one self-hosted system. The platform uses a distributed architecture where a central conductor coordinates lightweight xySat satellite agents running on Linux, macOS, or Windows worker nodes via persistent WebSocket connections. The visual workflow builder lets you chain events, triggers, actions, and monitors into multi-step pipelines with conditional logic, fan-out/fan-in parallelism, multiplex controllers for fleet-wide execution, and configurable resource limits. QuickMon provides per-second CPU, memory, disk, and network visibility streamed live to the web UI, while user-defined monitor plugins sample metrics every minute with time-series storage at hourly, daily, monthly, and yearly resolutions. Alert triggers evaluate expressions against live data and fire notifications via email, webhook, or custom actions, with full server snapshots attached showing every running process, network connection, and resource utilization at the moment of detection. Failed jobs and alerts automatically create tickets with linked logs, metrics history, and context for end-to-end incident tracking. The plugin marketplace supports extensions written in any language, and the Docker plugin enables container-based job execution. Deploy via Docker with persistent volumes on port 5522 for the web UI and 5523 for API access, running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. BSD-3-Clause licensed.
Regen
When a production alert fires at 3 a.m., Regen is the self-hosted on-call and incident management platform that makes sure a human answers it, keeping alerts, incidents, schedules, and escalations on one shared timeline instead of split across three tools. Alerts stream in from Prometheus Alertmanager, Grafana, AWS CloudWatch, or any webhook, and deduplication collapses repeat firings before Regen opens an incident automatically; responders can also declare one by hand and let AI draft the title and summary. Layered on-call rotations absorb overrides, holidays, and leave, while multi-step escalation policies with timeouts keep paging the next person until somebody acknowledges, so a critical page never dies in one inbox. The incident timeline syncs to Slack and Microsoft Teams, where bot commands acknowledge, escalate, and post updates without leaving chat, and Telegram notifications cover teams that live there instead. One-click summaries and handoff digests brief the incoming shift, editable postmortem drafts are assembled from the timeline using your own templates, and similar past incidents resurface with what worked last time. AI is bring-your-own-key through OpenAI, Anthropic, or a local Ollama model, and the platform loses nothing core if you never enable it. Schedules and escalation policies import in one click from PagerDuty, Grafana OnCall, or Opsgenie, SAML single sign-on through Okta, Azure AD, or Google Workspace is free, and nothing caps your incidents, schedules, or postmortems. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. AGPL-3.0 licensed.
UptimeKuma
Sixty-thousand-plus GitHub stars make Uptime Kuma the most popular self-hosted monitoring tool - MIT-licensed, Node.js, and the standard replacement for UptimeRobot, Pingdom, and Freshping. It watches a dozen monitor types: HTTP(S) endpoints with keyword and JSON-query content validation, TCP ports, ICMP ping, DNS records, WebSockets, Docker containers via the socket, Steam game servers, MQTT brokers, gRPC services, and push-based heartbeats for cron jobs and internal workers. Checks run at intervals as tight as 20 seconds - versus UptimeRobot's 5-minute free tier - with unlimited monitors and unlimited data retention. When something fails, alerts fan out through 90+ notification channels: Slack, Discord, Telegram, email with LiquidJS templating, PagerDuty, OpsGenie, ntfy, Gotify, Matrix, and dozens more via native providers plus the Apprise library. Unlimited public or password-protected status pages - mappable to specific domains and organized into monitor groups - communicate health to customers, with maintenance windows that suppress alerts during planned work. The reactive dashboard graphs response times, tracks SSL certificate expiry with advance warnings, supports proxies and 2FA, and ships in dozens of languages. One Docker container with a SQLite volume covers an entire infrastructure.
Gatus
With 11,400+ GitHub stars and active development since 2019, Gatus is the developer-oriented status page and health monitoring tool that ships as a single statically-linked Go binary in a scratch Docker image under 20 MB — deploying in seconds while monitoring your entire infrastructure across 12 protocols from a single YAML configuration file. Define health checks for HTTP, ICMP, TCP, DNS, gRPC, WebSocket, SSH, UDP, SCTP, STARTTLS, and TLS endpoints with conditions that go far beyond simple ping: evaluate response status codes, body content with JSONPath expressions, response time thresholds, certificate expiration days, DNS record values, and IP address ranges. Each endpoint supports independent alerting through Slack, Microsoft Teams, PagerDuty, Discord, Telegram, Twilio, Mattermost, Google Chat, email, Gotify, Pushover, and custom webhook providers with configurable failure thresholds and descriptions. The built-in status page displays uptime badges, response time graphs, and incident timelines with maintenance window support for planned downtime communication. External endpoints accept push-based health reports from services behind firewalls. Prometheus metrics export via the /metrics endpoint enables integration with existing observability stacks. OIDC and Basic Authentication protect the dashboard. PostgreSQL persistence stores historical uptime data. The official Helm chart supports Kubernetes deployment with liveness probes and PVC storage, while a community sidecar auto-generates endpoint configurations from Kubernetes Ingress and HTTPRoute resources. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. Apache 2.0 licensed.
Healthchecks
With 10,100+ GitHub stars and 75 releases over a decade of continuous development, Healthchecks is the open-source cron job monitoring service that catches failures your other monitoring tools miss — the jobs that silently stop running, the backups that never completed, the nightly reports that disappeared without error. The dead man's switch architecture requires zero agent installation: your cron jobs, scripts, and services ping a unique URL via HTTP request or email, and Healthchecks alerts you only when a ping does not arrive within the configured Period and Grace Time window. Each check supports cron expression scheduling, optional start, success, and failure signals for measuring execution time, and HTTP body keyword filtering for intelligent alert routing. Twenty-five notification integrations cover every channel teams actually use: Slack, Discord, Microsoft Teams, PagerDuty, Opsgenie, Splunk On-Call, Telegram, Signal, WhatsApp, SMS, email, webhooks, GitHub Issues, Pushover, ntfy, Gotify, Matrix, Mattermost, Zulip, Pushbullet, PagerTree, Spike.sh, and Trello. The web dashboard provides a visual grid showing real-time status with color-coded badges and per-check integration toggles. Monthly, weekly, and daily email reports summarize uptime trends with checks sorted by downtime duration. Team management supports projects with member roles and read-only access. Prometheus metrics expose check health and grace state for Grafana dashboards. WebAuthn and TOTP two-factor authentication secure accounts. Deploy via Docker images available for amd64, arm/v7, and arm64 architectures. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. BSD 3-Clause licensed.
HotHost
HotHost answers the only two questions that matter about every server you own, is it up and is the disk about to fill, before your users ask them instead. One web container collects metrics from a tiny agent you paste onto each host as a Docker or shell snippet, and the fleet lands in a single table: hostname, public IP, RAM and disk usage, CPU model and cores, swap state, and country. Disk and RAM get loud ALERT badges at a configurable threshold, ninety percent by default, and notifications fire on failure and again on recovery, so a resolved incident closes its own loop. The same console watches your websites directly, requesting each URL on your interval and checking the status code, a required keyword in the response, or basic auth behavior. SSL certificates get an expiration reminder fourteen days out by default, long before the browser warnings start. When memory climbs, the top ten RAM-consuming processes are charted over the last two days, turning "something is eating the box" into a named culprit. Alerts route through Email, Slack, Telegram, or Gmail plugins, and the plugin system accepts your own notifiers. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. MIT licensed.
Icinga 2
Servers, services, and network gear report their health to Icinga 2, the open-source monitoring core that runs checks, evaluates thresholds, and decides who gets woken up. A distributed hierarchy of master, satellite, and agent zones scales from a single box to global estates: satellites execute checks in remote regions and keep working when the master is unreachable, while agents run local checks under TLS-secured, certificate-based trust. The object-based configuration language defines hosts, services, dependencies, and notification rules as code, with apply rules generating checks across whole groups automatically. Performance data streams into Graphite, InfluxDB, or Elasticsearch writers, and Icinga DB carries runtime state and history into Redis and SQL for the web frontends. The REST API drives acknowledgements, downtimes, and check scheduling from scripts and chat tools, with fine-grained permissions down to diagnostic information. The 2.16 line hardens API security, streams richer runtime updates to Icinga DB for the new Icinga Notifications 1.0 incident workflows, and lets operators set exact acknowledgement times through the API. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. GPL-3.0-or-later licensed.
Nightingale
When a query crosses its threshold, Nightingale, a self-hosted alerting engine, decides who hears about it and how, without moving data out of the stores you already run. Rules use PromQL, log queries, or SQL against Prometheus, VictoriaMetrics, Elasticsearch, Loki, ClickHouse, MySQL, or PostgreSQL, graded S1, S2, or S3 with a for-duration that absorbs brief spikes. Existing Prometheus alert rules import from YAML. Business groups give each team its own rules and dashboards, and sign-in works through OIDC, OAuth2, LDAP, or CAS. Once a rule fires, mute rules silence the noise, subscriptions add recipients, and event pipelines rewrite labels or route conditionally. Delivery reaches Slack, PagerDuty, Discord, Telegram, Jira, email, DingTalk, Feishu, WeCom, SMS, and voice calls, plus HTTP webhooks and scripts for anything else. Evaluation records, active and historical events, and notification results show what happened at each step. If an alert misbehaves, the built-in AI agent explains why it fired or never arrived, and it drafts rules, dashboards, and mutes from plain-language requests. Claude Code, Cursor, and other MCP clients can query alerts and manage alerting through /mcp, read-only by default and bound by the caller's own permissions. At remote sites, n9e-edge keeps evaluating and notifying when the link to the center drops. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. Apache-2.0 licensed.
Nezha Monitoring
Keep every VPS, home-lab box, NAS, and router you run on one self-hosted dashboard, with a small agent on each machine reporting whether it is up and how hard it is working. Nezha tracks CPU, memory, swap, disk, load, traffic, process counts, and TCP and UDP connections on Linux, Windows, macOS, OpenWRT, and Synology machines, plus GPU and temperature where supported. Servers sort into groups and appear as cards, a list, or a world map, with live charts and, when the optional time-series database is on, 1, 7, and 30 days of history. HTTP GET, ICMP Ping, and TCPing monitors run from the servers you choose, chart latency and packet loss, and warn about HTTPS certificate changes and upcoming expiry. Alert rules watch offline servers, resource use, bandwidth, and cycle traffic limits, then message Telegram, Slack, Matrix, Feishu, DingTalk, or any webhook. A browser terminal and file manager handle quick fixes, while scheduled or alert-triggered tasks run backups, restarts, and scripts across many servers. DDNS updates Cloudflare, Tencent Cloud, or Hurricane Electric records when an agent's IP changes, and NAT traversal publishes a home router or NAS page on your own domain. Admin and user roles, scoped API tokens, and an optional MCP endpoint let people and AI tools list servers and run commands within their permissions. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. Apache-2.0 licensed.
Grafana
The de facto dashboard of observability: Grafana is the open-source frontend that turns the data stores you already run into interactive graphs. It does not store metrics itself; it connects to the data stores you already run and turns their contents into interactive dashboards. Supported sources number over 150 via plugins: Prometheus, Loki, Tempo, InfluxDB, Elasticsearch, MySQL, PostgreSQL, Microsoft SQL Server, AWS CloudWatch, Azure Monitor, Google Cloud Monitoring, and many more. Dashboards are built from a large library of panel types (time series, heatmaps, tables, gauges, logs) with template variables for reusable, parameterized views. Unified alerting evaluates rules against any connected data source, not just Prometheus, and routes notifications to Slack, PagerDuty, email, and other channels with grouping and silencing - unlike Prometheus Alertmanager, a single rule can combine a Loki log pattern, a PostgreSQL query result, and a CloudWatch metric. Dashboards serialize to JSON and data sources configure via provisioning files, so the entire observability setup can live in Git and deploy repeatably across environments. Explore mode adds ad-hoc querying outside dashboards, with split view for correlating a metric spike against the matching log lines, and access control spans organizations, teams, folder permissions, and OAuth, LDAP, and SAML integration. Written in Go and TypeScript, AGPL-licensed. Self-hosting gives you unlimited users, dashboards, and queries at flat hosting cost, without Grafana Cloud's usage-based pricing.
Apprise-API
One REST call, 130+ notification services: Apprise API wraps the well-known Apprise library in a lightweight Django/Gunicorn microservice, so "send an alert" works the same whether it goes to Slack, Discord, Telegram, Teams, email, SMS, Pushover, or PagerDuty - each addressed by a simple URL scheme. It solves the credential-sprawl problem cleanly: instead of embedding provider tokens in every app, cron job, and CI pipeline, you centralize them here and everything else just POSTs a body and title. Two modes cover every workflow. Stateless calls to /notify carry target URLs in the payload (or fall back to a default set via APPRISE_STATELESS_URLS); stateful mode stores named configurations server-side under keys, so /notify/{KEY} fans out to everything registered - with tag-based routing (comma for OR, space for AND) selecting which endpoints fire per message. Messages take info, success, warning, or failure types in text, Markdown, or HTML, with attachments up to a configurable size. A built-in web UI manages and tests configurations, APPRISE_CONFIG_LOCK makes the store read-only, service allow/deny lists restrict which schemes work, webhook remapping adapts third-party payloads, and a Prometheus /metrics endpoint watches the gateway itself.
Pyrra
Define a service level objective in a few lines of YAML and Pyrra writes the Prometheus recording rules and multi-window burn rate alerts for it, then tracks the remaining error budget in a web interface. An objective can be an error ratio or a latency target, declared as a Kubernetes custom resource or as a plain file read from disk when running under Docker or as binaries. Grouping labels fan one definition out into an objective per route or handler. The objectives page lists each SLO with its window, target, availability, and remaining budget, sorted so the worst offenders sit on top; columns can be sorted or hidden, and a search box or a click on any label filters the list. Opening an objective highlights availability and error budget, plots the budget over time, and charts requests, errors, and duration with a time range picker and absolute or relative scales. Below the charts, a table shows the four generated alerts with their severities. Generated alerts carry a link back to the objective's page, and severities can be overridden in the spec. Queries go to Prometheus, Thanos, or Mimir, with basic auth, bearer tokens, or tenant IDs, and ready-made Grafana dashboards chart the same objectives. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. Apache-2.0 licensed.
Vigil
Vigil monitors your entire distributed infrastructure and generates a public status page from a single Rust binary small enough to run on a Raspberry Pi, consuming minimal CPU and memory while providing crash-free reliability. Four distinct monitoring modes cover every topology: poll probes check HTTP, TCP, SSH, and ICMP endpoints for reachability with configurable intervals and thresholds; push probes receive health reports from Vigil Reporter libraries embedded in your application code across Node.js, Python, Golang, Rust, TypeScript, Dart, and C#; local probes delegate monitoring to Vigil Local slave daemons running behind firewalls on separate LANs; and script probes execute custom shell commands for specialized health checks. Each monitored service transitions through healthy, sick, and dead states based on consecutive probe failures, with configurable thresholds controlling state transition sensitivity. When services change state, Vigil dispatches notifications through twelve alert channels including Slack, Email, Twilio SMS, Telegram, Pushover, Gotify, XMPP, Matrix, Zulip, Cisco Webex, and generic webhooks. The generated status page displays service groups organized by category with real-time replica status, system load metrics from reporter probes, and a maintenance announcement system for communicating planned downtime through the Manager HTTP API. Configuration uses a single TOML file defining all probes, services, and notification channels with no database dependency. Docker deployment pulls the official image with volume-mounted configuration. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. MPL-2.0 licensed.