ntfy 是一个推送通知的工具
项目链接:binwiederhier/ntfy
安装 下载软件包安装即可。
配置 配置文件位于/etc/ntfy/
中。server.yml
为服务器配置文件,一些关键选项如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 listen-http: ":80" # HTTP监听端口 listen-https: # HTTPS监听端口 key-file: /path # SSL私钥路径 cert-file: /path # SSL证书路径 # 缓存功能 cache-file: "/var/lib/ntfy/cache.db" # 设置缓存数据库路径 cache-duration: "12h" # 设置缓存删除时间 # 认证功能 auth-file: "/var/lib/ntfy/user.db" # 设置认证数据库路径 auth-default-access: "read-write" # 默认权限,可选read-write, read-only, write-only 和 deny-all # 附件功能 attachment-cache-dir: "/var/cache/ntfy/attachments" # 附件存储路径 attachment-total-size-limit: "5G" # 附件最大空间占用 attachment-file-size-limit: "15M" # 附件文件最大大小 attachment-expiry-duration: "3h" # 附件自动删除时间 # Email通知 smtp-sender-addr: "email-smtp.us-east-2.amazonaws.com:587" # SMTP服务器 smtp-sender-user: "AKIDEADBEEFAFFE12345" # SMTP用户名 smtp-sender-pass: "Abd13Kf+sfAk2DzifjafldkThisIsNotARealKeyOMG." # SMTP密钥 smtp-sender-from: "ntfy@ntfy.sh" # SMTP落款 # Email通知转发 smtp-server-listen: ":25" # SMTP服务器监听端口 smtp-server-domain: "ntfy.sh" # SMTP服务器域名 smtp-server-addr-prefix: "ntfy-" # SMTP服务器地址前缀 behind-proxy: false # 代理IP转发,如果使用代理需要打开 keepalive-interval: "45s" # 保活数据包发送间隔 log-level: INFO # 设置日志等级
client.yml
为客户端配置文件,一些关键选项如下:
1 2 3 4 5 6 7 8 9 10 default-host: IP或域名 # 默认ntfy推送服务器 default-user: # 默认用户名 default-password: # 默认密码 default-command: # 监听TOPIC后执行的命令 subscribe: # 订阅的TOPIC - topic: TOPIC command: 'echo "test"' user: TEST password: PASS
用户客户端配置文件在~/.config/ntfy/client.yml
命令 服务端 serve 加载/etc/ntfy/server.yml
中的配置内容,然后启动服务器。添加--listen-http
或--listen-https
以临时指定监听端口。HTTP协议不支持发送通知消息,仅用于测试,正式使用请使用HTTPS
user 用户控制命令。详细如下:
1 2 3 4 5 6 ntfy user list # 显示所有用户 ntfy user add TEST # 添加普通用户 ntfy user add --role=admin TEST # 添加管理员 ntfy user del TEST # 删除用户 ntfy user change-pass TEST # 修改用户密码 ntfy user change-role TEST admin # 将用户设为管理员
access 访问控制(ACL)命令。详细内容如下:
1 2 3 4 5 6 7 8 ntfy access # 显示访问控制表 ntfy access USERNAME # 显示指定用户的访问控制 ntfy access USERNAME TOPIC 权限 # 设置用户对指定TOPIC的权限,权限包括read-write(rw), read-only(read, ro), write-only(write, wo), deny(none) ntfy access everyone TOPIC 权限 # 设置所有人对TOPIC的权限 ntfy access everyone "TOP*" 权限 # 支持通配符 ntfy access --reset # 重设权限表 ntfy access --reset TEST # 重设用户权限表 ntfy access --reset TEST TOPIC # 重设用户对TOPIC的权限表
客户端 subscribe, sub 监听一个TOPIC,一有新通知立刻显示。后面还可以加命令,表示接收到新通知后立刻执行的命令。 格式为ntfy subscribe TOPIC command [-u USER:PASS]
使用ntfy subscribe TOPIC --poll
以只获得最新消息 还有一些别名可以在命令中使用:
1 2 3 4 5 6 7 8 $id # 消息ID $time # 消息时间戳 $topic # TOPIC名 $message, $m # 消息内容 $title, $t # 消息标题 $priority, $prio, $p # 消息优先级 $tags, $tag, $ta # 消息tag $raw # 纯JSON文本
publish, pub, send, trigger 推送新消息。详细选项如下:
1 2 3 4 5 6 7 8 9 10 --title # 消息标题 --message # 消息内容 --priority, -p # 设置优先级 1=min, 2=low, 3=default, 4=high, 5=max --tags= # 设置tag,也支持emoji --delay= # 设置延时 --at= # 设置定时 --email, -e # 设置发送Email --file= # 设置附件 --wait-pid # 等待进程结束后发送消息 --wait-cmd # 等待命令结束后发送消息
Docker 可以使用Docker搭建,Docker镜像名为binwiederhier/ntfy
首先执行docker cp container-name:server.yml /etc/ntfy/server.yml
提取配置文件,修改后,执行以下命令启动服务器:
1 2 3 4 5 6 docker run \ -v /etc/ntfy:/etc/ntfy \ -p 80:80 \ -it \ binwiederhier/ntfy \ serve