自架推播通知伺服器:ntfy
原本我的 NetAlertX 跟 Uptime Kuma 使用的通知方式都是透過 gmail,用 SMTP 的方式,自己寄信給自己。但後來發現,收件箱因為這樣而充滿了一堆通知,十分雜亂也不方便管理。
所以此篇我們要來架設 ntfy,並將 NetAlertX 跟 Uptime Kuma 的通知方式設定成 ntfy,最終透過 ntfy 的 ios app,從 iPhone 接收通知。
安裝 ntfy
此處我們採用 docker compose 的安裝方式,yaml 如下:
1 | services: |
其中注意:
NTFY_BEHIND_PROXY: true
:我們後續會透過 proxy manager 來反向代理,所以這個需要特別設 trueNTFY_BASE_URL: https://your.ntfy.domain
:這裡就是我們 ios app 從外網接收通知用的 domain(我們出門在外也要收得到通知對吧)NTFY_UPSTREAM_BASE_URL: https://ntfy.sh
:因為 iOS 在「推播通知」的設計原則上,app 通常不允許常駐在後面等通知,除非使用 APNs (Apple Push Notification Service) 來進行系統層級的喚醒。但我們自架的 server 並沒有 apple 認證,所以如果不透過 ntfy.sh 進行 APN 的推送,我們會延遲很久很久才收到通知。所以此處務必加上這個。但當然,因為這樣,我們的服務其實還是依賴了其他 server。
設定反向代理
我們透過 Nginx Proxy Manager 來進行反向代理:
- 其中 Domain Names 就是後續 iso app 要使用的網域
- Scheme 要用 http,因為內網裡面就是走 http
- 為了實時刷新,Websockets 也要打開
NetAlertX 設定
注意因為 NetAlertX 跟 ntfy 一樣都在內網環境中,所以在 NTFY host URL 的部分要填入的是走 http 的 ntfy 內網位置。
Uptime Kuma 設定
此處同理。
iPhone 設定
iPhone 部分就簡單了,app store 下載安裝 ntfy 後:
- Default server 填入我們一開始設定在
NTFY_BASE_URL
的外網網域 - 訂閱你的 topic
收工!
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Hi 我劉昕!
評論