From e14d92f072f623f0f904200ee41e6529f6d19ab8 Mon Sep 17 00:00:00 2001 From: Blucas <15555602203@163.com> Date: Thu, 17 Oct 2024 21:08:31 +0800 Subject: [PATCH] feat: add PageSpy app --- apps/pagespy/1.9.4/data.yml | 10 ++++++++ apps/pagespy/1.9.4/docker-compose.yml | 17 +++++++++++++ apps/pagespy/README.md | 33 ++++++++++++++++++++++++++ apps/pagespy/data.yml | 19 +++++++++++++++ apps/pagespy/logo.png | Bin 0 -> 9468 bytes 5 files changed, 79 insertions(+) create mode 100644 apps/pagespy/1.9.4/data.yml create mode 100644 apps/pagespy/1.9.4/docker-compose.yml create mode 100644 apps/pagespy/README.md create mode 100755 apps/pagespy/data.yml create mode 100644 apps/pagespy/logo.png diff --git a/apps/pagespy/1.9.4/data.yml b/apps/pagespy/1.9.4/data.yml new file mode 100644 index 00000000..340e6873 --- /dev/null +++ b/apps/pagespy/1.9.4/data.yml @@ -0,0 +1,10 @@ +additionalProperties: + formFields: + - default: 6752 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: WebUI Port + labelZh: 网页端口 + required: true + rule: paramPort + type: number diff --git a/apps/pagespy/1.9.4/docker-compose.yml b/apps/pagespy/1.9.4/docker-compose.yml new file mode 100644 index 00000000..dfa92255 --- /dev/null +++ b/apps/pagespy/1.9.4/docker-compose.yml @@ -0,0 +1,17 @@ +services: + pageSpy: + container_name: ${CONTAINER_NAME} + image: ghcr.io/huolalatech/page-spy-web:latest + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:6752" + volumes: + - ./log:/app/log + - ./data:/app/data + restart: always + labels: + createdBy: "Apps" +networks: + 1panel-network: + external: true diff --git a/apps/pagespy/README.md b/apps/pagespy/README.md new file mode 100644 index 00000000..6e598a13 --- /dev/null +++ b/apps/pagespy/README.md @@ -0,0 +1,33 @@ +# PageSpy + +PageSpy 是一款用来调试 Web / 小程序 / ReactNative 鸿蒙 APP 等平台项目的服务。 + +## 使用背景 + +控制台在日常开发中是必不可少的效率工具,项目问题总是第一时间通过它排查。但有时候无法使用控制台,因此而导致排查问题需要花费很多时间和人力,这就是 PageSpy 想去解决的问题。 + +看看下面的场景你是否遇到过: + +- **真机调试 H5**:以往有些产品提供了可以在 H5 上查看信息的面板,但真机屏幕太小操作不便、显示不友好,以及数据会被截断; +- **远程办公、异地协同**:传统沟通方式如邮件、电话、视频会议等,沟通问题的周期长、效率不高、故障信息不全面,容易误解误判; +- **用户设备白屏**:除了需要提前获知出现问题的用户信息,定位问题的方式包括查看数据监控、日志分析,甚至还要跑到客户现场等,这些方式依赖排障人员要理解业务场景、技术实现; +- **全局的 "问题反馈" 组件**:大多注重用户体验的网站,为了在产品出现故障后能收到反馈并及时解决,会在产品端为用户提供反馈问题的表单组件。从用户的角度这确实会提升好感,但用户提交的内容可能对于排查问题的帮助并不大,根本原因是:用户提交的基本上是文字概述和截图,或许还包含用户信息,但开发者更希望看到的是: + + - 用户的操作轨迹; + - 伴随着操作,程序的运行时行为数据。例如:打印的日志、发出的网络请求以及响应数据等内容; + +上述场景中列举的问题的共同点是:**开发者无法像使用本地控制台一样查看程序运行信息**。你也被这些问题困扰了吗?那 PageSpy 可以给你一些帮助。 + +## 主要功能 + +- **PC 端调试**:UI 交互符合开发者习惯、大屏看着更清晰; +- **多面板信息**:提供 Console / Network / Storage / System / Page 调试面板; +- **多平台的 SDK**:Web / 小程序 / ReactNative / 鸿蒙的 SDK 开箱即用,接入简单; +- **在线实时调试**:基于 WebSocket 连接实时查看客户端运行数据; +- **(离线)日志回放**:提供上传 / 下载日志功能,开发者通过日志可以回放用户操作,同时可选的可以进入离线模式; + +## 相关链接 + +- 官方文档: +- GitHub 开源仓库: +- B 站视频: diff --git a/apps/pagespy/data.yml b/apps/pagespy/data.yml new file mode 100755 index 00000000..93d421be --- /dev/null +++ b/apps/pagespy/data.yml @@ -0,0 +1,19 @@ +name: PageSpy +tags: + - 实用工具 +title: 支持远程调试多平台的开源工具 +description: 像使用浏览器控制台调试一样简单 +additionalProperties: + key: pagespy + name: PageSpy + tags: + - Tool + shortDescZh: 支持远程调试多平台的开源工具 + shortDescEn: Open-source tool supporting remote debugging for multi-platform projects + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 10 + website: https://pagespy.org + github: https://github.com/HuolalaTech/page-spy-web + document: https://www.pagespy.org/#/docs diff --git a/apps/pagespy/logo.png b/apps/pagespy/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9c4327c364e9316225af4cb810e38c0497e6dd05 GIT binary patch literal 9468 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