-
Notifications
You must be signed in to change notification settings - Fork 0
Home
deannos edited this page Apr 26, 2026
·
1 revision
Welcome to the NotifyQ wiki. NotifyQ is a self-hosted push notification server — send notifications from any service via a simple HTTP API and receive them in real time over WebSockets or the built-in web dashboard.
Module: github.com/deannos/notification-queue
Language: Go 1.25 · CGO required (SQLite driver)
License: MIT
| Page | What you will find |
|---|---|
| Installation | Local build, Docker, Docker Compose — step by step |
| Configuration | Every environment variable with defaults and examples |
| API Reference | All endpoints, request/response schemas, error codes |
| Deployment | Production hardening, reverse proxy, Kubernetes |
| Development Guide | Local dev setup, architecture, contribution workflow |
| Roadmap | Phased plan from SQLite monolith to distributed stack |
Any service
│
│ POST /message
│ X-App-Token: <token>
▼
┌─────────────────────────────────────────┐
│ NotifyQ server │
│ │
│ REST API ──► Notification store │
│ (Gin + GORM/SQLite) │
│ │ │
│ ▼ │
│ WebSocket Hub │
│ (per-user broadcast) │
└────────────────────┬────────────────────┘
│ real-time push
┌──────────┴──────────┐
Browser Any WS client
(web dashboard)
-
Applications — logical senders. Each app gets a unique 64-char hex token used to authenticate
POST /messagecalls. - Notifications — messages with a title, body, and priority (1–10). Stored in SQLite and pushed live over WebSocket.
- Users — human accounts that own apps and receive notifications. Admin users can manage all users.
- JWT tokens — issued on login; used for all read/manage API calls and WebSocket connections.
- WS tickets — short-lived (30 s) opaque tokens that replace JWTs in WebSocket URLs to avoid token leakage in logs.