我给自己搞了个“只响重要消息“的推送通道,开源ntfy世界突然安静了 📅 发布时间:2026/9/6 5:29:06 👁 浏览次数: 我给自己搞了个只响重要消息的推送通道开源ntfy世界突然安静了前两天晚上我让 AI 跑一个数据整理任务想着跑完我再看然后顺手刷了会儿手机。你猜怎么着刷着刷着就忘了。第二天早上打开电脑一看——昨晚 11 点就跑完了。白等一宿不说后面排着的工作全往后推了一天。不是通知太少是通知太多说实话现在最不缺的就是消息。微信群一天 99点开一看全是收到“好的”“1”。邮箱 30 封未读28 封是抄送我的跟我没半毛钱关系。App 推送就更离谱了——“XX 给你发了私信”“XX 想你了”“XX 新功能上线啦”。我不想知道谁想我了真的。结果就是我练成了一个本事所有通知一律无视。但问题来了。真正需要我看的那两三条也被我一并无视了。重要的和不重要的挤在同一个渠道里这才是问题的根。不是通知太多是你没办法区分哪个该看、哪个该扔。微信群里领导你和同事发哈哈哈是同一个弹窗。邮箱里部署失败告警和营销邮件躺在同一个收件箱。手机推送栏AI 任务完成的通知和某宝优惠券并排显示。你的大脑只能做一个选择要么全看累死要么全不看漏事。我选了第三条路——单独开一个通道只放真正重要的。我的方案ntfy一个极简的推送服务ntfy 是个开源的消息推送工具轻量到令人发指。一个 Docker 容器就能跑起来没有数据库没有复杂的后台甚至连注册都不需要。它的逻辑特别简单你往一个 topic 发消息订阅了这个 topic 的设备就会收到推送。就这么回事。没有算法推荐没有猜你喜欢没有已读未读。你发什么我收什么。仅此而已。我现在怎么用的给自己定了几条死规矩只推这几种情况AI 任务跑完了 → 推任务挂了、报错了 → 推每天精选的技术资讯汇总好了 → 推GitHub 上发现值得关注的新项目 → 推其他一律不推任务还在跑不推。常规查询有结果了不推。没什么新内容不推。效果呢一天大概响 3 次。每次响我都确切知道有事得看一眼。不响的时候我就踏踏实实写代码、开会、摸鱼心里没有任何负担。使用ntfy1.懒人方案直接用官方公共服务网址ntfy.sh注册一个账号再添加一个订阅主题即可这个是通知到你的浏览器的。使用curl -d Hi https://ntfy.sh/你建的订阅主题2.手机app官方支持安卓和IOS手机去应用商店搜 “ntfy” 装个 App然后终端里一行命令就能发curl-d任务跑完了ntfy.sh/你的随机topic名免费额度每小时 250 条。个人用绰绰有余。注意topic 名一定要用随机字符串。别用什么test、hello因为 ntfy 的 topic 是公开的别人订阅同名 topic 就能看到你的消息。我一般用类似star-chatgpt-name001这种。填写订阅名称订阅成功3.自托管完全私有一台服务器一条 Docker 命令docker 部署服务端dockerrun-d\--namentfy\-p85:80\-v/var/cache/ntfy:/etc/ntfy\binwiederhier/ntfy serve搞定。想加认证的话改一下配置文件把auth-default-access设成deny-all再创建个用户就行。自托管的好处没有频率限制topic 别人猜不到数据完全在自己手里。docker-compose 部署服务端services: ntfy: image: binwiederhier/ntfy container_name: ntfy command: - serve environment: - TZUTC # optional: set desired timezone user: UID:GID # optional: replace with your own user/group or uid/gid volumes: - /var/cache/ntfy:/var/cache/ntfy - /etc/ntfy:/etc/ntfy ports: - 80:80 healthcheck: # optional: remember to adapt the host:port to your environment test: [CMD-SHELL, wget -q --tries1 http://localhost:80/v1/health -O - | grep -Eo \healthy\\\s*:\\s*true || exit 1] interval: 60s timeout: 10s retries: 3 start_period: 40s restart: unless-stopped init: true # needed, if healthcheck is used. Prevents zombie processes4.推送到手表如果你有智能手表并且智能手表刚好可以安装 ntfy App然后通知同步到智能手表。手腕一震抬起来瞄一眼。开会的时候不用掏手机写代码的时候不用切窗口甚至蹲坑的时候都能第一时间感知。震了 有事。没震 一切正常该干嘛干嘛。这种确定性比 200 条未读通知带来的焦虑感舒服太多了。脚本推送也很简单Python 几行代码的事importrequestsdefpush(title,body,topic你的topic,serverhttps://ntfy.sh):requests.post(f{server}/{topic},json{message:body,title:title,markdown:True})# 用法push(✅ 任务完成,今日 GitHub Trending 已汇总共 5 条)配合 cron 定时任务或者塞进你现有的自动化脚本里完事。最简组合就是ntfy cron连 n8n 都不需要。踩了几个坑坑一中文标题乱码用 Python 自带的urllib发中文通知栏显示一坨火星文。原因urllib对 header 的 UTF-8 编码处理有 bug。解法换requests库或者直接 subprocess 调 curl。别跟 urllib 较劲。坑二topic 被人蹭了最开始我用test当 topic 名结果发现消息发出去没反应——后来才知道公共服务的 topic 是全局共享的别人也在用这个名字。解法起个足够随机的名字。自托管的话直接开认证一劳永逸。坑三批量推送被限流写了个脚本一口气推 300 条推到后面就发不出去了。官方限制每小时 250 条。解法脚本里加个time.sleep(1)或者干脆自托管没这破限制。用了一段时间的真实感受之前现在一天 200 通知全忽略一天 3 次震动每次都看AI 任务跑完不知道第二天才发现手腕一震秒知道任务失败了过一天才看到实时收到马上处理刷手机顺便看看有没有消息不震就不看专注干活最直观的变化我不再焦虑是不是漏了什么。因为我知道如果真有重要的事手表会震。不震就是没事。这种确定感值了。最后“所有消息都重要等于所有消息都不重要”。与其在 200 条通知里大海捞针不如给自己建一条专属通道只放那 3 条真正值得你抬手腕的。工具不复杂ntfy 一个容器就够。开源地址https://github.com/binwiederhier/ntfy关键是那个原则重要的事情值得一个专门的通道。别让它淹没在收到“好的”的海洋里。