这个项目能做什么
Aurora 是一款开源的自托管 Web 分析应用程序,旨在衡量网站流量,且不在访客设备上存储任何内容。它不使用 Cookie、localStorage 或指纹识别,并将事件数据保存在由运营商控制的 PostgreSQL 数据库中。其浏览器跟踪脚本的传输大小为 2.4 KB。
访客通过基于 IP 地址、用户代理和服务器端盐值生成的轮换 HMAC 进行识别。哈希输入每天轮换一次,因此访客 ID 无法跨天关联,且任何离开浏览器的信息均旨在无法追溯到个人。这种方法被认为与 ePrivacy 第 5(3) 条相关,因为在 localStorage 等终端设备中存储信息被视为与 Cookie 类似。
仪表板可显示所选范围和时区的访问量、独立访客数、会话数、跳出率和平均会话时长。它包含一个 Recharts 时间序列图,以及针对页面、推荐来源、获客渠道、国家、浏览器、操作系统、设备、语言和 UTM 参数的细分分析。自定义事件可以携带标量属性和收入值(支持 ISO-4217 货币)。网站可以被标记为公开,以便在无需登录的情况下公开只读分析仪表板。
部署可通过为 linux/amd64 和 linux/arm64 发布的 Docker 镜像实现。必需的配置包括 DATABASE_URL 和 SESSION_SECRET,而在生产环境中则需要 AURORA_SALT。强烈建议配置 AURORA_IP_HEADER,以便由信任的代理跳数确定客户端 IP 数据;如果未设置,应用程序将发出警告并回退到客户端可设置的标头。AURORA_COUNTRY_HEADER 为可选,用于从边缘节点获取国家代码。
要跟踪网站,仪表板会提供一个带有网站 ID 的 script 标签。页面浏览量和客户端路由更改会自动跟踪。自定义事件通过调用全局 aurora 函数实现,该函数会排队处理在脚本加载前发出的调用。属性仅接受标量,最多 24 个键。
开发环境需要 Node 20+ 和 pnpm 10。该项目是一个 pnpm 工作区,包含一个 React Router Web 应用程序和一个捆绑到服务脚本中的 tracker 包。它使用了 Drizzle on PostgreSQL、Tailwind CSS 配合 shadcn/ui、Recharts、Vitest 以及 oxlint/oxfmt。提交遵循 Conventional Commits,发布通过 release-please 自动化,版本控制遵循 SemVer。Aurora 4 被描述为一次从零开始的重写,没有从 1.x 或 2.x 迁移的路径。该项目采用 MIT 许可证。
评论
0 评分人数达到10人后显示
登录后参与讨论。