Gotify screenshot thumbnail

Gotify

Real-time alerts from your own infrastructure to your phone, with no Firebase, Pushover, or third-party push service in the path: Gotify is a simple, self-hosted notification server written in Go. The model is deliberately minimal: senders push messages with a single HTTP POST to the REST API, receivers subscribe over a WebSocket stream, and a clean React web UI manages the pieces. Senders are namespaced as "applications," each with its own token, so your backup script, Uptime Kuma, CI pipeline, and cron jobs each get an identity, an icon, and independently revocable credentials - centralized alerting from many services with per-source management. Messages carry a title, body, and priority level that maps to notification importance on the client. The official Android app (on both F-Droid and Google Play, notable for working entirely without Google Play Services) shows push notifications for new messages; the web UI itself supports Web Push in the browser; and gotify/cli pushes messages from shell scripts with one command. A server-side plugin system adds custom behavior, and the whole thing runs as a single small binary with SQLite by default - near-zero resource footprint. Because dozens of tools (and Apprise) speak Gotify natively, it slots in as the notification hub for an entire homelab or ops stack.

Deploy
Ntfy screenshot thumbnail

Ntfy

ntfy sends push notifications to your phone or desktop with a single curl command: publish a message to any topic and every subscriber receives it instantly, no signup or API key required. Over 31,000 GitHub stars and 106 releases since 2021 back a server supporting five priority levels mapped to distinct notification sounds and vibration patterns, emoji tags for visual classification, click actions that open URLs when tapped, and up to three action buttons per notification for view, HTTP callback, broadcast, or clipboard copy operations. File attachments push images from surveillance cameras, documents, or any binary payload directly to mobile devices. Subscriptions work through JSON streams, Server-Sent Events, WebSockets, or raw text, with server-side filtering by priority, tags, and message ID. Authentication enforces topic-level access control through Basic Auth, Bearer tokens, or query parameters, with a built-in user and ACL management system. UnifiedPush compatibility lets ntfy serve as a push distributor for Mastodon, Matrix, and other federated services. Web Push via VAPID keys delivers browser notifications without the mobile app. The server ships as a single statically linked Go binary or Docker image supporting amd64, armv7, and arm64 architectures, consuming 30-50 MB RAM at idle with SQLite-backed message caching. Integrations include Grafana, Prometheus Alertmanager, Uptime Kuma, Home Assistant, and Ansible Semaphore. 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 / GPLv2 dual-licensed.

Deploy