共计 1603 个字符,预计需要花费 5 分钟才能阅读完成。
前言
最近家里搞了些微服务,需要一些消息推送,比如 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 异常,可再次执行命令检测