Niklas Ye c3348a410a Stage 4: alert acknowledgement and comments
- Migration 004: acknowledged_by/acknowledged_at columns on alerts,
  alert_comments table (FK cascade on delete)
- POST /api/alerts/{id}/acknowledge — stamps authed user + timestamp,
  returns updated alert with acknowledged_by username
- DELETE /api/alerts/{id}/acknowledge — clears ack (204)
- GET /api/alerts/{id}/comments — list in chronological order
- POST /api/alerts/{id}/comments — add comment (returns 201)
- DELETE /api/alerts/{id}/comments/{commentID} — own comments only (204)
- All alert queries now LEFT JOIN users for ack username
2026-05-20 21:57:11 +02:00

Terminal Duty

Terminal Duty(termdut) is a server that helps teams manage alerts, oncall schedules etc.

  • The app will integrate with alertmanager(prometheus alertmanager), as a receiver of alertmanager webhooks without the need for adapters.
  • Incoming alerts will be logged to a database(postgres or sqlite).
  • Alerts can be marked as "acknowledged", when someone is already working on it.
  • Comments can be added to alerts, such as solutions, tips or actions.
  • Statistics can be produced for the alerts in the database, such as most common alert, most busy times of the day/week etc.
  • The server exposes a rest-api, where users, schedules, alerts etc can be managed.
  • Alerts will be received from alertmanager with no authentication initially.
  • The exposed api however(besides receiving alert from alertmanager) needs authentication.
  • Authentication is managed on a user basis, each user has his or her own credentials, these are stored hashed in the database.
  • Each user can be assigned to time slots in the oncall-schedule.
  • The smallest unit of time managed in the schedule is a day. This may change later.
  • The server is written in golang
S
Description
Incident management server for teams using Prometheus Alertmanager
Readme GPL-3.0 2.5 MiB
v0.32.0 Latest
2026-09-27 20:09:59 +00:00
Languages
Go 68.5%
JavaScript 23.4%
CSS 5.2%
Makefile 1.5%
HTML 1%
Other 0.4%