2.3 KiB
Ntfi
This is a daemon with the single purpose of centralizing credentials and configuration for pushing notifications to ntfy.sh or private instances of ntfy.
This daemon does not support subscriptions for now, only publishing.
Using
Bare metal (Linux):
$ cp config.dist.yaml config.yaml
$ editor config.yaml
$ ./ntfid.phar --config config.yaml
With Docker:
$ cp config.dist.yaml config.yaml
$ editor config.yaml
$ docker exec --rm -it -p 13000:13000 -v $PWD/config.yaml:/app/config.yaml \
dev.noccylabs.info/noccylabs/ntfi:latest
With Docker Compose:
Make sure to create config.yaml from config.dist.yaml in the same directory
as the compose.yaml file.
services:
ntfi:
image: dev.noccylabs.info/noccylabs/ntfi:latest
ports:
- 13000:13000
volumes:
- ./config.yaml:/app/config.yaml
restart: always
Configuration
Listen
This is a single key defining the HTTP listen address. This defaults to
0.0.0.0:13000.
Servers
Configure the servers that you want to be able to relay notifications to. The
default configuration defines a single server, default which is configured
to send messages to ntfy.sh as an anonymous user.
| Key | Req | Detail |
|---|---|---|
server |
Y | The server name without protocol (always https) |
token |
- | API token to use when authenticating |
username |
- | Username for authenticating |
password |
- | Password for authenticating |
Note
Note that for authentication to work, you need to specify either
token, orusernameandpassword. Iftokenis empty, and onlyusernameorpasswordis set, no authentication will be used.
Channels
These are the channels that can be sent to. Each channel name matches the request URL, and placeholders can be used to extract and reassemble a destination topic.
| Key | Req | Detail |
|---|---|---|
destination |
Y | The destination, as <server>/<topic> |
Examples:
# match exact topic and send to rewritten topic
"serverevents":
destination: "default/sometopicnameforserverevents"
# parse and use only part of topic, sending to another server
"prefix_{topic}":
destination: "prefixed/{topic}"
# or append a prefix to the topic, sending to yet another server
"{topic}":
destination: "prefixing/prefix_{topic}"