⚠️ 当前PushDeer依然在开发中,API和安装文档均有可能调整。⚠️ 当前安装文档支持 iOS、Mac和Android版⚠️ 当前MiPush直接调用官方接口,未使用异步队列,可能存在性能瓶颈
默认的 docker-compose
是为开发准备的,不适合放置到线上,以下做调整:
- 将
MySQL
服务独立出来,建议直接采用云厂商的数据库服务。 - 设置环境变量,关闭调试信息和接口
- 配置https
git clone https://github.com/easychen/pushdeer.git
version: '2'
services:
redis:
image: 'bitnami/redis:6.0.16'
environment:
- ALLOW_EMPTY_PASSWORD=yes
app:
#image: 'webdevops/php-apache:8.0-alpine'
build: './docker/web/'
ports:
- '80:80'
- '443:443' # 开放 https 需要的接口
depends_on:
- redis
volumes:
- './:/app'
environment:
- DB_DATABASE=pushdeer
- DB_HOST=clouddb.com
- DB_PASSWORD=thep@ssw0rd
- DB_PORT=3306
- DB_TIMEZONE=+08:00
- DB_USERNAME=pushdeer
- APP_DEBUG=false
- GO_PUSH_IOS_TOPIC=com.pushdeer.self.ios
- GO_PUSH_IOS_CLIP_TOPIC=com.pushdeer.self.ios.Clip
申请域名对应的 SSL 证书,获得证书文件( example.crt
)和私钥文件( example.key
)。
在项目根目录下建立 ssl
目录,将证书文件重命名为 server.crt
和 私钥文件重命名为 server.key
。
如果你下载的证书中还包含根证书(root_crt),可将根证书文本追加到 server.crt
之后。
修改 docker/web/vhost.conf
中被注释掉的这三行。
<VirtualHost *:443>
ServerName yourdomain.com
ServerAlias *.vm docker.vm
DocumentRoot "/app/api/public"
<Directory /app/api/public>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
SSLEngine on
SSLCertificateFile /app/ssl/server.crt
SSLCertificateKeyFile /app/ssl/server.key
</VirtualHost>
可直接使用PushDeer·自架版
客户端。
如自行编译客户端,需生成APP和Clip的推送证书,并按以下方式配置:
进入 push 目录,修改 *.yml.sample
为 *.yml
。其中iOS应用和Clip使用两个分开的证书进行推送,ios.yml
是APP的配置、clip.yml
是Clip的配置。注意根据开发和产品状态,修改yml
中的值production
。
默认配置中,c.p12
是APP的推送证书、cc.p12
是Clip的推送证书。
- 注册小米开发者,并创建应用(需要企业资质),获得
包名
(形如com.pushdeer.app)和AppSecret
(形如RWQf344dF==) - 在
docker-compose.yml
中通过环境变量添加包名和AppSecret。
version: '2'
services:
redis:
image: 'bitnami/redis:6.0.16'
environment:
- ALLOW_EMPTY_PASSWORD=yes
app:
#image: 'webdevops/php-apache:8.0-alpine'
build: './docker/web/'
ports:
- '80:80'
- '443:443' # 开放 https 需要的接口
depends_on:
- redis
volumes:
- './:/app'
environment:
- DB_DATABASE=pushdeer
- DB_HOST=clouddb.com
- DB_PASSWORD=thep@ssw0rd
- DB_PORT=3306
- DB_TIMEZONE=+08:00
- DB_USERNAME=pushdeer
- APP_DEBUG=false
- ANDROID_PACKAGE="这里填写包名"
- MIPUSH_SECRET="这里填写小米推送应用的AppSecret"
运行 docker-compose up -d --build
,启动API。访问 https://yourdomain.com
即可查看到API服务器默认网页。
参考 ios 目录下的安装说明,配置项目
修改以下内容:
- 更换项目中的名称和标识( 如要上架商店,请勿直接使用PushDeer的名称和标识 )
- 将项目中的 Bundle Identifier ( xcode.proj文件、General标签 )改为和通知证书响应的
- 将项目中的 签名和team更换为用于上架的开发者的(xcode.proj文件、Signing & Capabilities标签)
- 修改API接口中的域名,替换为之前安装的服务
- 修改包名为上边小米推送应用中设置,不然推送时会返回
bad target
提示