A tool for sending Gancio event notifications.
  • Go 71.4%
  • JavaScript 21.5%
  • HTML 6.8%
  • Dockerfile 0.3%
Find a file
2026-02-06 11:24:04 +01:00
.vscode pretify_alert_message (#77) 2026-01-04 00:45:21 +01:00
doc Improve dashboard doc (#92) 2026-02-05 10:20:28 +01:00
sample_configs event_handling (#79) 2026-01-09 13:39:32 +01:00
src Allow up to 1 minute tolerance for events notification (#94) 2026-02-06 11:24:04 +01:00
test event_handling (#79) 2026-01-09 13:39:32 +01:00
.gitignore pretify_alert_message (#77) 2026-01-04 00:45:21 +01:00
Dockerfile remove leftovers from Dockerfile 2025-06-29 10:53:54 +02:00
go.mod new/change_scheduler (#78) 2026-01-07 15:16:15 +01:00
go.sum new/change_scheduler (#78) 2026-01-07 15:16:15 +01:00
LICENSE Initial commit 2025-06-21 12:34:58 +02:00
main.go Implement scheduler persistence (#90) 2026-01-30 13:24:11 +01:00
README.md Improve dashboard doc (#92) 2026-02-05 10:20:28 +01:00

gancio.notification

A tool for sending Gancio event notifications.

This is intended to be a dumb tool that fetches Gancio events for the current day through its API and sends a formatted digest of events through various notification channels. As of now it supports:

  • Telegram
  • IRC
  • Mastodon

Building

  • To build the project in your development environment run:
go build -ldflags="-s -w" -o gancio.notification
  • To build a Docker image (even outside of a working Go development environment):
docker build -t gancio.notification .

Configuration

Note

Environment variables override the values in config file

Usage

  • With env file:
set -a && . /path/to/.env && set +a && ./gancio.notification
  • With config file:
./gancio.notification /path/to/config.json
  • Setting/overriding individual options:
LOG_LEVEL="debug" ./gancio.notification /path/to/config.json

Docker

  • use docker run:
docker run -d \
--name gancio.notification \
-v /path/to/config.json:/etc/config.json \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
gancio.notification:latest /etc/config.json

API and Dashboard

An HTTP server is automatically started to serve a REST API and a web dashboard for most common operations:

  • Sending custom service messages to channels (e.g. for maintainance, important news or alerts)
  • Marking and unmarking events as Important: important events will be notified daily regardless of their start date, until they are over
  • Controlling the scheduler times and status

Default port is 8080 unless changed via HTTP_ADDR env variable.

  • REST API is available at /api (for now check routes.go for an overview of the endpoints).
  • Web dashboard is available at /.