目 录CONTENT

文章目录

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

Administrator
2026-10-31 / 0 评论 / 0 点赞 / 4 阅读 / 0 字

前言

上期给大家分享了如何使用 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 支持以下优先级:

优先级数值说明
Min1最低
Low2较低
Default3默认
High4较高
Urgent5紧急

四、添加标签和 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的方式安装部署,简单便捷
001.jpeg

X86/Arm双平台

平台架构适用场景
linux/amd64x86_64VPS、PC服务器、Intel/AMD
linux/arm64ARM64树莓派、Mac M系列、ARM 云服务器

002-tzJJ.png

准备条件

1)一台服务器

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

2)本教程使用到的项目

本教程使用的官方github地址
https://github.com/binwiederhier/ntfy
003-BvOI.png

目前高达35.2k stars
如果对你有用,可以帮忙给作者点个stars

3)客户端下载

android和ios客户端可以直接到官方网站下载
004-oPhh.png

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

005-SqtC.png

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

绑定域名

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

绑定域名视频教程

B站

YouTube

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

绑定好域名之后我们就得到了自建的https的ntfy通知服务
006-pBpM.png

也可以更改语言
这里web界面直接可以发布通知
007-hBeB.png

网页端直接也可以收到通知
008-DTTN.png

web页面正常接收
009-JQcp.png

Android手机端接收
010-MZkN.png

同样的renewhelper也可以直接配置ntfy
011-HXHz.png

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

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

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
  3. QQ打赏

    qrcode qq

评论区