一、简介
- 可以通过简单的PUT/POST请求实现消息推送
- 可以发送多种类型的内容,包括文本、链接、图片、附件等等
- 具有电脑、手机客户端,可以实时接收和查看消息内容
- 可以直接使用官网ntfy.sh免费消息额度,也可以快速自托管部署(推荐)
- 开源地址参考:https://github.com/binwiederhier/ntfy
- 该项目消息发布订阅流程图可参考:
二、安装(自托管方案)
-
准备一台主机,安装好docker、docker-compose软件环境
-
新建docker-compose.yml配置文件,配置内容如下:
不需要登录就能访问使用版本(不安全,测试环境使用)services: ntfy: image: binwiederhier/ntfy container_name: ntfy command: - serve environment: - TZ=Asia/Shanghai # 设置为中国时区 volumes: - ./cache:/var/cache/ntfy - ./etc:/etc/ntfy ports: - 8080:80 restart: unless-stopped
带授权、缓存、附件支持版本
services: ntfy: image: binwiederhier/ntfy container_name: ntfy command: - serve environment: - TZ=Asia/Shanghai # 设置为中国时区 - NTFY_BASE_URL=http://ip:8080 #设置自己部署后的基础访问地址:https://ntfy.xxxxxxx.xyz - NTFY_CACHE_FILE=/var/lib/ntfy/cache.db #缓存数据 - NTFY_AUTH_FILE=/var/lib/ntfy/auth.db #授权数据 - NTFY_AUTH_DEFAULT_ACCESS=deny-all #禁用非授权访问 - NTFY_BEHIND_PROXY=true - NTFY_ATTACHMENT_CACHE_DIR=/var/lib/ntfy/attachments #设置附件缓存目录 - NTFY_ENABLE_LOGIN=true #开启登录授权访问 volumes: - ./cache:/var/cache/ntfy - ./etc:/etc/ntfy - ./lib:/var/lib/ntfy ports: - 8080:80 restart: unless-stopped
-
一键启动命令,如下:
docker-compose up -d
命令运行成功截图参考:
-
如果启动的是需要登录授权的版本,可以通过一下命令创建账户密码
//下面命令是进入容器创建一个admin账号,授权admin角色,可以读写所有主题 //更精细的授权参考官网:https://docs.ntfy.sh/config/#access-control-list-acl //执行下面命令后,输入两次密码即可创建账号 docker-compose exec ntfy ntfy user add --role=admin admin
-
启动成功,可以访问地址:http://ip:8080/,但是要流畅体验完整的功能,请自行使用域名反代到该服务的8080端口,并开启HTTPS证书访问(方式太多,这里不讨论这个),注意:如使用nginx反代,需要设置支持websocket
三、使用
1. 订阅关注的主题
-
这里以浏览器网页客户端为例,访问你的 ntfy 的服务地址
-
默认界面语言是英文,支持多语言,可以修改成简体中文
-
如果需要需要使用浏览器自带的通知功能,需要开启域名+证书访问,并且授权浏览器通知功能
-
订阅需要监听的通知主题,可以自定义编辑,但最好具有一定的唯一性、随机性,防止被人暴力推送消息
2. 发布通知到主题
-
通过网页客户端发送,如下示例
-
通过POST请求发送通知(支持的其他参数自行探索,这里只做简单示例)
//如果开启了授权访问,需要设置basic授权,如使用链接:https://user:pass@ntfy.xxxxxx.xyz/9Ztg7CGTTBGtJugV //不需要授权,则直接使用下面的命令即可 curl -d "这是一条消息内容" https://ntfy.xxxxxx.xyz/9Ztg7CGTTBGtJugV
3. 通知结果示例
-
电脑网页客户端(订阅主题,如上)
-
手机应用客户端(先订阅主题,类似上面网页端)
四、总结
- 一个功能比较完善的通知系统,go语言开发,低资源消耗、高性能
- 通过简单的POST请求就能实现消息通知,方便适应各种命令行终端,同时也提供各种语言对接的SDK,可以快速把一些需要实时知晓的通知迁移到 ntfy
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容