⛳ alerts for any ctfd instance via ntfy
1# ⛳ CTFd alerts
2
3Sends alerts for any arbitrary [CTFd](https://ctfd.io/) instance via [ntfy](https://ntfy.sh/)
4
5
6
7## Install
8
9You can download a pre-built binary from the releases or you can use the following options
10
11### Go
12
13```bash
14# Go
15go install github.com/taciturnaxolotl/ctfd-alerts@latest
16```
17
18If you need a systemd service file there is one in `ctfd-alerts.service`
19
20### Nix
21
22```bash
23# Direct installation with flakes enabled
24nix profile install github:taciturnaxolotl/ctfd-alerts
25```
26
27For use in your own flake:
28
29```nix
30# In your flake.nix
31{
32 inputs.ctfd-alerts.url = "github:taciturnaxolotl/ctfd-alerts";
33
34 outputs = { self, nixpkgs, ctfd-alerts, ... }: {
35 # Access the package as:
36 # ctfd-alerts.packages.${system}.default
37 };
38}
39```
40
41## Config
42
43The config for the bot is quite simple. Create a `config.toml` file in the same directory as the binary (or link to the config location with `-c ./path/to/config/config.toml`) with the following format:
44
45```toml
46debug = true
47interval = 100 # defaults to 300 if unset
48user = "echo_kieran"
49
50[ctfd]
51api_base = "http://163.11.237.79/api/v1"
52api_key = "ctfd_10698fd44950bf7556bc3f5e1012832dae5bddcffb1fe82191d8dd3be3641393"
53
54[ntfy]
55api_base = "https://ntfy.sh/"
56acess_token = ""
57topic = "youralert"
58```
59
60Written in go. If you have any suggestions or issues feel free to open an issue on my [tangled](https://tangled.sh/@dunkirk.sh/ctfd-alerts) knot
61
62<p align="center">
63 <img src="https://raw.githubusercontent.com/taciturnaxolotl/carriage/master/.github/images/line-break.svg" />
64</p>
65
66<p align="center">
67 <i><code>© 2025-present <a href="https://github.com/taciturnaxolotl">Kieran Klukas</a></code></i>
68</p>
69
70<p align="center">
71 <a href="https://github.com/taciturnaxolotl/ctfd-alerts/blob/master/LICENSE.md"><img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&logoColor=d9e0ee&colorA=363a4f&colorB=b7bdf8"/></a>
72</p>