59 lines
2.0 KiB
Org Mode
59 lines
2.0 KiB
Org Mode
:PROPERTIES:
|
|
:ID: fd781dd9-e52c-4e3f-82ad-b27783b33177
|
|
:END:
|
|
|
|
#+title: homey/ntfy
|
|
#+filetags: :project: :knowledge: :ntfy:
|
|
|
|
:PROPERTIES:
|
|
:ID: homey-ntfy
|
|
:END:
|
|
|
|
#+title: homey/ntfy
|
|
#+filetags: :project: :knowledge: :ntfy:
|
|
|
|
Self-hosted ntfy push notification server at =https://ntfy.zakobar.com=. Native NixOS service (not a container), port 2586. =auth-default-access = deny-all= — all clients need a token or password. Bypasses Authelia (ntfy enforces its own auth so the mobile app works without SSO). Topic for alerts: =alerts=.
|
|
|
|
** Sending Notifications from CLI
|
|
|
|
Token stored in =pass= at =zakobar-homecenter/ntfy-token=.
|
|
|
|
#+begin_src bash
|
|
# Basic
|
|
curl -H "Authorization: Bearer $(pass zakobar-homecenter/ntfy-token)" \
|
|
-d "your message" \
|
|
https://ntfy.zakobar.com/alerts
|
|
|
|
# With metadata
|
|
curl -H "Authorization: Bearer $(pass zakobar-homecenter/ntfy-token)" \
|
|
-H "Title: Backup complete" \
|
|
-H "Priority: default" \
|
|
-H "Tags: white_check_mark" \
|
|
-d "restic finished successfully" \
|
|
https://ntfy.zakobar.com/alerts
|
|
#+end_src
|
|
|
|
Priority values: =min=, =low=, =default=, =high=, =urgent=.
|
|
Tags are emoji shortcodes (e.g. =warning=, =rotating_light=, =white_check_mark=).
|
|
|
|
** Token Management
|
|
|
|
*Generating / rotating a token:*
|
|
|
|
Two gotchas with =ntfy token add=:
|
|
1. Output goes to stderr — must redirect with =2>&1= or the pipe gets nothing.
|
|
2. No global =--config= flag — use =NTFY_AUTH_FILE= env var instead.
|
|
3. =pass insert -e= prompts from =/dev/tty=, not stdin — use =-m= (multiline) for piping.
|
|
|
|
#+begin_src bash
|
|
ssh admin@192.168.1.100 'sudo NTFY_AUTH_FILE=/mnt/data/ntfy/auth.db ntfy token add admin 2>&1' \
|
|
| awk '{print $2}' \
|
|
| pass insert -m -f zakobar-homecenter/ntfy-token
|
|
#+end_src
|
|
|
|
*Listing / removing tokens* (e.g. to clean up leaked tokens):
|
|
|
|
#+begin_src bash
|
|
ssh admin@192.168.1.100 'sudo NTFY_AUTH_FILE=/mnt/data/ntfy/auth.db ntfy token list admin'
|
|
ssh admin@192.168.1.100 'sudo NTFY_AUTH_FILE=/mnt/data/ntfy/auth.db ntfy token remove admin tk_xxxx'
|
|
#+end_src |