MCPSERV.CLUB
Gotify

Gotify

Self-Hosted

Real‑time message server for self‑hosted push notifications

Active(90)
13.9kstars
1views
Updated 4 days ago

Overview

Discover what makes Gotify powerful

Gotify is a lightweight, self‑hosted messaging hub that exposes a RESTful API for pushing notifications and a WebSocket endpoint for real‑time consumption. Built in **Go**, it compiles to any platform and ships with a Docker image, making it straightforward to deploy in container‑centric environments. The server manages its own authentication realm—users, clients, and applications are all stored in a relational database (SQLite by default, with PostgreSQL support), allowing fine‑grained access control and token‑based API usage.

REST & WebSocket APIs

Multi‑tenant user model

Plugin architecture

Web UI & CLI

Overview

Gotify is a lightweight, self‑hosted messaging hub that exposes a RESTful API for pushing notifications and a WebSocket endpoint for real‑time consumption. Built in Go, it compiles to any platform and ships with a Docker image, making it straightforward to deploy in container‑centric environments. The server manages its own authentication realm—users, clients, and applications are all stored in a relational database (SQLite by default, with PostgreSQL support), allowing fine‑grained access control and token‑based API usage.

Key Features

  • REST & WebSocket APIs – Push messages via HTTP POST and receive them instantly over a persistent WebSocket connection.
  • Multi‑tenant user model – Separate users, clients (e.g., web or mobile apps), and applications (message scopes) with role‑based permissions.
  • Plugin architecture – Extend core functionality by writing Go plugins that hook into request/response pipelines, authentication, or message handling.
  • Web UI & CLI – A single‑page React UI for administration and a gotify/cli tool for quick message pushes.
  • Cross‑platform Android client – Push notifications on mobile devices via a dedicated app.

Technical Stack

LayerTechnology
LanguageGo 1.20+ (compiled binary)
Web FrameworkStandard library net/http with Gorilla WebSocket for real‑time channels
DatabaseSQLite (embedded) or PostgreSQL (production) accessed via gorm ORM
Template EngineGo’s html/template for the web UI (React/Vite front‑end bundled)
ContainerizationOfficial Docker image (gotify/server) with multi‑stage build; supports ARM and x86_64
CI/CDGitHub Actions, automated Docker builds, Codecov, Go Report Card

Core Capabilities for Developers

  • Programmatic API – Full CRUD on messages, users, and applications; query parameters for filtering by priority or time.
  • WebSocket subscription – Receive JSON payloads with metadata (title, priority, image URL) in real time.
  • Webhook support – Configure outgoing HTTP callbacks for message events, enabling integration with external services.
  • Extensibility – Write Go plugins that implement interfaces for authentication, message validation, or custom routing.
  • CLIgotify-cli can be scripted to send alerts from CI pipelines or local scripts.

Deployment & Infrastructure

  • Self‑hosting – A single binary plus optional database; no external dependencies beyond Go runtime.
  • Scalability – Horizontal scaling is achieved by running multiple server instances behind a load balancer; WebSocket sessions are sticky or session‑aware via shared Redis (optional).
  • High availability – Persisted data in PostgreSQL allows database clustering; the server itself is stateless except for WebSocket connections.
  • Container support – Docker images are automatically built on every release; Helm charts available for Kubernetes deployments.
  • Resource footprint – Under 20 MB binary, <10 MiB RAM on startup; ideal for edge devices or small servers.

Integration & Extensibility

  • Plugins – Drop a .so file into the plugins directory; Gotify loads it at boot. Plugins can modify request headers, validate payloads, or inject custom logic into the message pipeline.
  • Webhooks – Register external URLs to receive POST requests when a new message arrives, facilitating integrations with Slack, Teams, or custom dashboards.
  • Custom UI – The front‑end is open source; developers can fork and modify the React codebase to fit their branding or add new features.
  • SDKs – Although not bundled, community‑written Go, Python, and JavaScript clients exist on GitHub.

Developer Experience

  • Configuration – YAML/JSON config files expose all tunable parameters (port, TLS certs, database DSN).
  • Documentation – Comprehensive docs at gotify.net/docs cover API spec, plugin development, and deployment guides.
  • Community – Active GitHub discussions, Matrix channel (#gotify:matrix.org), and a permissive MIT license encourage contributions.
  • Testing – Extensive unit and end‑to‑end tests run on every push; code quality is verified by static analyzers.

Use Cases

ScenarioWhy Gotify?
Internal alertingPush build failures or infra alerts to team devices without external services.
IoT dashboardsReal‑time sensor data delivered to web clients via WebSocket.
Custom push notificationsAndroid app receives instant alerts for a proprietary workflow (e.g., ticketing system).
Self‑hosted chatLightweight group messaging for small teams, with full control over data residency.
Webhook bridgeReceive messages from external APIs and forward them to internal dashboards or monitoring tools.

Advantages Over Alternatives

  • Zero‑cost, self‑hosted – No vendor lock‑in; MIT license removes licensing headaches.
  • Real‑time delivery – Web

Open SourceReady to get started?

Join the community and start self-hosting Gotify today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
apis-services
License
NOASSERTION
Stars
13.9k
Technical Specs
Pricing
Open Source
Database
SQLite
Docker
Official
Supported OS
LinuxWindowsmacOS
Author
gotify
gotify
Last Updated
4 days ago