PushDeer自建推送服务详解,NAS Docker部署教程,帕斯内网穿透实现远程访问无APP消息推送平台
作者
小编
发布时间

项目介绍
PushDeer 是一个可以自行架设的无APP推送服务,同时也为因为某些原因无法使用无APP推送方案的同学提供有APP/自制设备方案。它是一个开箱即用的消息推送平台,支持多种客户端形式,包括轻APP(APP Clip)、快应用、iOS客户端、Mac客户端、Android客户端,甚至还支持ESP8266/ESP32等自制设备。
PushDeer的核心价值体现在「易用」、「可控」和「渐进」三个方面。易用性表现在采用无APP方案和简单的URL调用方式;可控性体现在支持自行架设服务器,不依赖第三方服务;渐进性则通过从简单文本到复杂样式的逐步功能扩展来实现。
该项目特别适合NAS用户、站长、开发者等技术用户,可以用于推送服务器状态、报错信息、定时任务输出等各种场景。相比传统的推送服务,PushDeer不受微信等平台政策限制,具有更好的稳定性和可控性。
项目地址: 点我跳转
部署安装
如需在外也打开项目需要配置内网穿透使用,点击前往 帕斯内网穿透,先注册好账号备用。
复制下列的配置文件
1version: '2.1'2services:3 mariadb:4 image: 'mariadb:10.5.8-focal'5 healthcheck:6 test: ["CMD", "mysqladmin", "ping", "--silent","--password=$$MYSQL_ROOT_PASSWORD"]7 timeout: 10s8 retries: 39 volumes:10 - 'mariadb_data:/var/lib/mysql'11 environment:12 - MYSQL_ROOT_PASSWORD=theVeryp@ssw0rd13 - MYSQL_DATABASE=pushdeer14 redis:15 image: 'bitnami/redis:6.0.16'16 healthcheck:17 test: ["CMD", "redis-cli","ping"]18 environment:19 - ALLOW_EMPTY_PASSWORD=yes20 app:21 build: './docker/web/'22 ports:23 - '8800:80'24 volumes:25 - './:/app'26 depends_on:27 mariadb:28 condition: service_healthy29 redis:30 condition: service_healthy31 environment:32 - DB_HOST=mariadb33 - DB_PORT=330634 - DB_USERNAME=root35 - DB_DATABASE=pushdeer36 - DB_PASSWORD=theVeryp@ssw0rd37 - GO_PUSH_IOS_TOPIC=com.pushdeer.self.ios38 - GO_PUSH_IOS_CLIP_TOPIC=com.pushdeer.self.ios.Clip39 - APP_DEBUG=false40 - MQTT_API_KEY=9LKo341 - MQTT_ON=false42volumes:43 mariadb_data:
打开飞牛 NAS 或其他的 NAS 设备

项目名称可以随便填,点击创建 docker-compose.yml

点击 Compose -> 新建项目
这里需要改成你需要的数据库密码,其他的保持不变。建议修改 MYSQL_ROOT_PASSWORD 和 DB_PASSWORD 为相同的强密码。
如果提示端口被占用可以修改下面的字段,但是需要保持格式正确。
1ports:2 - '8800:80' # 可以修改8800为其他端口
创建成功后可以访问 ip:8800 到这里就可以正常显示项目了
穿透公网
打开帕斯内网穿透控制台,点击隧道管理-隧道列表

点击创建新隧道
隧道节点可以随便选,一般选个负载低的就可以

接下来填写信息,隧道名称可以随便填写
本地 IP 默认就可以
传输协议可以选择 TCP 也可以选择 HTTP/HTTPS
HTTP 就是域名的形式,教程以使用 TCP 为演示
本项目中如果没有修改端口的话默认是 8800 端口,这里本地 IP 就填 8800
远程端口可以留空也可以自定义。下图仅做参考,请按照实际项目端口添加。

填写完毕点击确定
点击刚才创建好的隧道,点击获取配置文件

回到飞牛 NAS,点击应用中心下载 frpc 客户端

打开后粘贴刚才复制的配置文件,点击确定即可
复制帕斯内网穿透控制台的访问 IP 和端口
可以看到已经正常穿透成功了
本篇教程结束