PushMe Server 是一个基于 Node.js 开发的自建消息推送服务器,为 PushMe APP 和 PushMeClient 提供私有化部署方案。
- 🔐 数据隐私: 完全自主可控的消息服务,保障数据安全
- 🎯 接口兼容: 消息接口参数与官方保持一致(暂不支持 temp_key)
- 🖥️ 可视化管理: 提供 Web 管理界面,支持 push_key 管理和在线测试
- 📡 多协议支持: 同时支持 HTTP/HTTPS API 和 MQTT/WebSocket 消息服务
- 🐳 容器化部署: 支持 Docker 快速部署
- Node.js: >= 18.0
- 端口占用:
3010- Web 管理及 API 接口3100- MQTT/WebSocket 消息服务
docker run -dit \
-p 3010:3010 \
-p 3100:3100 \
-e TZ=Asia/Shanghai \
-v $PWD/pushme-server/config:/pushme-server/config \
--name pushme-server \
--restart unless-stopped \
yafoo/pushme-server:latest说明:
-v参数将配置文件挂载到宿主机,方便持久化和修改--restart unless-stopped确保容器异常退出后自动重启
# 1. 克隆仓库
git clone https://github.com/yafoo/pushme-server.git
cd pushme-server
# 2. 安装依赖
npm i
# 3. 启动服务
node ./server.js- 启动服务后,访问
http://您的服务器IP:3010 - 完成初始化配置
- 设置 push_key(推送密钥)
在 PushMe 安卓或 Windows 客户端中:
- Host: 填写服务器 IP(如
0.0.0.0) - Port: 填写
3100 - 保存配置即可使用
- 接口地址:
http://您的服务器IP:3010(支持 IPv6) - 请求参数: 与官方接口保持一致
- 注意事项: 暂不支持 temp_key 临时密钥功能
如需更改默认端口,请编辑 server.js 文件中的端口配置。
生产环境建议通过 Nginx 反向代理绑定域名:
- 配置 Nginx 反向代理到
localhost:3010 - 配置 SSL 证书启用 HTTPS
- 消息端口可能变为 80/443
二次开发时,请在 config/app.js 中设置:
app_debug: truepushme-server/
├── app/ # 应用核心代码
│ ├── controller/ # 控制器层
│ │ ├── admin.js # 后台管理
│ │ ├── login.js # 用户认证
│ │ ├── server.js # 消息服务
│ │ └── setting.js # 系统设置
│ ├── libs/ # 业务逻辑库
│ └── view/ # 视图模板
├── config/ # 配置文件
│ ├── app.js # 应用配置
│ ├── log.js # 日志配置
│ └── view.js # 视图配置
├── public/ # 静态资源(Layui)
├── docker/ # Docker 相关文件
├── server.js # 服务入口
└── package.json # 项目依赖
- 后端框架: jj.js ^0.19.0
- MQTT Broker: aedes ^0.51.3
- WebSocket: websocket-stream ^5.5.2
- 证书生成: selfsigned ^4.0.0
- 前端 UI: Layui
本项目基于 jj.js 轻量级框架开发,如需二次开发请参考其文档。
- GitHub: https://github.com/yafoo/pushme-server
- Gitee: https://gitee.com/yafu/pushme-server
- Docker Hub: https://hub.docker.com/r/yafoo/pushme-server
- PushMe 官网: https://push.i-i.me/
- pushme-server-golang: https://github.com/0x01feng/pushme-server-golang (第三方实现的golang版本PushMeServer)
MIT License
欢迎提交 Issue 和 Pull Request!
💡 提示: 如有问题或建议,欢迎在 GitHub Issues 中反馈。