这个项目能做什么
## 概述
Lytics 是一个注重用户隐私的自托管网页分析套件。它提供标准流量指标、基于自定义 SQL 的查询以及展示页面用户交互情况的可视化热力图。该项目分为多个模块:
- **lytics-ping** – 轻量级 HTTP 端点,用于接收来自 JavaScript 标签的跟踪数据。
- **lytics-app** – 主 Quarkus 服务,负责存储数据、生成报告并提供用户界面。
- **lytics-query** – 验证并转译报告和热力图使用的 SQL 查询。
- **tag** – 小型 JavaScript 片段,网站所有者可嵌入其中以向 ping 服务发送事件。
- **offsite** – 从独立域名加载的热力图的 JavaScript 及渲染逻辑。
- **schemas** – MariaDB/MySQL 和 ClickHouse 的数据库模式定义。
## 架构
该平台将原始事件存储在 ClickHouse 中以实现高性能分析,而关系型元数据则保存在 MariaDB/MySQL 中。基于 Quarkus 的服务通过 HTTP 进行通信,并通过 `application.properties` 共享配置。热力图渲染由客户端使用外部脚本完成,该脚本使用 npm 构建并通过 Quarkus 服务器作为静态资源提供。
## 快速开始
1. **数据库设置** – 部署 MariaDB/MySQL 实例和 ClickHouse 集群,并应用 `schemas` 目录中的模式。
2. **配置** – 编辑 `lytics-app/src/main/resources/application.properties` 文件,填写连接字符串和所需选项。
3. **构建** – 运行 `mvn package` 编译所有模块。
4. **运行服务**:
```bash
java -Dquarkus.config.locations=application.properties -jar lytics-ping/target/lytics-ping-1.0.0-SNAPSHOT-runner.jar
java -Dquarkus.config.locations=application.properties -jar lytics-app/target/lytics-app-1.0.0-SNAPSHOT-runner.jar
```
5. **开发** – 在 IntelliJ 中使用 Quarkus 插件或命令行运行 `quarkus dev`。对于热力图脚本更改,在 `offsite` 目录中运行 `npm run watch`;输出文件位于 `lytics-app/src/main/resources/web/static/offsite/offsite.min.js`。
## 故障排除
如果遇到依赖解析问题或 IDE 错误,可以尝试清理重装:
```bash
mvn clean install -U
```
## 应用场景
- 无法使用第三方分析工具的网站所需的合规访客追踪。
- 不泄露用户数据的前提下理解点击与滚动行为的可视化热力图。
- 自定义 SQL 查询,用于高级报表和数据导出。
Lytics 为需要对数据存储和处理拥有细粒度控制的企业提供了完整的本地化分析解决方案。
评论
0 评分人数达到10人后显示
登录后参与讨论。