explaingit

gotify/server

Analysis updated 2026-06-24

14,989GoAudience · ops devopsComplexity · 3/5LicenseSetup · easy

TLDR

Self-hosted push notification server in Go: programs POST messages over REST, and the web UI or Android app receives them live over WebSocket.

Mindmap

mindmap
  root((gotify-server))
    Inputs
      REST messages
      App tokens
      User accounts
    Outputs
      WebSocket push
      Web UI alerts
      Android notifications
    Use Cases
      Self host push
      Alert from cron jobs
      Notify from CI
    Tech Stack
      Go
      WebSocket
      Docker
      SQLite
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Self-host a push notification service instead of using a commercial cloud one

USE CASE 2

Send alerts from cron jobs or shell scripts to your phone via the Android app

USE CASE 3

Pipe CI build failure messages to a single dashboard

USE CASE 4

Hand out per-application tokens so each service has its own message stream

What is it built with?

GoWebSocketDockerSQLiteReact

How does it compare?

gotify/serverv2raya/v2rayapuerkitobio/goquery
Stars14,98915,03414,938
LanguageGoGoGo
Setup difficultyeasymoderateeasy
Complexity3/53/52/5
Audienceops devopsops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 30min

Single Docker image plus a reverse proxy with TLS, the Android app needs a public HTTPS endpoint to receive push reliably.

MIT License lets you use, modify, and ship Gotify in personal or commercial projects as long as the original copyright notice is included.

In plain English

Gotify Server is a self-hosted message and notification server written in Go. The idea is that you run it on your own machine or virtual server, and other programs send short messages to it over a REST API. Anything connected to the same server, such as the official Android app or the web interface, then receives those messages in real time over a WebSocket connection. The README says the project started because the authors wanted something simple and open source for this job, and most existing options were either abandoned or were commercial push services they could not self-host. The feature list in the README is short. You can send messages via the REST API and receive them via WebSocket. The server lets you manage users, the client devices that connect to it, and applications, which are the named sources that send the messages. There is a plugin system documented on the project website, a web interface bundled with the server in the ui folder, a separate command-line tool in the gotify/cli repository for sending messages from a shell, and an Android app in the gotify/android repository. The Android app is published on Google Play and on F-Droid. Documentation, install steps, configuration reference, and the REST API description all live on the project website at gotify.net. The README simply links out to those pages rather than repeating them. Docker images are published on Docker Hub, and tagged releases are available on GitHub. Contributions of bug reports, feature requests, documentation, and UI work are welcomed, with guidelines in a CONTRIBUTING.md file in the repository. The project follows semantic versioning for its tags. The license is the MIT License. Community chat is on Matrix in the gotify room, and continuous integration runs through GitHub Actions with code coverage reported through Codecov and a Go Report Card badge linked from the README.

Copy-paste prompts

Prompt 1
Run gotify server in Docker behind nginx with HTTPS and a persistent SQLite volume
Prompt 2
Write a bash one-liner that posts a backup-finished message to Gotify
Prompt 3
Connect a Python script to Gotify over WebSocket and react to incoming messages
Prompt 4
Create separate Gotify applications for cron, Grafana, and CI with their own tokens
Prompt 5
Install the Gotify Android app from F-Droid and pair it with my self-hosted server

Frequently asked questions

What is server?

Self-hosted push notification server in Go: programs POST messages over REST, and the web UI or Android app receives them live over WebSocket.

What language is server written in?

Mainly Go. The stack also includes Go, WebSocket, Docker.

What license does server use?

MIT License lets you use, modify, and ship Gotify in personal or commercial projects as long as the original copyright notice is included.

How hard is server to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is server for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.