Luke a Pro

Luke Sun

Developer & Marketer

🇺🇦
EN||
TickBase 市场数据 API 落地页

TickBase

production
SaaSAPIGoLaravelReactAstroPostgreSQLRedisTimescaleDBDockerCloudflareMarket DataData WorkflowBilling

项目概览

TickBase 是一个面向开发者的市场数据平台,覆盖外汇汇率、贵金属、历史时序数据与换算场景。它会采集市场数据输入,统一规范为内部 schema,缓存最新快照,保存历史数据,并通过带有速率限制的 API 对外提供服务。

这是一个由我独立企划、设计、编码、部署与维护的 SaaS 产品。它面向需要可靠市场数据基础设施的开发者,减少他们自行搭建数据采集、账户系统、配额控制、计费和部署链路的成本。

架构介绍

  • Polyglot monorepo - 项目由 Go 服务(apps/api-goapps/collector-goapps/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.comdashboard.thetickbase.com 部署在 Cloudflare Pages,api.thetickbase.comaccount.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 维持较小且可维护的生产部署面。

Related Projects

Submeto - 无需后端的表单提交服务

Submeto

一个 backend-as-a-service 平台,让你无需编写服务器代码即可收集表单提交数据。

SaaSAPIPHPLaravel +7
RosettaChat 多语言聊天产品落地页

RosettaChat

一个多语言实时聊天平台,参与者可以用自己的语言输入,并以自己的语言阅读所有消息。

SaaSAPILaravelReact +10
MarkNest
ongoing

MarkNest

一个无干扰的 Markdown 写作与分享平台,内建媒体管理与访问控制功能。

Next.jsLaravelPostgreSQLRedis +2
BizTrust Academy

BizTrust Academy

一套用于追踪员工课程、记录学习反思并衡量学习成果实际落地情况的学习管理系统。

SaaSLMSPHPLaravel +4
Kakeibo 个人财务记账落地页

Kakeibo

一个面向个人、家庭与小团队的协作财务记账 SaaS,用于管理账户、交易、分类、报表与共享资金流程。

SaaSFinanceAPILaravel +9