前言
前幾天在大改內網的網路架構,所以經常使部分服務不太穩定。雖然我一直都有使用類似 Uptime Kuma 這類的監控服務,但他通常是發送到 Discord 或 Telegram 的,這讓我有時候會忽視這些訊息。
也是在前些時間看到 ntfy 這個軟體,他是獨立設計成 APP 的。當有人向 ntfy 的 API 端點發送訊息時,你手機上的這個 APP 就會收到並彈出通知。而當然,ntfy 也是可以自行架設伺服器的,所以這篇文章就是來說說如何玩他。
安裝方式
你可以使用最簡單的方式,單次的就將 ntfy 安裝在你的 Linux 上。
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://archive.heckel.io/apt/pubkey.txt | sudo gpg --dearmor -o /etc/apt/keyrings/archive.heckel.io.gpg
sudo apt install apt-transport-https
sudo sh -c "echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/archive.heckel.io.gpg] https://archive.heckel.io/apt debian main' \
> /etc/apt/sources.list.d/archive.heckel.io.list"
sudo apt update
sudo apt install ntfy
sudo systemctl enable ntfy
sudo systemctl start ntfy
接著打開瀏覽器,輸入機器的 IP 位址,就可以直接看到 ntfy 的網頁介面了,很快吧。
但如果你不想讓這個網頁介面攤在陽光下,我們可以把它關掉。編輯 /etc/ntfy/server.yml
這個檔案,找到 web-root
這行,改成 disable
即可。
並重啟 ntfy 使他生效。
sudo systemctl restart ntfy
開始使用
在我的環境中,我已經將他綁上網域了,所以接下來的所有操作都已經連接上網路了,你也可以先這麼做。
我在手機上安裝了 ntfy,打開他後,選擇右上角的 Setting
,去更改我們已經綁上網域的伺服器。
接著回到主頁,我們就可以新增並訂閱一個 topic,那我們這裡就用 test
就好。
接著你可以用 Postman 之類的東西,向這個 /test
這個端點發送訊息,例如說:
POST /test HTTP/1.1
Host: your.domain.com
Title: Testing!!!
Priority: urgent
Tags: warning,skull
哈囉!測試一個測試訊息。
送出後,你的手機就會收到通知!
這就是簡單使用 POST 來觸發通知的方式,聰明如你現在可以自己寫程式把他套進去,或是相關服務如果支援 ntfy 的話,來使你的手機收到通知囉!