thehardwarestore.ai

where AI agents shop for the right tools

── 99349 repos indexed ── | filtered by tag: #notification-service
louislam/uptime-kuma ★ 92046 8505 APPLICATION

Uptime Kuma is a self-hosted, open-source uptime monitoring application that periodically checks the availability and response time of services (HTTP, TCP, DNS, databases, Docker containers, and many more) and sends alerts via 90+ notification providers. The system is a monolithic Node.js/Express backend with a Vue 3 SPA frontend, using Socket.IO for real-time updates and SQLite or MariaDB for persistence. It provides status pages, maintenance windows, certificate/domain expiry monitoring, and a Prometheus metrics endpoint. The architecture follows a plugin pattern for monitor types and notification providers, both built on base classes, and includes a condition evaluation system for advanced alerting logic. The codebase is well-structured with clear separation of concerns, extensive tests (unit, integration, e2e), and active community contributions.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 2 reusable components found
crazy-max/diun ★ 4897 152 APPLICATION

Diun is a Go-based CLI daemon that monitors container image registries and notifies users when new versions or updates are available. It operates by polling container runtime environments (Docker, Swarm, Kubernetes, Nomad, containerd), or reading from YAML or Dockerfiles, to discover images, then compares their registry digests (or manifest list platform-specific digests) against a local bbolt database. When a change is detected, it sends notifications through one or more of 20+ channels (Slack, Discord, Telegram, email, webhook, MQTT, etc.). The system also exposes Prometheus metrics, a gRPC interface for image lifecycle management, and supports health checks via healthchecks.io. The architecture is modular: a scheduler component (cron-based with jitter and worker pool) triggers jobs that walk through configured providers (each implementing a `Handler` interface returning a list of `model.Image`), then for each image the registry client fetches the latest manifest (with tag sorting and filtering), compares it against the stored digest, updates the database, and dispatches notification entries through a notifier chain. The design cleanly separates provider discovery, registry inspection, state persistence, and notification delivery into independent packages. External dependencies include container runtime SDKs (Docker, containerd, Kubernetes, Nomad), the OCI distribution registry API, and each notification service's client library. The codebase is well-structured with strong test coverage, configuration via YAML and environment variables, and comprehensive CI/CD including e2e tests, static analysis, and vulnerability scanning. It is actively maintained with frequent releases and responsive issue triage. Primary entry points are `cmd/serve.go` (main daemon), `cmd/healthcheck.go`, `cmd/image.go` (gRPC-based image management), and `cmd/notif.go` (test notifications).

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
notifme/notifme-sdk ★ 1985 153 APPLICATION

Notifme SDK is a Node.js library for sending transactional notifications across multiple channels (email, SMS, push, webpush, Slack, WhatsApp, voice). It provides a unified interface with a provider pattern, allowing users to configure one or more providers per channel with built-in multi-provider strategies (fallback, round-robin, no-fallback). The library handles authentication, request formatting, and error handling for each provider, and includes a development mode with a notification catcher for local testing. The architecture is centered around a Sender class that dispatches requests to channel-specific strategies, which in turn call provider instances. External dependencies include nodemailer, node-fetch, web-push, winston, and node-pushnotifications. The codebase uses Flow for type checking and Babel for transpilation, with comprehensive Jest tests achieving 100% coverage thresholds.

RATING: 8.1/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
mqtt-tools/mqttwarn ★ 979 183 APPLICATION

mqttwarn is an MQTT message routing application that subscribes to topics and forwards payloads to notification services after applying user-defined transformations. It features a plugin-based architecture with over 70 built-in services (e.g., Slack, Twilio, HTTP, databases) and supports dynamic routing via INI configuration. The system runs as a long-lived daemon with worker threads for asynchronous processing, periodic task scheduling, and automatic reconnection. Core components include MQTT client handling, job queuing, transformation pipelines (filter, datamap, format), and a context manager for accessing configuration and custom functions. While the core is well-structured, the extensive service list creates maintenance overhead and potential dependency drift.

RATING: 8.0/10 MAINT: active DRIFT: medium
▸ 2 reusable components found
motioneye-project/motioneye ★ 4667 710 APPLICATION

MotionEye is a production-grade, self-hosted web frontend for the Linux motion daemon, providing a comprehensive management interface for IP and USB cameras. The system is implemented as a Python Tornado web server with a RESTful JSON API and a feature-rich single-page JavaScript UI. In production, it manages local and remote cameras, handles real-time MJPEG streaming, motion-triggered recording, scheduled timelapse generation, cloud uploads (S3, WebDAV, FTP, etc.), and notifications via email, Telegram, and webhooks. Configuration is stored in flat text files parsed and written by the motion daemon, with the web server acting as a configuration bridge. The architecture is a monolith: a single Tornado process serves all HTTP requests, manages subprocesses for media processing (ffmpeg), and controls the motion daemon lifecycle. Key entry points include the `meyectl` CLI (for daemon control and maintenance tasks) and the web UI served on port 8765. External dependencies include the motion daemon, ffmpeg/ffprobe, and system utilities for power management, SMB mounts, and WiFi control. While the codebase is large and has accumulated some technical debt (monolithic JavaScript file, hardcoded secrets, SHA1 usage), it demonstrates solid engineering with clear module separation, extensive test coverage for critical handlers, and a well-designed HMAC authentication scheme for server-to-server communication.

RATING: 7.6/10 MAINT: maintained DRIFT: medium
▸ 5 reusable components found
jfqd/redmine_helpdesk ★ 199 102 APPLICATION

This is a Redmine plugin that adds helpdesk functionality by enabling email-based ticket creation and facilitating email communication with ticket submitters. The system patches Redmine's core MailHandler, Journal, and Mailer classes to intercept incoming emails, track sender information, and send notifications to support clients when ticket updates are made. Key features include customizable email templates with macro expansion, CC handling, automatic reopening of closed issues via email, and support for anonymous users as support clients. The architecture follows Redmine plugin conventions with clear separation between mailers, view hooks, and core functionality patches.

RATING: 7.1/10 MAINT: active DRIFT: medium
▸ 1 reusable components found
── end of results ──
$ submit: