Convert Figma logo to code with AI

gotify logoserver

A simple server for sending and receiving messages in real-time per WebSocket. (Includes a sleek web-ui)

12,205
656
12,205
71

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!)

11,850

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:

  1. Download the latest release from the GitHub repository.
  2. Run the server using Docker:
docker run -p 80:80 -v /var/gotify/data:/app/data gotify/server
  1. Access the web interface at http://localhost and create an admin account.
  2. Create a new application in the web interface to obtain a token.
  3. Send a test message using curl:
curl "http://localhost/message?token=<app-token>" -F "title=Test" -F "message=Hello Gotify"
  1. 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.

11,850

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

gotify/server

Build Status codecov Go Report Card Matrix Docker Pulls latest release

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

Gotify UI screenshot
  • 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

Get it on Google Play Get it on F-Droid

(Google Play and the Google Play logo are trademarks of Google LLC.)


Documentation

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