A web application to collect and display notifications from systems, services, and build pipelines.
  • CSS 85%
  • Go 11%
  • Go Template 2.4%
  • Makefile 1%
  • JavaScript 0.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-11-05 13:22:24 +11:00
static asserts can fail this run 2026-11-05 13:22:24 +11:00
templates reload page based on optional query string parameter 2026-11-03 11:12:15 +11:00
.gitignore initial commit 2026-10-31 13:44:42 +11:00
.golangci.yml initial commit 2026-10-31 13:44:42 +11:00
go.mod initial regression tests 2026-11-04 00:12:53 +11:00
go.sum limit events by category 2026-11-01 21:43:14 +11:00
LICENSE initial commit 2026-10-31 13:44:42 +11:00
main.go disabled inspection 2026-11-05 13:20:20 +11:00
main_test.go run embedded checks closer to content 2026-11-04 10:27:08 +11:00
Makefile initial regression tests 2026-11-04 00:12:53 +11:00
README.md add releases 2026-11-03 22:19:22 +11:00
screenshot-dark.png add light mode screenshot 2026-11-02 18:59:36 +11:00
screenshot-light.png add light mode screenshot 2026-11-02 18:59:36 +11:00

notifier

A web application to collect and display notifications from systems, services, and build pipelines. It exists as a self-hosted stepping-stone between dumb email alerts via AWS SNS and the quite excellent ntfy notification service.

This application should NOT be exposed directly to the internet as it lacks HTTPS support and does not have any access control restrictions. It should be placed as a reverse proxy backend behind a proper web server such as Caddy where you can apply HTTPS and appropriate request filters.

Sending an event

An event notification is an HTTP POST request that contains an event form parameter. You can even send a notification with curl.

curl --silent --show-error --fail-with-body \
  --data-urlencode 'event=Deployed version v1.0.2' \
  --data-urlencode $'description=Deployed tag: v1.0.2\nPrevious tag: v1.0.1\n' \
  --data-urlencode 'category=Deployment' \
  http://localhost:3000/events

You can use optional category and description form parameters to provide more context for your events when they are viewed in the UI.

Viewing events

When running locally, you can navigate to http://localhost:3000/events?reload=1 to see all collected events as a server-rendered HTML page.

Dark mode screenshot of notifier showing two events.

Light mode screenshot of notifier showing two events.

Server configuration

Usage of ./target/notifier:
  -addr string
    	Server listen address (default "127.0.0.1:3000")
  -db string
    	Path to database file (default "notifier.db")
  -json
    	Use JSON format for structured log output
  -version
    	Show version and exit

Installation

Download latest stable release.

Or, build it yourself with go 1.27+

go install codeberg.org/tomcz/notifier@latest