项目概览
TickBase 是一个面向开发者的市场数据平台,覆盖外汇汇率、贵金属、历史时序数据与换算场景。它会采集市场数据输入,统一规范为内部 schema,缓存最新快照,保存历史数据,并通过带有速率限制的 API 对外提供服务。
这是一个由我独立企划、设计、编码、部署与维护的 SaaS 产品。它面向需要可靠市场数据基础设施的开发者,减少他们自行搭建数据采集、账户系统、配额控制、计费和部署链路的成本。
架构介绍
- Polyglot monorepo - 项目由 Go 服务(
apps/api-go、apps/collector-go、apps/monitor-go)、Laravel 账户服务(apps/account)、React Router v7 dashboard(apps/dashboard)、Astro 官网(apps/website)以及共享的 plan、type、API 文档包组成。 - 市场数据采集 -
collector-go通过 ingestion adapter layer 采集外汇与贵金属数据,并完成 normalization、validation、dedupe、最新快照与历史 tick 持久化。 - USD-pivot 模型 - TickBase 只采集 USD 计价数据。非 USD 外汇组合、贵金属报价与换算结果会在读取时通过最新 USD cross-rate 推导,让采集面保持紧凑,同时保持 API 的灵活性。
- Cache-first 公共 API -
api-go提供只读 REST API,覆盖 FX、metals、symbols、status、historical data、conversion 与 OHLC 查询。读取优先走 Redis,必要时回落到 PostgreSQL / TimescaleDB。 - 权益与计费 - Laravel account service 负责注册、Sanctum SPA authentication、API key 生命周期、plan 状态、Stripe Cashier billing,以及把 entitlement 分发到 Redis。
api-go验证 API key 时不会直接读取账户数据库。 - 速率限制与配额 - 请求同时受到 per-IP safeguard、per-key rate limit 与 per-account monthly quota 控制。Live key 会计入用量,test key 可用于集成测试且不消耗月度配额。
- 生产部署 -
thetickbase.com与dashboard.thetickbase.com部署在 Cloudflare Pages,api.thetickbase.com与account.thetickbase.com通过 Cloudflare Tunnel 进入 VPS 上的 Docker Compose stack。Origin 不开放公网入站端口。 - 数据边界 - 账户数据与市场数据使用独立 PostgreSQL database。Go API 对市场数据库使用 read-only role,并且没有 Laravel 账户数据库权限。
核心功能
- 统一市场数据 API - 提供最新与历史外汇汇率、贵金属现货价格、换算接口、symbol metadata、data status 与 OHLC 聚合。
- 开发者接入流程 - Dashboard 支持 API key 创建、轮换、撤销、用量查看与 billing plan 管理。
- Plan-based access control - Free、Developer、Business plan 对应不同的月度配额、速率限制、历史深度、multi-base 权限、OHLC 支持与 active key 数量上限。
- 运维监控 - 内部 monitor 会检查 API health、Redis、TimescaleDB freshness 与 public status data,帮助及时发现生产问题。
- 低运维基础设施 - Frontend 由边缘静态托管,backend 容器化运行,使用 GHCR image release、one-shot migrator 与 Cloudflare Tunnel 维持较小且可维护的生产部署面。






