server
A simple server for sending and receiving messages in real-time per WebSocket. (Includes a sleek web-ui)
Top Related Projects
bridge between mattermost, IRC, gitter, xmpp, slack, discord, telegram, rocketchat, twitch, ssh-chat, zulip, whatsapp, keybase, matrix, microsoft teams, nextcloud, mumble, vk and more with REST API (mattermost not required!)
Synapse: Matrix homeserver written in Python/Twisted.
Mattermost is an open source platform for secure collaboration across the entire software development lifecycle..
Quick Overview
Gotify/server is an open-source, self-hosted push notification service. It allows users to send and receive messages through a simple API, providing a customizable and privacy-focused alternative to commercial push notification services.
Pros
- Self-hosted solution, offering complete control over data and infrastructure
- Simple and intuitive REST API for easy integration with various applications
- Supports multiple clients and applications, with user-based access control
- Lightweight and efficient, with minimal resource requirements
Cons
- Requires self-hosting and maintenance, which may be challenging for non-technical users
- Limited ecosystem compared to larger commercial push notification services
- May require additional setup for secure external access (e.g., reverse proxy, SSL)
- Documentation could be more comprehensive for advanced use cases
Getting Started
To get started with Gotify/server:
- Download the latest release from the GitHub repository.
- Run the server using Docker:
docker run -p 80:80 -v /var/gotify/data:/app/data gotify/server
- Access the web interface at
http://localhost
and create an admin account. - Create a new application in the web interface to obtain a token.
- Send a test message using curl:
curl "http://localhost/message?token=<app-token>" -F "title=Test" -F "message=Hello Gotify"
- Set up clients (e.g., mobile app, desktop app) to receive notifications.
For more detailed instructions and configuration options, refer to the official documentation on the GitHub repository.
Competitor Comparisons
bridge between mattermost, IRC, gitter, xmpp, slack, discord, telegram, rocketchat, twitch, ssh-chat, zulip, whatsapp, keybase, matrix, microsoft teams, nextcloud, mumble, vk and more with REST API (mattermost not required!)
Pros of Matterbridge
- Supports a wide range of chat platforms and protocols, enabling cross-platform communication
- Highly configurable with extensive options for message formatting and routing
- Active development with frequent updates and new feature additions
Cons of Matterbridge
- More complex setup and configuration compared to Gotify's simpler approach
- Higher resource usage due to supporting multiple protocols and platforms
- Potential for increased latency when bridging messages across different services
Code Comparison
Matterbridge (config.toml):
[general]
[mattermost]
[slack]
[discord]
[telegram]
Gotify (config.yml):
server:
port: "80"
database:
dialect: "sqlite3"
connection: "data/gotify.db"
Summary
Matterbridge excels in connecting multiple chat platforms, offering extensive configuration options for complex setups. Gotify, on the other hand, focuses on providing a simple, self-hosted push notification service with a more straightforward configuration. While Matterbridge is ideal for organizations using various communication tools, Gotify is better suited for those seeking a lightweight, dedicated notification solution.
Synapse: Matrix homeserver written in Python/Twisted.
Pros of Synapse
- More feature-rich and versatile, supporting a wide range of communication types (chat, voice, video)
- Federated architecture allows for decentralized communication across different servers
- Larger and more active community, with extensive third-party client support
Cons of Synapse
- More complex to set up and maintain due to its extensive feature set
- Higher resource requirements, potentially less suitable for small-scale deployments
- Steeper learning curve for both administrators and users
Code Comparison
Synapse (Python):
class FederationServlet(servlet.ServletBase):
def __init__(self, hs):
super(FederationServlet, self).__init__()
self.hs = hs
self.federation_handler = hs.get_federation_handler()
Gotify (Go):
func (a *InternalAPI) CreateMessage(msg *model.Message) error {
msg.ID = 0
msg.Date = timeNow()
return a.DB.CreateMessage(msg)
}
The code snippets highlight the different languages and approaches used in each project. Synapse uses Python and focuses on federation handling, while Gotify uses Go and demonstrates a simpler message creation process.
Mattermost is an open source platform for secure collaboration across the entire software development lifecycle..
Pros of Mattermost
- More comprehensive collaboration features, including team messaging, file sharing, and video calls
- Larger community and ecosystem, with extensive integrations and plugins
- Enterprise-grade security and compliance features
Cons of Mattermost
- Higher resource requirements and more complex setup
- Steeper learning curve for users and administrators
- Potentially overwhelming for simple notification needs
Code Comparison
Mattermost (Go):
func (a *App) CreatePost(c *request.Context, post *model.Post, channel *model.Channel, triggerWebhooks bool, setOnline bool) (savedPost *model.Post, err *model.AppError) {
// Post creation logic
}
Gotify Server (Go):
func (a *InternalAPI) CreateMessage(ctx context.Context, msg *model.MessageExternal) (*model.Message, error) {
// Message creation logic
}
Both projects use Go and follow similar patterns for creating messages/posts. Mattermost's implementation is more complex due to its broader feature set, while Gotify Server's approach is simpler and focused on notifications.
Gotify Server is a lightweight push notification service, ideal for self-hosted environments with basic notification needs. Mattermost is a full-featured team collaboration platform, offering a wide range of communication tools beyond simple notifications.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
gotify/server
Intro
We wanted a simple server for sending and receiving messages (in real time per WebSocket). For this, not many open source projects existed and most of the existing ones were abandoned. Also, a requirement was that it can be self-hosted. We know there are many free and commercial push services out there.
Features

- send messages via REST-API
- receive messages via WebSocket
- manage users, clients and applications
- Plugins
- Web-UI -> ./ui
- CLI for sending messages -> gotify/cli
- Android-App -> gotify/android
(Google Play and the Google Play logo are trademarks of Google LLC.)
Install á« Configuration á« REST-API á« Setup Dev Environment
Contributing
We welcome all kinds of contribution, including bug reports, feature requests, documentation improvements, UI refinements, etc. Check out CONTRIBUTING.md for guidelines.
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
License
This project is licensed under the MIT License - see the LICENSE file for details
Top Related Projects
bridge between mattermost, IRC, gitter, xmpp, slack, discord, telegram, rocketchat, twitch, ssh-chat, zulip, whatsapp, keybase, matrix, microsoft teams, nextcloud, mumble, vk and more with REST API (mattermost not required!)
Synapse: Matrix homeserver written in Python/Twisted.
Mattermost is an open source platform for secure collaboration across the entire software development lifecycle..
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot