# gotify/server

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/gotify-server).**

14,654 stars · 803 forks · Go · other

## Links

- GitHub: https://github.com/gotify/server
- Homepage: https://gotify.net
- awesome-repositories: https://awesome-repositories.com/repository/gotify-server.md

## Topics

`api` `cloud` `free-software` `golang` `gotify` `hosting` `javascript` `notifications` `privacy` `react` `self-hosted` `self-hosting` `selfhosted`

## Description

Gotify is a self-hosted notification server designed to centralize the receipt and dispatch of real-time messages. It provides a RESTful API and a WebSocket gateway, allowing users to programmatically send alerts and push notifications to connected clients. By maintaining a private infrastructure, the platform ensures full control over message history, data retention, and access management.

The system distinguishes itself through a modular, plugin-based architecture that allows for the extension of core functionality, including custom HTTP endpoints and webhook event processing. It supports granular control over system resources through token-based authentication and role-based permissions, ensuring that message visibility is restricted to authorized applications and users.

The platform includes comprehensive tools for managing notification delivery, such as rich media support, metadata handling, and interaction triggers. It also incorporates built-in traffic management features, including path-based routing and SSL termination, to simplify deployment and secure communication.

The server is distributed as a standalone binary and supports containerized deployment, with all frontend assets embedded directly into the executable to minimize external dependencies. It utilizes a relational database to ensure persistent storage of application state and message history across service restarts.

## Tags

### Networking & Communication

- [Push Notification Servers](https://awesome-repositories.com/f/networking-communication/push-notification-servers.md) — Acts as a centralized self-hosted server for dispatching real-time push notifications via a simple HTTP API.
- [Real-time Notification Broadcasters](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/real-time-notification-broadcasters.md) — Delivers real-time push notifications to connected clients using persistent WebSocket connections.
- [Push Notification Providers](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/notification-delivery-services/push-notification-providers.md) — Transmits messages to registered clients using application tokens for secure and reliable push delivery. ([source](https://gotify.net/docs/))
- [WebSocket Services](https://awesome-repositories.com/f/networking-communication/websocket-services.md) — Maintains persistent WebSocket connections to deliver instant alerts and messages to connected clients.
- [Notification Plugin Development](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/notification-delivery-services/notification-plugin-development.md) — Provides a plugin-based architecture to extend core functionality with custom logic and external integrations.
- [Incoming Webhooks](https://awesome-repositories.com/f/networking-communication/incoming-webhooks.md) — Exposes dedicated endpoints for receiving and processing incoming webhook events from external services. ([source](https://gotify.net/docs/plugin-write))
- [Traffic Proxying](https://awesome-repositories.com/f/networking-communication/traffic-proxying.md) — Forwards incoming web traffic to internal services while maintaining persistent connections for real-time communication. ([source](https://gotify.net/docs/apache))
- [Messaging and Notification Systems](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems.md) — Organizes notifications by source and tracks metadata to maintain a clear, persistent message history. ([source](https://gotify.net/docs/))

### Web Development

- [Real-Time Communication](https://awesome-repositories.com/f/web-development/real-time-communication.md) — Maintains persistent WebSocket connections to deliver real-time push notifications instantly to connected clients.
- [RESTful APIs](https://awesome-repositories.com/f/web-development/restful-apis.md) — Exposes a RESTful API for programmatic management of messages, application tokens, and user access.
- [Path-Based Routers](https://awesome-repositories.com/f/web-development/route-path-aliasing/path-based-routers.md) — Directs incoming traffic to services based on URL subpaths to support multiple applications under one domain. ([source](https://gotify.net/docs/nginx))
- [Reverse Proxy Integrations](https://awesome-repositories.com/f/web-development/reverse-proxy-integrations.md) — Integrates with reverse proxies to manage traffic routing, SSL termination, and secure communication. ([source](https://gotify.net/docs/caddy))
- [HTTP Route Handlers](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/web-infrastructure-servers/http-frameworks/http-route-handlers.md) — Provides custom HTTP route handlers to process incoming requests and trigger internal system logic. ([source](https://gotify.net/docs/plugin))
- [Extensible Web Servers](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/web-infrastructure-servers/http-servers/extensible-web-servers.md) — Extends server functionality through modular integrations that handle custom logic and external data processing. ([source](https://gotify.net/docs/plugin))

### DevOps & Infrastructure

- [Self-Hosted Infrastructure](https://awesome-repositories.com/f/devops-infrastructure/self-hosted-infrastructure.md) — Enables self-hosted notification infrastructure to maintain full control over message history and data retention.
- [Containerized Deployments](https://awesome-repositories.com/f/devops-infrastructure/containerized-deployments.md) — Supports containerized deployment for consistent application execution and persistent data storage. ([source](https://gotify.net/docs/install))
- [Containerized Service Deployment](https://awesome-repositories.com/f/devops-infrastructure/containerized-service-deployment.md) — Supports containerized deployment to ensure consistent performance and simplified management across different environments.
- [Edge Traffic Management](https://awesome-repositories.com/f/devops-infrastructure/edge-traffic-management.md) — Handles incoming encrypted traffic at the network edge to simplify backend service management and secure communication. ([source](https://gotify.net/docs/nginx))
- [Reverse Proxies](https://awesome-repositories.com/f/devops-infrastructure/reverse-proxies.md) — Supports reverse proxy traffic termination to handle encrypted connections and simplify backend service management.
- [Standalone Binaries](https://awesome-repositories.com/f/devops-infrastructure/standalone-binaries.md) — Distributes the server as a standalone binary to simplify deployment across diverse hardware and operating systems. ([source](https://gotify.net/docs/install))

### Data & Databases

- [Relational Database Persistence](https://awesome-repositories.com/f/data-databases/relational-database-persistence.md) — Uses relational database persistence to ensure reliable storage of application state and message history.

### Security & Cryptography

- [SSL/TLS Certificate Management](https://awesome-repositories.com/f/security-cryptography/cryptography/ssl-tls-certificate-management.md) — Automates the acquisition and renewal of SSL/TLS certificates to ensure secure communication for the notification server. ([source](https://gotify.net/docs/caddy))
- [Application Access Controls](https://awesome-repositories.com/f/security-cryptography/application-access-controls.md) — Registers applications and generates unique authentication tokens to restrict message visibility. ([source](https://gotify.net/docs/pushmsg))
- [Request Access Restrictions](https://awesome-repositories.com/f/security-cryptography/domain-access-restrictions/request-access-restrictions.md) — Enforces token-based access control to restrict system resource visibility to authorized applications and users.
- [Role-Based Access Control](https://awesome-repositories.com/f/security-cryptography/role-based-access-control.md) — Enforces role-based access control to manage permissions for sending and managing messages. ([source](https://gotify.net/docs/))
- [User Account Management](https://awesome-repositories.com/f/security-cryptography/user-account-management.md) — Provides comprehensive user account management for controlling access levels and maintaining distinct credentials. ([source](https://gotify.net/docs/first-login))

### Software Engineering & Architecture

- [Extensible Plugin Architectures](https://awesome-repositories.com/f/software-engineering-architecture/extensible-plugin-architectures.md) — Implements a modular plugin architecture to allow dynamic extension of core server capabilities.
- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures.md) — Implements a modular plugin architecture that allows dynamic extension of core functionality at runtime.

### User Interface & Experience

- [Notification Media](https://awesome-repositories.com/f/user-interface-experience/media-embeds/notification-media.md) — Supports embedding large images directly within notifications to provide visual context to the recipient. ([source](https://gotify.net/docs/msgextras))
- [Interaction Handlers](https://awesome-repositories.com/f/user-interface-experience/notifications/interaction-handlers.md) — Handles user interactions like opening URLs or triggering system intents when notifications are received. ([source](https://gotify.net/docs/msgextras))
