群晖搭建Pushdeer消息推送
前言
最近家里搞了些微服务,需要一些消息推送,比如 ha 的 设备推送
等,目前网上有的推送感觉一是不太稳定 / 二氪金,所以既然自己有服务,就可以搭建,所以一路摸索,最终实现。
Pushdeer
官方地址:http://www.pushdeer.com,可以用官方版,也可以自架构,目前对于 Mac 和 Ios 的推送是毕竟友好的,安卓的 app 自架构版好像还不行,群晖搭建的话肯定是 自架构版本
,如果推送些毕竟敏感的信息,例如验证码等,感觉走局域网
是比较安全的。
docker-compose
1. 创建 docker-compose.yml
文件,并复制下方代码到文件中
version: '2.1' | |
services: | |
mariadb: | |
image: mariadb:10.6 | |
container_name: pushdeer_mariadb | |
healthcheck: | |
test: ["CMD", "mysqladmin", "ping", "--silent","--password=$$MYSQL_ROOT_PASSWORD"] | |
timeout: 10s | |
retries: 3 | |
volumes: | |
- ./data:/var/lib/mysql | |
environment: | |
- MYSQL_ROOT_PASSWORD=theVeryp@ssw0rd | |
- MYSQL_DATABASE=pushdeer | |
- MYSQL_USER=pushdeer | |
- MYSQL_PASSWORD=123456 | |
redis: | |
image: redis:6.2 | |
container_name: pushdeer_redis | |
healthcheck: | |
test: ["CMD", "redis-cli","ping"] | |
environment: | |
- ALLOW_EMPTY_PASSWORD=yes | |
app: | |
image: wbsu2003/pushdeer:latest | |
#build: './docker/web/' | |
container_name: pushdeer_app | |
ports: | |
- 8820:80 | |
volumes: | |
- ./app:/app | |
depends_on: | |
mariadb: | |
condition: service_healthy | |
redis: | |
condition: service_healthy | |
environment: | |
- DB_HOST=mariadb | |
- DB_PORT=3306 | |
- DB_USERNAME=pushdeer | |
- DB_DATABASE=pushdeer | |
- DB_PASSWORD=123456 | |
- GO_PUSH_IOS_TOPIC=com.pushdeer.self.ios | |
- GO_PUSH_IOS_CLIP_TOPIC=com.pushdeer.self.ios.Clip | |
- APP_DEBUG=true |
2.docker 文件夹下创建 pushdeer,文件夹下创建两个子文件夹 app 和 data,然后把 docker-compose.yml
文件放到 pushdeer
文件夹下面
3. 右击 docker-compose.yml 属性 – 位置,复制一下路径,例如:/volume1/docker/pushdeer/
4. 进入群晖 ssh,按照下面命令
cd /volume1/docker/pushdeer/
docker-compose up -d
5. 坐等创建 docker,会创建三个 docker,一个是数据库,一个是 pushdeer,一个是 redis,可以通过群晖 docker 等三个 docker 都创建完,查看 pushdeer-app 的 docker 日志,等到显示 end 即可完成
通过局域网地址,例如你的群晖地址是:192.168.1.10:8820
如果页面显示感谢字眼,即可部署完毕,ios 可通过扫码页面二维码进行绑定
常见错误
1. 镜像拉取失败,可通过 docker 注册表把三个 docker 的镜像提前下好,再进行部署,最好加一下阿里云 docker 加速
2.docker 异常,可再次执行命令检测