diff --git a/.gitee/ISSUE_TEMPLATE.zh-CN.md b/.gitee/ISSUE_TEMPLATE.zh-CN.md index 0f2c275..96c81bb 100644 --- a/.gitee/ISSUE_TEMPLATE.zh-CN.md +++ b/.gitee/ISSUE_TEMPLATE.zh-CN.md @@ -1,4 +1,5 @@ **描述你遇到的Bug** + 请用精确的语言描述你的遇到的问题,不要用「不能用」,「报错」等模糊字眼,要提供具体的信息,如报错信息是什么,最好能提供截图 以下内容不是必填,但越详细越能帮助我们解决问题。 @@ -16,6 +17,19 @@ **截图** +**自架服务器端请填写以下信息** + +按 [调试文档](/doc/调试文档.md) 进行调试的结果: + +**API服务启动输出截图** + +**联通性测试截图** + +**命令行推送返回截图** + + +**客户端请填写以下信息** + **环境和版本** - 系统: [如 Mac、iOS、Android、ESP] - 版本: [如自架版1.2,官方版1.2] diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 514cb61..36129ae 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -8,6 +8,7 @@ assignees: '' --- **描述你遇到的Bug** + 请用精确的语言描述你的遇到的问题,不要用「不能用」,「报错」等模糊字眼,要提供具体的信息,如报错信息是什么,最好能提供截图 以下内容不是必填,但越详细越能帮助我们解决问题。 @@ -25,6 +26,19 @@ assignees: '' **截图** +**自架服务器端请填写以下信息** + +按 [调试文档](/doc/调试文档.md) 进行调试的结果: + +**API服务启动输出截图** + +**联通性测试截图** + +**命令行推送返回截图** + + +**客户端请填写以下信息** + **环境和版本** - 系统: [如 Mac、iOS、Android、ESP] - 版本: [如自架版1.2,官方版1.2] diff --git a/README.md b/README.md index be6a2a6..d7acaae 100644 --- a/README.md +++ b/README.md @@ -171,6 +171,8 @@ docker-compose -f docker-compose.self-hosted.yml up --build -d > ⚠️ 自架服务器端需每年2月拉取一次更新推送证书 +如果您在部署中遇到问题,可按[调试文档](/doc/调试文档.md)定位并发现错误信息。 + #### 单一容器部署方案 对于很多不能运行docker-compose的容器环境,可以直接使用 pushdeer 镜像。该镜像中已经包含了 redis 服务,但需要通过环境变量指定数据库等信息: diff --git a/doc/调试文档.md b/doc/调试文档.md index 6fabbf5..c0e886c 100644 --- a/doc/调试文档.md +++ b/doc/调试文档.md @@ -1,9 +1,73 @@ # 调试FAQ +## 服务启动调试 + +首先确定API服务是否正常启动。为了能查看到详细信息,请先将已经启动的服务停止: + +``` +docker-compose down +``` + +然后将原来启动命令中的 `-d` 去掉,再次启动。比如使用自架版,则改为: + +``` +docker-compose -f docker-compose.self-hosted.yml up --build +``` + +这时候就可以在终端中看到启动的详细信息了。正常情况下,最后显示的信息应该类似: + +``` +app_1 | [SYSLOG] syslog-ng[87]: syslog-ng starting up; version='3.19.1' +app_1 | [Mon Feb 21 06:36:37.921458 2022] [mpm_event:notice] [pid 92:tid 140276671722624] AH00489: Apache/2.4.38 (Debian) OpenSSL/1.1.1d configured -- resuming normal operations +app_1 | [Mon Feb 21 06:36:37.922027 2022] [core:notice] [pid 92:tid 140276671722624] AH00094: Command line: 'apache2 -D FOREGROUND -D APACHE_LOCK_DIR' +app_1 | [21-Feb-2022 06:36:37] NOTICE: fpm is running, pid 91 +app_1 | [21-Feb-2022 06:36:37] NOTICE: ready to handle connections +app_1 | 2022-02-21 06:36:38,997 INFO success: syslogd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) +app_1 | 2022-02-21 06:36:38,997 INFO success: redis entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) +app_1 | 2022-02-21 06:36:38,997 INFO success: push-ios entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) +app_1 | 2022-02-21 06:36:38,997 INFO success: push-clip entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) +``` + +## End point 连通性测试 + +如果API服务启动没有报错信息,而客户端依然提示连接API错误,请测试 end point 和API服务器之间的连通性。 + +在安装APP的设备上打开浏览器,输入 API end point 地址访问,查看是否可以看到默认的提示信息。 + +也可以用 postman 等工具结合[API文档](https://github.com/easychen/pushdeer#api-%E8%AF%B4%E6%98%8E) 进行测试。 + +为了方便测试(比如使用模拟登入),可修改你使用的 `docker-compose` 文件,将 `APP_DEBUG` 设置为 `true`。比如使用自架版,请修改 `docker-compose.self-hosted.yml`: + +``` + - GO_PUSH_IOS_TOPIC=com.pushdeer.self.ios + - GO_PUSH_IOS_CLIP_TOPIC=com.pushdeer.self.ios.Clip + - APP_DEBUG=true +``` + ## 推送调试 -命令行测试: +如果您的API服务架设成功,且除了推送之外的功能均可使用,那么您可以进入到 docker 容器中进一步调试推送服务。 + +首先运行 ```bash -../docker/web/gorush -ios -m "推送内容" -c "ios.yml" --topic "com.pushdeer.app.ios" -t "DeviceToken" -``` \ No newline at end of file +sudo docker ps +``` + +查看 app_1 对应的 contianer id。 + +然后运行 + +``` +sudo docker exec -it /bin/bash +``` + +进入容器。 + +接着就可以通过命令行进行推送了测试: + +```bash +cd /app/push && /data/gorush -ios -m "推送内容" -c "ios.yml" --topic "com.pushdeer.self.ios" -t "DeviceToken" +``` + +其中 DeviceToken 可以通过[设备列表](https://github.com/easychen/pushdeer#%E8%AE%BE%E5%A4%87%E5%88%97%E8%A1%A8) 接口获得。 \ No newline at end of file