From 637b1311fc44cf055cac7cff133e05b789b1645d Mon Sep 17 00:00:00 2001 From: Easy Date: Tue, 18 Jan 2022 12:32:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=AE=89=E8=A3=85=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 +++-- doc/安装文档.md | 96 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 doc/安装文档.md diff --git a/README.md b/README.md index 9661994..3d6ae08 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # PushDeer -PushDeer开源版,可以自行架设的无APP推送服务(WIP,当前项目只实现了后端API,其他部分正在施工🚧) +PushDeer开源版,可以自行架设的无APP推送服务(WIP,API和iOS第一版本开发完成,其他部分正在施工🚧) [🐙🐱 GitHub仓库](https://github.com/easychen/pushdeer) [🔮 中国大陆镜像仓库](https://gitee.com/easychen/pushdeer) @@ -14,11 +14,15 @@ PushDeer开源版,可以自行架设的无APP推送服务(WIP,当前项目 |功能|领取人|预期完成时间|最低版本兼容|本周进度| |-|-|-|-|-| -|iOS/MacApp+Clip开发|[Hext123](https://github.com/Hext123)|2022年1月20日|iOS14|主体功能开发完成,下周细节优化| +|iOS/MacApp+Clip开发|[Hext123](https://github.com/Hext123)|2022年1月20日|iOS14|第一版完成,代码在iOS目录下| |Android客户端|[WolfHugo](https://github.com/alone-wolf)|2022年2月24日|5.1|接入mipush,device/key/message列表,markdown,pushtest,device自动注册| |快应用|[7YHong](https://github.com/7YHong)|2022年2月27日|-|完成快应用界面展示部分,下周对接API| |API完善和更新|[古俊杰](https://github.com/ilovintit)|配合客户端同步更新|-|添加自动生成swgger文档功能中| +## 安装文档 + +- 𐂂 [点此查看](doc/安装文档.md) + ## 相关项目 - [Android客户端临时仓库](https://github.com/alone-wolf/pushdeer_for_android) diff --git a/doc/安装文档.md b/doc/安装文档.md new file mode 100644 index 0000000..a8f8f55 --- /dev/null +++ b/doc/安装文档.md @@ -0,0 +1,96 @@ + +# PushDeer 安装文档 + + - ⚠️ 当前PushDeer依然在开发中,API和安装文档均有可能调整。 + - ⚠️ 当前安装文档仅 iOS 版可用 + +## API服务器的安装 + +默认的 `docker-compose` 是为开发准备的,不适合放置到线上,以下做调整: + +1. 将`MySQL`服务独立出来,建议直接采用云厂商的数据库服务。 +1. 设置环境变量,关闭调试信息和接口 +1. 配置https + +### STEP0:clone 项目代码 + +`git clone https://github.com/easychen/pushdeer.git` + +### STEP1 :编写线上环境的 docker-compose.yml + +```yml +version: '2' +services: + app: + #image: 'webdevops/php-apache:8.0-alpine' + build: './docker/web/' + ports: + - '80:80' + - '443:443' // 开放 https 需要的接口 + 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 +``` + +### STEP2:配置 SSL 证书 + +#### 放置证书文件 + +申请域名对应的 SSL 证书,获得证书文件( `example.crt` )和私钥文件( `example.key`)。 +在项目根目录下建立 `ssl` 目录,将证书文件重命名为 `server.crt` 和 私钥文件重命名为 `server.key` 。 + +如果你下载的证书中还包含根证书(root_crt),可将根证书文本追加到 `server.crt` 之后。 + +#### 修改虚拟host配置 + +修改 `docker/web/vhost.conf` 中被注释掉的[这三行](https://github.com/easychen/pushdeer/blob/10e4d3bb62d8d66d4739598a8f4af32eda4cceef/docker/web/vhost.conf#L27)。 + +```conf + + ServerName yourdomain.com + ServerAlias *.vm docker.vm + DocumentRoot "/app/api/public" + + Options FollowSymLinks MultiViews + AllowOverride All + Order allow,deny + allow from all + + SSLEngine on + SSLCertificateFile /app/ssl/server.crt + SSLCertificateKeyFile /app/ssl/server.key + +``` + +### STEP3:配置推送证书 + +进入 push 目录,修改 `*.yml.sample` 为 `*.yml`。其中iOS应用和Clip使用两个分开的证书进行推送,`ios.yml` 是APP的配置、`clip.yml` 是Clip的配置。注意根据开发和产品状态,修改`yml`中的值`production`。 + +默认配置中,`c.p12` 是APP的推送证书、`cc.p12`是Clip的推送证书。 + +### STEP4:构建并运行镜像 + +运行 `docker-compose up -d --build`,启动API。访问 `https://yourdomain.com` 即可查看到API服务器默认网页。 + +## iOS客户端的编译 + +### 编译 + +参考 ios 目录下的[安装说明](https://github.com/easychen/pushdeer/tree/main/ios/PushDeer-iOS),配置项目 + +修改以下内容: + +1. 更换项目中的名称和标识( 请勿直接使用PushDeer的名称和标识 ) +1. 将项目中的 Bundle Identifier ( xcode.proj文件、General标签 )改为和通知证书响应的 +1. 将项目中的 签名和team更换为用于上架的开发者的(xcode.proj文件、Signing & Capabilities标签) +1. 修改[API接口中的域名](https://github.com/easychen/pushdeer/blob/10e4d3bb62d8d66d4739598a8f4af32eda4cceef/ios/PushDeer-iOS/PushDeer/Service/PushDeerApi.swift#L37),替换为之前安装的服务 + + +