pushdeer/doc/安装文档.md
2022-05-21 12:24:22 +08:00

5.0 KiB
Raw Blame History

PushDeer 安装文档

  • ⚠️ 当前PushDeer依然在开发中API和安装文档均有可能调整。
  • ⚠️ 当前安装文档支持 iOS、Mac和Android版
  • ⚠️ 当前MiPush直接调用官方接口未使用异步队列可能存在性能瓶颈

API服务器的安装

默认的 docker-compose 是为开发准备的,不适合放置到线上,以下做调整:

  1. MySQL服务独立出来,建议直接采用云厂商的数据库服务。
  2. 设置环境变量,关闭调试信息和接口
  3. 配置https

STEP0clone 项目代码

git clone https://github.com/easychen/pushdeer.git

STEP1 :编写线上环境的 docker-compose.yml ,替换环境变量

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

STEP2配置 SSL 证书

放置证书文件

申请域名对应的 SSL 证书,获得证书文件( example.crt )和私钥文件( example.key)。 在项目根目录下建立 ssl 目录,将证书文件重命名为 server.crt 和 私钥文件重命名为 server.key

如果你下载的证书中还包含根证书(root_crt),可将根证书文本追加到 server.crt 之后。

修改虚拟host配置

修改 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>

STEP3配置推送信息

iOS 推送

可直接使用PushDeer·自架版客户端。

如自行编译客户端需生成APP和Clip的推送证书并按以下方式配置

进入 push 目录,修改 *.yml.sample*.yml。其中iOS应用和Clip使用两个分开的证书进行推送ios.yml 是APP的配置、clip.yml 是Clip的配置。注意根据开发和产品状态修改yml中的值production

默认配置中,c.p12 是APP的推送证书、cc.p12是Clip的推送证书。

Android 推送( 采用MiPush实现

  1. 注册小米开发者,并创建应用(需要企业资质),获得包名形如com.pushdeer.appAppSecret(形如RWQf344dF==)
  2. 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"

STEP4构建并运行镜像

运行 docker-compose up -d --build启动API。访问 https://yourdomain.com 即可查看到API服务器默认网页。

iOS客户端的编译

编译

参考 ios 目录下的安装说明,配置项目

修改以下内容:

  1. 更换项目中的名称和标识( 如要上架商店请勿直接使用PushDeer的名称和标识
  2. 将项目中的 Bundle Identifier xcode.proj文件、General标签 )改为和通知证书响应的
  3. 将项目中的 签名和team更换为用于上架的开发者的xcode.proj文件、Signing & Capabilities标签
  4. 修改API接口中的域名,替换为之前安装的服务

Android客户端的编译

  1. 修改包名为上边小米推送应用中设置,不然推送时会返回bad target提示