From 5f458868b03ea132476ce444c06dc222062a05f5 Mon Sep 17 00:00:00 2001 From: Niklas Ye Date: Wed, 20 May 2026 21:38:02 +0200 Subject: [PATCH] Initial commit: add README with project spec MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Terminal Duty (terdut-server) — on-call management server spec. --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..650c8f9 --- /dev/null +++ b/README.md @@ -0,0 +1,14 @@ +# 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