## 1. 概述
OpRight 是一个自托管的网站访问统计分析系统,专注于提供轻量级、高性能、隐私友好的网站分析解决方案。
Github地址 https://github.com/opcache/opright
### 1.1 设计理念
– 简单易用:一键部署,零配置启动
– 性能优先:嵌入式数据库,高效数据处理
– 隐私保护:无需 Cookie 同意弹窗,符合 GDPR 规范
– 资源节约:优化存储空间,高效数据压缩
## 2. 系统架构
### 2.1 整体架构
“`
┌─────────────┐
│ Browser │
└─────────────┘
↑
│
↓
┌──────────────┐ ┌─────────────┐
│ Tracking.js │ ←───────────────→│ Frontend │
└──────────────┘ └─────────────┘
↑
│
↓
┌─────────────┐
│ Backend │
└─────────────┘
↑
│
↓
┌─────────────┐
│ Database │
└─────────────┘
“`
### 2.2 核心组件
1. 前端追踪脚本 (Tracking.js)
– 轻量级设计 (<10KB)
– 无依赖
– 异步加载
2. Web 前端 (Angular)
– 组件化架构
– 响应式设计
– 实时数据更新
3. 后端服务 (Go)
– RESTful API
– WebSocket 支持
– 高并发处理
4. 嵌入式数据库
– 高效存储
– 实时查询
– 数据压缩
## 3. 技术实现
### 3.1 数据采集
– 会话跟踪机制
– 页面访问记录
– 用户行为分析
– 性能指标收集
### 3.2 数据处理
– 实时统计计算
– 数据聚合分析
– 地理位置解析
– 设备信息识别
### 3.3 数据存储
– 分片存储策略
– 压缩算法应用
– 索引优化
– 备份机制
### 3.4 安全机制
– JWT 认证
– HTTPS 加密
– XSS 防护
– CSRF 防护
## 4. 性能指标
### 4.1 系统性能
– 并发处理:10,000+ 请求/秒
– 响应时间:<100ms
– CPU 使用率:<30%
– 内存占用:<500MB
### 4.2 存储效率
– 数据压缩比:>70%
– 单会话存储:约 2KB
– 每日数据量:约 100MB/百万PV
## 5. 部署要求
### 5.1 硬件要求
– CPU: 2+ 核心
– 内存: 2GB+
– 存储: 50GB+
– 网络: 100Mbps+
### 5.2 软件要求
– 操作系统: Linux (x64)
– Node.js: 14+
– Go: 1.16+
– GeoIP 数据库
## 6. 扩展性设计
### 6.1 水平扩展
– 多实例部署
– 负载均衡
– 数据分片
### 6.2 功能扩展
– 插件系统
– API 接口
– 自定义事件
## 7. 数据隐私
### 7.1 GDPR 合规
– 无需 Cookie 同意
– 最小数据收集
– 数据匿名化
– 数据删除机制
### 7.2 数据安全
– 传输加密
– 存储加密
– 访问控制
– 审计日志
## 8. 未来规划
### 8.1 近期计划
– 压缩日志存储
– 实时告警系统
– 自定义报表
– API 文档完善
### 8.2 长期目标
– 机器学习分析
– 多语言支持
– 移动端应用
– 云服务集成
## 9. 技术规范
### 9.1 代码规范
– Angular 风格指南
– Go 代码规范
– ESLint 配置
– 单元测试要求
### 9.2 API 规范
– RESTful 设计
– 版本控制
– 错误处理
– 响应格式
## 10. 参考文献
1. Angular 官方文档
2. Go 语言规范
3. GDPR 技术指南
4. Web 分析标准
## 附录
### A. API 文档
### B. 数据模型
### C. 错误代码
### D. 配置参数