Aptabase 介绍与选型指南
Aptabase(隐私优先的移动/桌面应用事件分析,Firebase Analytics 开源替代)介绍与选型:技术栈与数据链路、SDK 生态、自托管形态、与 PostHog/Umami/Plausible/Countly/Matomo 的量化对比。
Aptabase 介绍与选型指南
目标:讲清 Aptabase 是什么、为谁设计、数据如何流动,并用量化维度与同类产品对比,帮助读者判断「我的 App 产品分析该不该选它」。本文为认知与选型篇,全部信息来自官方渠道联网溯源(来源与查询日期见「一、环境信息」),实测部署、配置与 API 细节分别见部署、配置与 API 各专题篇。
一、环境信息
本文是 A1 认知篇,不涉及本地部署,所有事实均来自官方公开渠道,溯源信息如下:
- 溯源查询日期:2026-10-30
- 官方网站:https://aptabase.com
- 主仓库:https://github.com/aptabase/aptabase
- 自托管指南仓库:https://github.com/aptabase/self-hosting
- 版本取证方式:GitHub Releases Atom Feed
https://github.com/aptabase/aptabase/releases.atom与 shields.io 徽章(当日直连实测,详见正文各处标注) - 适用读者:为移动端 / 桌面端 / Web 应用选型产品分析平台的开发者与运维人员
二、软件概述
2.1 项目定位
Aptabase 是一个开源、隐私优先的应用分析(Analytics for Apps)平台,官方将其定位为 Firebase Analytics / Google Analytics 的开源替代,专门面向 Mobile、Desktop 和 Web 应用。它与常见网站分析工具的最大差异在「分析对象」:Aptabase 的数据模型以「App + 事件」为中心,天然面向客户端应用(iOS、Android、桌面软件、游戏、Electron 应用等)而非网页浏览行为。
其核心主张(来源:官方主仓库 README,查询日期 2026-10-30):
- 隐私优先(Privacy-First):采集最小化使用数据,不使用唯一设备/用户标识符,以会话(session)为基本监测单元,宣称完全符合 GDPR、CCPA、PECR 合规要求;
- 简单(Simple):内置开箱即用的仪表盘,覆盖核心指标,无需自行搭建 BI;
- 开源(Open-Source):服务端代码与全部 SDK 均 100% 开源,可审计、可自托管。
2.2 许可与商业形态
| 维度 | 事实(查询日期 2026-10-30) | 来源 |
|---|---|---|
| 开源许可 | AGPL-3.0 | shields.io license 徽章(当日实测返回 AGPL-3.0) |
| GitHub 星数 | 约 1.9k | shields.io stars 徽章(当日实测返回 1.9k) |
| 发布形态 | 主仓库不使用 GitHub Releases:releases.atom 为空 feed(2026-10-30 实测,feed 仅有元数据无条目),自托管镜像以 ghcr.io/aptabase/aptabase:main 滚动 tag 分发 | releases.atom 当日实测 |
| 商业形态 | 双轨制:Managed Cloud(官方托管,EU/US 区域)+ 开源自托管(免费,自行维护) | 主仓库 README「Managed Cloud / Self-Hosted」章节 |
| 云托管计费 | 云托管版内置计费能力(代码中含 LemonSqueezy 计费集成配置项),自托管版不涉及 | 仓库 src/Features/EnvSettings.cs(查询日期 2026-10-30) |
⚠️ 注意:AGPL-3.0 是强传染性许可。若你在改造 Aptabase 源码后通过网络向第三方提供服务,需要按 AGPL 义务开源修改后的服务端源码。仅原样自托管、不做二次分发的内部使用场景通常风险可控,但商用前建议做法务评审。
2.3 版本与发布节奏
Aptabase 采取「主干滚动」发布模式:没有语义化的版本号 Release,自托管用户跟随 :main 镜像 tag 更新。数据库结构变更由应用启动时的 FluentMigrator 自动迁移完成(在主仓库源码中可见 migration_history 迁移表设计)。这对运维的含义是:
- 「固定版本 + 长期不动」的运维模式与该项目发布模型不匹配,升级以「定期拉取 main 镜像 + 数据自动迁移」为主;
- 没有官方的版本对照表与 changelog 页面,变更跟踪依赖仓库 commit 历史。
三、核心架构
3.1 技术栈与数据流
Aptabase 服务端基于 C# / .NET(ASP.NET Core)构建,部署形态为单应用进程 + 两类存储。官方自托管编排(来源:aptabase/self-hosting 仓库 docker-compose.yml,查询日期 2026-10-30)包含三个服务:
| 角色 | 组件 | 职责 |
|---|---|---|
| 应用服务 | Aptabase(.NET) | Web 控制台、事件接收(Ingestion)、鉴权、面板查询聚合 |
| 元数据存储 | PostgreSQL 15 | 用户、应用(apps)、分享、功能开关、计费订阅等业务元数据 |
| 事件存储 | ClickHouse 23.8 | 事件明细与会话数据的列式存储,支撑大规模事件的聚合查询 |
端到端数据流(依据官方仓库代码结构与自托管配置归纳):
客户端 SDK(Swift/Kotlin/Flutter/…)
│ HTTPS POST 事件(App-Key 鉴权)
▼
Aptabase 应用服务 /api/v0/event
│ 校验 AppKey → 会话归并 → 应用内缓冲
▼
EventBackgroundWritter 批量写入
▼
ClickHouse(事件明细/会话表) PostgreSQL(元数据)
│ │
▼ ▼
仪表盘聚合查询 /api/_stats/* 控制台业务数据 /api/_apps、/api/_auth/*
隐私设计上有两个值得注意的机制(来源:主仓库代码,查询日期 2026-10-30):一是「每日盐值(daily salts)」——数据库含 app_salts 表且应用内有定时清理任务(PurgeDailySaltsCronJob),配合「不落唯一标识符」的策略,使事件无法跨天长期追踪到单一设备;二是事件入库时对操作系统/版本等系统属性做会话维度归并,而非记录精确到个人的行为轨迹。
3.2 事件存储选型说明
💡 技术拓展:分析类产品的「事件存储引擎」主流有三类路线——
路线 代表 特点 适用场景 列式 OLAP(ClickHouse 等) Aptabase 自托管、PostHog(可选 ClickHouse) 压缩比高、聚合查询快,适合亿级事件 事件量大、面板聚合为主 通用关系库(PostgreSQL 等) Umami、Fathom 运维简单、生态成熟,超大数据量后聚合变慢 中小流量、轻量部署 云端管道(Tinybird/BigQuery 等) Aptabase 云托管版(Tinybird) 免运维、按量付费,绑定云服务 不想自建存储的 SaaS 用户 Aptabase 的取舍:云托管版走 Tinybird 管道,自托管版走 ClickHouse,两条路线由环境变量切换(
TINYBIRD_*与CLICKHOUSE_URL)。本文与后续实测均针对自托管(ClickHouse)形态。
四、功能特性
4.1 SDK 生态(核心优势)
Aptabase 官方维护的 SDK 覆盖主流客户端技术栈(来源:主仓库 README「SDKs」章节,查询日期 2026-10-30):
| 平台 | SDK 仓库 |
|---|---|
| iOS / macOS(Swift) | aptabase/aptabase-swift |
| Android(Kotlin) | aptabase/aptabase-kotlin |
| React Native | aptabase/aptabase-react-native |
| Flutter | aptabase/aptabase_flutter |
| Tauri | aptabase/tauri-plugin-aptabase |
| .NET MAUI | aptabase/aptabase-maui |
| Electron | aptabase/aptabase-electron |
| Web(JS) | aptabase/aptabase-js |
| Unreal Engine | aptabase/aptabase-unreal |
| Unity Engine | aptabase/aptabase-unity |
| NativeScript | nstudio/nativescript-plugins(nativescript-aptabase) |
官方还提供「自建 SDK 指南」(主仓库 Wiki:How to build your own SDK)——SDK 本质上是按约定格式向 /api/v0/event 端点上报 JSON,接入自有客户端(如私有框架、嵌入式设备)的门槛不高。API 上报协议的字段与实测响应详见 《Aptabase API 使用详解》。
4.2 分析能力
依据官方 README 与仓库代码(查询日期 2026-10-30):
- 核心指标面板:活跃用户、会话数、事件数、平均时长等,按时间区间对比展示;
- 维度细分:操作系统、OS 版本、设备型号、地区(国家/区域)、应用版本、构建号、事件 Top 榜、事件属性(props)Top 榜等(对应服务端 stats 系列接口);
- 实时类视图:代码中含 live sessions / live geo 相关接口,支撑近实时会话观察;
- 共享与协作:应用可分享给其他账号(owner/editor 角色体系);
- 功能开关(Feature Flags):主仓库代码含
/api/_flags管理接口与/api/v0/feature-flags客户端取值接口(查询日期 2026-10-30 时代码已具备,属较新能力,使用前建议以官方文档确认当前状态); - 错误追踪(Error Reporting):主仓库代码含
/api/v0/error上报接口与错误聚合接口(数据库迁移中含 AddErrorTracking,同属较新能力)。
4.3 与「隐私优先」相关的具体行为
- 不采集唯一标识:SDK 不上报 IDFA/GAID/设备序列号等持久唯一 ID,用户识别以匿名会话为主;
- 每日盐值轮换:见 3.1 节,限制跨天长期画像能力;
- 邮件依赖轻量:默认不配置 SMTP 时,注册激活/登录邮件直接写入应用日志(LoggerEmailClient),内网/离线环境无邮件服务也能完成账号激活——这一行为在官方自托管指南中有明示(来源:aptabase/self-hosting README,查询日期 2026-10-30)。
五、快速开始(最小可用示例)
5.1 自托管三步走(官方口径)
官方自托管指南(来源:https://github.com/aptabase/self-hosting ,查询日期 2026-10-30)的最小流程:
- 准备一台装有较新版本 Docker 的主机;
- 获取官方编排文件并按需修改(重点改
BASE_URL、AUTH_SECRET与两个数据库口令,官方默认值仅为示例占位); - 启动服务后访问
http://localhost:8000即可打开控制台。
首次使用没有预置账号:注册第一个账号后,激活链接会出现在应用日志中(未配置 SMTP 时),点击日志中的链接即完成激活。完整的逐条命令、端口规划、数据持久化与验证回显,见 《Aptabase Docker Compose 部署指南》;环境变量逐项说明见 《Aptabase 配置参数详解》。
5.2 云托管(免运维路线)
访问 https://aptabase.com 注册云托管账号,创建 App 后按平台引导集成 SDK 即可,无需自管 Postgres/ClickHouse。适合「只想用产品、不想养服务」的团队;数据主权与合规敏感场景则优先自托管。
六、适用场景与限制
6.1 适合的场景
- 移动/桌面 App 产品分析:SDK 生态是同类自托管产品中最全的(Swift/Kotlin/Flutter/RN/游戏引擎等 11 个官方 SDK),游戏与桌面软件团队尤其受益;
- 隐私合规驱动:面向欧盟用户、儿童类应用、企业内网工具等「不能埋唯一标识、不能送第三方 SaaS」的场景;
- 轻量自托管:三个服务即可跑起全套(应用 + Postgres + ClickHouse),无消息队列、无对象存储等重依赖;
- 需要私有化的事件资产:AGPL 开源 + 数据全落自建库,可自由做二次分析(ClickHouse 可直连查询)。
6.2 限制与注意
| 限制 | 影响 | 缓解方式 |
|---|---|---|
| 无语义化版本 Release | 无法锁定「某个稳定大版本」,升级跟随 main 镜像 | 升级前备份两个数据库;固定 digest 拉镜像 |
| 自托管默认无 SMTP | 账号激活/登录链接只能从日志中取 | 生产环境配置 SMTP 环境变量(见配置专题篇) |
| HTTPS 约束 | 认证 Cookie 带 Secure 属性,纯 HTTP 访问会出现「登录成功但会话保持失败」 | 前置 Nginx/Caddy 做 TLS 反代,BASE_URL 用 https:// |
| 无官方集群/高可用方案 | 官方仅提供单实例自托管编排 | 中小规模单机足够;超大规模需自行改造并评估 |
| 网站分析能力弱 | 面向 App 事件模型,无网页浏览 PV/UV 常规报表体系 | 网站分析场景改选 Umami/Plausible/Matomo(见第七章) |
| AGPL-3.0 | 二次改造后对外提供服务需开源服务端 | 法务评审;或仅原样使用 |
七、同类选型对比
7.1 量化对比表
下表为隐私优先/开源可自托管的产品分析(含 App 与网站分析)主流选项量化对比,星数与许可证均为 2026-10-30 经 shields.io 当日实测取证:
| 产品 | 定位 | 服务端技术栈 | 事件存储 | 许可 | GitHub 星数 | 自托管部署复杂度 | App SDK 生态 |
|---|---|---|---|---|---|---|---|
| Aptabase | 移动/桌面/Web 应用事件分析 | C#/.NET | ClickHouse(云版 Tinybird) | AGPL-3.0 | 1.9k | 低(3 服务编排) | 11 个官方 SDK,全栈覆盖含游戏引擎 |
| PostHog | 全功能产品分析(事件+回放+实验+Feature Flag) | Python/Django + Node | ClickHouse | MIT 系自定义(shields 当日未识别,以其仓库 LICENSE 为准) | 41k | 高(组件多,官方主推 Helm/k8s) | 较全(iOS/Android/Flutter/RN/JS 等) |
| Umami | 网站分析(轻量 PV/UV) | Node.js | PostgreSQL/MySQL | MIT | 40k | 极低(1 应用 + 1 库) | 几乎无(面向 Web) |
| Plausible | 网站分析(合规轻量) | Elixir/Phoenix | ClickHouse | AGPL-3.0 | 30k | 低-中 | 面向 Web |
| Matomo | 网站分析(传统全功能) | PHP | MySQL/MariaDB | GPL-3.0 | 22k | 低(经典 LAMP) | 移动 SDK 为社区维护 |
| Countly | 移动/网页产品分析(企业级) | Node.js + MongoDB | MongoDB 为主 | 社区版 GPL-3.0 | 5.9k | 中-高 | 较全(官方移动 SDK 多) |
| Mixpanel | 产品分析(闭源 SaaS) | 闭源 | 闭源 | 专有 | —(SaaS) | 无自托管 | 很全 |
表内解读:星数反映社区热度而非能力高低——Umami/Plausible 的高星来自「网站分析 + 一键部署」的极广受众;PostHog 的 41k 来自全功能产品分析生态;Aptabase 星数虽最低,但在「App 事件分析 + 自托管轻量 + 隐私设计」这个细分组合上差异化明确,且是本表中唯一官方维护游戏引擎(Unreal/Unity)SDK 的产品。
7.2 「如果…则…」选型建议
- 如果分析对象是移动 App / 桌面软件 / 游戏,且希望自托管、部署简单 → 选 Aptabase;
- 如果需要会话回放、A/B 实验、复杂漏斗留存探索等全功能 → 选 PostHog(接受其部署复杂度与资源占用);
- 如果分析对象是网站,追求极简与 MIT 宽松许可 → 选 Umami(见 《Umami 介绍与选型指南》);
- 如果是网站分析 + 欧盟合规叙事、偏好 ClickHouse 存储 → 选 Plausible(见 《Plausible 介绍与选型指南》);
- 如果需要传统网站分析的全量报表 + 插件生态 → 选 Matomo;
- 如果是移动分析且能接受 MongoDB 依赖与企业版销售流程 → 看 Countly;
- 如果不想自管任何设施、预算允许 → Aptabase 云托管或 Mixpanel。
说明:本站同期还测评过轻量计数器型的 GoatCounter(见 《GoatCounter 介绍与选型指南》)与隐私合规导向的 Offen(见 《Offen 介绍与选型指南》),两者更接近「网站访问统计」范畴,与 Aptabase 的 App 事件分析定位互补而非替代。
八、参考链接
- Aptabase 官网:https://aptabase.com
- 主仓库(服务端 + README):https://github.com/aptabase/aptabase
- 官方自托管指南仓库:https://github.com/aptabase/self-hosting
- 环境变量定义源码:https://github.com/aptabase/aptabase/blob/main/src/Features/EnvSettings.cs
- SDK 列表与自建 SDK 指南:https://github.com/aptabase/aptabase/wiki/How-to-build-your-own-SDK
- 星数/许可证取证徽章(查询日期 2026-10-30):https://img.shields.io/github/stars/aptabase/aptabase.json
- Releases Feed(当日实测为空 feed,验证「无 Release」结论):https://github.com/aptabase/aptabase/releases.atom