标签搜索

目 录CONTENT

文章目录

Android 手机也能自建消息推送服务!Docker 部署 ntfy,服务器告警实时推送到手机

yyzq
2026-10-31 / 0 评论 / 2 点赞 / 43 阅读 / 2,398 字
广告 广告

前言

上期给大家分享了如何使用 Docker 自建 Bark 消息推送服务,不过 Bark 主要面向 iPhone 用户,并没有官方的 Android 客户端。那么,很多使用安卓手机的小伙伴可能就要问了:Android 手机如何搭建自己的消息推送服务器呢?

今天就给大家分享一个非常不错的开源项目——ntfy。它是一款轻量级的消息推送服务,支持 Android 和 iOS 客户端,可以通过 Docker 快速部署,并提供简单易用的 HTTP API。

部署完成后,我们只需要在手机上订阅对应的主题,就可以将服务器运行状态、系统告警、脚本执行结果以及自动化任务通知实时推送到手机上。

本期教程就带大家从零开始,使用 Docker 一键部署 ntfy,完成服务配置、手机端连接以及消息推送测试,让 Android 用户也能拥有属于自己的私有消息推送服务!

项目简介

ntfy(发音为“ notify ”)是一个基于HTTP的简单发布/订阅 通知服务。使用ntfy,您可以从任何计算机 通过脚本向您的手机或桌面发送通知,无需注册或支付任何费用。如果您想运行自己的服务实例,也很容易做到,因为ntfy是开源的。

说明

该项目同样提供官方免费的服务器,对于不想自建服务器的用户可以使用官方的服务器
https://ntfy.sh

curl -d "Hi" https://ntfy.sh/wwe

就是最简单的消息推送方式。

其中:

ntfy 消息推送使用方法

ntfy 支持通过 HTTP API 发送消息,可以使用 curl 命令快速推送消息到 Android 或 iOS 手机。只需要指定服务器地址和主题名称,即可完成消息推送。

一、普通文本推送

最简单的消息推送方式:

curl -d "服务器运行正常!" \
  https://你的域名/server-alert

参数说明:

  • curl:发送 HTTP 请求。
  • -d:指定消息正文。
  • https://你的域名/server-alert:推送服务器地址及主题名称。
  • server-alert:消息主题,手机订阅该主题即可接收消息。

二、自定义消息标题

通过 Title 参数设置消息标题:

curl \
  -H "Title: 服务器告警" \
  -d "CPU 使用率超过 90%!" \
  https://你的域名/server-alert

三、设置消息优先级

通过 Priority 参数设置消息优先级:

curl \
  -H "Title: 紧急告警" \
  -H "Priority: urgent" \
  -d "服务器出现异常,请立即检查!" \
  https://你的域名/server-alert

ntfy 支持以下优先级:

优先级 数值 说明
Min 1 最低
Low 2 较低
Default 3 默认
High 4 较高
Urgent 5 紧急

四、添加标签和 Emoji

通过 Tags 参数添加标签或 Emoji:

curl \
  -H "Title: 备份完成" \
  -H "Tags: white_check_mark,backup" \
  -d "服务器数据备份成功!" \
  https://你的域名/server-alert

五、点击消息跳转网页

通过 Click 参数设置点击通知后打开的网页:

curl \
  -H "Title: 网站监控通知" \
  -H "Click: https://example.com" \
  -d "网站监控检测完成,点击查看详情。" \
  https://你的域名/server-alert

六、Markdown 格式消息

ntfy 支持 Markdown 消息,可以通过 Markdown: yes 开启:

curl \
  -H "Title: 服务器状态报告" \
  -H "Markdown: yes" \
  -d "**服务器:** VPS-01

- CPU:20%
- 内存:45%
- 磁盘:60%

状态:正常" \
  https://你的域名/server-alert

七、JSON 格式推送

如果需要集成 Python、JavaScript 或其他自动化程序,可以使用 JSON 格式发送消息:

curl -X POST https://你的域名/ \
  -H "Content-Type: application/json" \
  -d '{
    "topic": "server-alert",
    "title": "服务器监控告警",
    "message": "CPU 使用率超过 90%",
    "priority": 5,
    "tags": ["warning", "computer"],
    "click": "https://example.com"
  }'

注意:JSON 推送请求需要发送到服务器根地址 /,并在 JSON 数据中指定 topic。

八、常用参数说明

参数 功能
Title 设置消息标题
Priority 设置消息优先级
Tags 添加标签或 Emoji
Click 点击通知跳转指定网页
Actions 添加通知操作按钮
Attach 添加附件
Icon 自定义通知图标
Markdown 启用 Markdown 格式
Delay 延迟发送消息
Email 邮件转发

九、实际应用场景

1. 服务器运行状态通知

服务器启动、关闭或重启后,自动发送通知。

curl \
  -H "Title: 服务器通知" \
  -H "Tags: computer" \
  -d "VPS-01 已成功启动!" \
  https://你的域名/server-alert

2. 自动备份通知

每天定时备份完成后,推送成功或失败结果。

curl \
  -H "Title: 数据备份" \
  -H "Tags: white_check_mark" \
  -d "服务器数据备份成功!" \
  https://你的域名/server-alert

3. 服务器异常告警

当 CPU、内存或磁盘空间超过设定阈值时,向手机发送紧急通知。

curl \
  -H "Title: 服务器异常告警" \
  -H "Priority: urgent" \
  -H "Tags: warning" \
  -d "CPU 使用率超过 90%,请及时检查!" \
  https://你的域名/server-alert

十、官方文档

部署方法

使用Docker安装

本教程使用docker的方式安装部署,简单便捷
164b6ac419e23bc5390dc46601a202bf

X86/Arm双平台

平台 架构 适用场景
linux/amd64 x86_64 VPS、PC服务器、Intel/AMD
linux/arm64 ARM64 树莓派、Mac M系列、ARM 云服务器

image-1793421198217

准备条件

1)一台服务器

我们使用莱卡云VPS来演示,建议选择境外云服务器(免备案)
需要vps的可以看以下信息,配置尽量选择大点的比如2核心4G内存
莱卡云官网

2)本教程使用到的项目

本教程使用的官方github地址
https://github.com/binwiederhier/ntfy
image-1793421247926
目前高达35.2k stars
如果对你有用,可以帮忙给作者点个stars

3)客户端下载

android和ios客户端可以直接到官方网站下载
image-1793422379046

4)域名(建议)

根据自己的需求,
1.建议绑定域名,方便使用,也更安全

VPS部署

一、Docker环境部署

在vps安装docker和docker-compose
Docker官方安装文档(英文)
https://duan.yyzq.eu.org/docker-001
Docker-Compose官方安装文档(英文)
https://duan.yyzq.eu.org/docker-002
Centos安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//03
Ubuntu安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//04

推荐直接用一键脚本

docker安装脚本

bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)

docker-compose安装脚本

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

二、部署命令

登录我们自己的境外VPS使用root账户执行以下步骤

docker-compose命令

创建一个目录,并进入此目录

mkdir  ntfy ;cd ntfy

请自行安装vim编辑器
然后再新建docker-compose.yml

vim docker-compose.yml
services:
  ntfy:
    image: binwiederhier/ntfy:latest
    container_name: ntfy
    command: serve
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ./cache:/var/cache/ntfy
      - ./config:/etc/ntfy
    ports:
      - "8480:80"
    restart: always

注意端口8480如有冲突自行修改

三、执行容器运行命令

docker-compose up -d #运行容器
docker-compose ps  #查看是否启动成功

正常启动如下所示

docker-compose ps
NAME      IMAGE                       COMMAND        SERVICE   CREATED          STATUS          PORTS
ntfy      binwiederhier/ntfy:latest   "ntfy serve"   ntfy      34 minutes ago   Up 34 minutes   0.0.0.0:8480->80/tcp, [::]:8480->80/tcp

四、web界面

打开web页面使用
成功以后需要打开自己相应的端口8480)防火墙就可以web端访问了

主界面

http://ip:8480

image-1793421490730
该项目我们看到这个界面就说明服务正常运行了
这个项目不用绑定域名和SSL证书也可以正常使用,建议绑定下域名和证书,更安全

绑定域名

接下来就是绑定域名和配置SSL证书
绑定域名的教程参考以下内容

绑定域名视频教程

B站

YouTube

绑定域名可以参考
NginxProxyManager
https://duan.yyzq.eu.org//npm-ch

绑定好域名之后我们就得到了自建的https的ntfy通知服务
image-1793421659210
也可以更改语言
这里web界面直接可以发布通知
image-1793421819083
网页端直接也可以收到通知
image-1793421860489
web页面正常接收
image-1793421897388
Android手机端接收
image-1793422264370
同样的renewhelper也可以直接配置ntfy
image-1793422647399

有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我

欢迎关注我们的微信公众号!
微信公众号

2
广告 广告

评论区