POST

ntfy:给自己的所有脚本配一个推送通道,一条命令发到手机

备份跑完了、下载好了、监控报警了——用 curl 发一行,手机立刻弹通知。不用注册、不用第三方账号。

你写的脚本跑完了,然后呢?你不可能一直盯着日志。

最常见的需求是:跑完了告诉我一声,失败了也告诉我。

ntfy 干这件事,而且简单到离谱:curl 发一个 POST,就看到通知了。

装

services:
  ntfy:
    image: binwiederhier/ntfy
    container_name: ntfy
    command: serve
    ports: ["8088:80"]
    volumes: ["./ntfy/cache:/var/cache/ntfy", "./ntfy/etc:/etc/ntfy"]
    environment:
      - TZ=Asia/Shanghai
    restart: unless-stopped

打开 http://NAS地址:8088,是个简单的网页,能直接在那个页面上订阅一个"主题"看消息。

发一条试试

curl -d "备份跑完了,用时 4 分 12 秒" http://192.168.1.10:8088/nas-backup

nas-backup 是主题名,自己起。

手机怎么收

两个办法:

一、装官方 App(Android / iOS 都有) 添加服务器地址 http://NAS地址:8088,订阅同一个主题,之后就有系统通知。

二、用网页 PWA 浏览器打开加"添加到主屏幕",效果接近原生。

关键点:手机要能访问到这个地址。在家带 WiFi 没问题,出门就得走隧道——站里 CPN 或 Cloudflare Tunnel 那两篇正好。

脚本里怎么用

三个变量把消息变好看:

curl -H "Title: 备份完成" \
     -H "Priority: high" \
     -H "Tags: white_check_mark" \
     -d "文件 12,384 个,共 84 GB" \
     http://192.168.1.10:8088/nas-backup

Priority 可以是 min/low/default/high/urgent。设成 urgent 的会强制响铃。

失败的时候换个标签:

curl -H "Title: 备份失败" -H "Priority: urgent" -H "Tags: warning" \
     -d "$(tail -5 /var/log/backup.log)" \
     http://192.168.1.10:8088/nas-backup

和别的工具串起来

Uptime Kuma:通知渠道里选 “Webhook”,填 ntfy 地址。服务挂了直接推到你手机。

n8n / 青龙:跑完一段流程,最后一步发 ntfy。

Docker 容器退出:写个 watchtower 或用它的 “notify” 钩子。

Home Assistant:把 ntfy 加成一个通知服务,自动化里调用。

加一层认证(重要)

默认它是公开的:谁知道地址谁就能发消息。

打开 ntfy/etc/server.yml:

auth-file: "/var/lib/ntfy/user.db"
auth-default-access: "deny-all"

然后建用户:

docker exec ntfy ntfy user add --role=admin 你的名字

之后发消息要带 -u 用户名:密码,订阅也要登录。

如果你把它暴露在公网,这一步必须做,不然会被人当免费推送通道刷垃圾。

会踩的坑

手机收不到 App 里服务器地址填成了 localhost,或者防火墙没放行 8088。

消息延迟很久 iOS 上后台推送依赖它的服务端保活。Android 通常即时。

中文乱码 请求头里的中文要用 -H "Title: ..." 的形式,别塞进 URL。

历史消息太多 默认保留 12 小时。想要长期保留要在 server.yml 里改 cache 设置。

别忘了手机端的省电策略 Android 各家 ROM 会杀后台。把 App 加入白名单。

它适合谁

  • 有一堆脚本,想知道它们跑没跑成的;
  • 用 Uptime Kuma 但觉得通知不够灵活的;
  • 不想用第三方推送服务、想自己掌控的。

不适合:只用一两个自动化任务的人(Telegram bot 更简单);完全不做自动化的。

最后

通知这件事的价值,只有在你半夜被叫醒处理一次故障之后才真正体会到。

或者反过来:正是因为有了它,你才敢放心睡觉。

有问题留言。

👁 - 次浏览

留言

← 返回首页