SkillsApr 16, 2026·3 min read

Gotify — Self-Hosted Push Notification Server

Gotify is a simple, self-hosted push notification server with a REST API, real-time WebSocket delivery, and a web UI plus Android app for receiving alerts.

Agent ready

Safe staging for this asset

This asset is staged first. The copied prompt tells the agent to inspect the staged files and ask before activating scripts, MCP config, or global config.

Stage only · 29/100Policy: stage
Agent surface
Any MCP/CLI agent
Kind
Skill
Install
Stage only
Trust
Trust: Established
Entrypoint
Gotify Overview
Safe staging command
npx -y tokrepo@latest install cfc426e7-39c1-11f1-9bc6-00163e2b0d79 --target codex

Stages files first; activation requires review of the staged README and plan.

TL;DR
Gotify delivers push notifications through a REST API and WebSocket with a web UI and Android app, fully self-hosted.
§01

What it is

Gotify is a self-hosted push notification server written in Go. It provides a REST API for sending notifications, real-time WebSocket delivery for receiving them, a web UI for management, and an Android app for mobile alerts. It is MIT licensed and designed to be simple to deploy and operate.

Gotify serves developers and sysadmins who need a private notification channel for server alerts, CI/CD events, cron job results, or any automated messaging without relying on third-party services.

§02

How it saves time or tokens

Gotify replaces complex notification setups (email servers, Slack webhooks, SMS gateways) with a single self-hosted service and a one-line curl command. No external accounts, no API quotas, no per-message costs.

§03

How to use

  1. Deploy with Docker:
docker run -d --name gotify -p 8080:80 \
  -v gotify-data:/app/data \
  gotify/server
  1. Open http://localhost:8080, log in with default credentials, and create an application token.
  2. Send a notification:
curl -X POST 'http://localhost:8080/message?token=YOUR_TOKEN' \
  -F 'title=Alert' \
  -F 'message=Deployment complete' \
  -F 'priority=5'
§04

Example

# Deploy Gotify
docker run -d --name gotify -p 8080:80 \
  -v gotify-data:/app/data gotify/server

# Send a notification via REST
curl -X POST 'http://localhost:8080/message?token=APP_TOKEN' \
  -F 'title=Build Status' \
  -F 'message=Build #42 passed' \
  -F 'priority=5'
§05

Related on TokRepo

Key considerations

When evaluating Gotify for your workflow, consider the following factors. First, assess whether your team has the technical prerequisites to adopt this tool effectively. Second, evaluate the maintenance burden against the productivity gains. Third, check community activity and documentation quality to ensure long-term viability. Integration with your existing toolchain matters more than feature count alone. Start with a small pilot project before rolling out across the organization. Monitor resource usage during the initial adoption phase to identify bottlenecks early. Document your configuration decisions so team members can onboard independently.

§06

Common pitfalls

  • The default admin password should be changed immediately after first login; leaving it exposes your notification server.
  • WebSocket connections through reverse proxies (Nginx, Caddy) require proper upgrade headers; misconfiguration causes dropped connections.
  • The Android app is not on Google Play; install it from F-Droid or the GitHub releases page.

Frequently Asked Questions

Is there an iOS app for Gotify?+

There is no official iOS app. iOS push notifications require Apple Push Notification Service, which complicates self-hosted solutions. Community workarounds include using the web UI or third-party bridging apps.

Can I use Gotify with monitoring tools?+

Yes. Tools like Prometheus Alertmanager, Grafana, and custom scripts can send alerts to Gotify via its REST API. Any system that can make HTTP POST requests can push notifications.

How do I secure Gotify for public access?+

Put Gotify behind a reverse proxy (Nginx or Caddy) with HTTPS. Use strong application tokens and change the default admin password. Optionally restrict access by IP or add HTTP basic auth at the proxy level.

Does Gotify support message formatting?+

Gotify supports Markdown formatting in messages when the content type is set to 'text/markdown'. The web UI and Android app render formatted text, links, and basic styling.

What database does Gotify use?+

Gotify uses SQLite by default, stored in the data volume. This is sufficient for most personal and small-team use cases. There is no built-in support for external databases like PostgreSQL.

Citations (3)

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets