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/clitool for quick message pushes. - Cross‑platform Android client – Push notifications on mobile devices via a dedicated app.
Technical Stack
| Layer | Technology |
|---|---|
| Language | Go 1.20+ (compiled binary) |
| Web Framework | Standard library net/http with Gorilla WebSocket for real‑time channels |
| Database | SQLite (embedded) or PostgreSQL (production) accessed via gorm ORM |
| Template Engine | Go’s html/template for the web UI (React/Vite front‑end bundled) |
| Containerization | Official Docker image (gotify/server) with multi‑stage build; supports ARM and x86_64 |
| CI/CD | GitHub 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.
- CLI –
gotify-clican 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
.sofile 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/docscover 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
| Scenario | Why Gotify? |
|---|---|
| Internal alerting | Push build failures or infra alerts to team devices without external services. |
| IoT dashboards | Real‑time sensor data delivered to web clients via WebSocket. |
| Custom push notifications | Android app receives instant alerts for a proprietary workflow (e.g., ticketing system). |
| Self‑hosted chat | Lightweight group messaging for small teams, with full control over data residency. |
| Webhook bridge | Receive 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
Related Apps in apis-services
Mastodon
Decentralized, real‑time social networking
Discourse
Open‑source community forum platform with real‑time chat and AI
Rocket.Chat
Secure, open‑source team communication platform
Novu
Unified notification platform for multi‑channel delivery
Mattermost
Secure, self‑hosted team collaboration with chat, voice, and AI
Jitsi Meet
Free, encrypted video conferencing for everyone
Weekly Views
Repository Health
Information
Explore More Apps
Jelu
Self‑hosted personal Goodreads for books and authors
FlowFuse
Collaborative, secure Node-RED dev and deployment platform
SnappyMail
Fast, lightweight webmail for modern browsers

Castopod
Self-hosted podcast platform with social interaction
AnythingLLM
All-in-one AI app for local, privacy‑first document chat and agents
Koillection
Self‑hosted collection manager for books, DVDs, stamps and more