Open-Dev-Society/OpenStock
金融开源、可自托管的股票行情面板,覆盖八个市场,支持自选股、价格提醒和公司数据。
项目介绍
OpenStock 是一个用 Next.js 构建的股票行情面板,定位为昂贵行情平台的免费开源替代。它覆盖美国、印度、德国、加拿大、澳大利亚、沙特、加密货币和外汇八类市场,把 TradingView 图表与 Finnhub 报价、公司资料、财务和技术指标组合在一起。登录后可使用最多 50 只股票的自选列表和价格提醒,也可以订阅每周由 AI 撰写的新闻摘要。
它适合两类读者:想要一个没有付费墙的现成行情面板的用户,以及希望自行部署或修改整套技术栈的开发者——后者需要自备 MongoDB、Finnhub key,以及可选的邮件、AI 和 Inngest 配置。
快速使用
准备 Node.js 22 LTS、一个 MongoDB 数据库(免费的 Atlas 集群即可)和一个免费的 Finnhub API key。在仓库目录中执行:
git clone https://github.com/Open-Dev-Society/OpenStock.git
cd OpenStock
npm ci
cp .env.example .env # 填入 MONGODB_URI、BETTER_AUTH_SECRET 和 FINNHUB_API_KEY
node scripts/check-env.mjs # 检查 .env
npm run test:db # 检查 MongoDB 连接
npm run dev # 打开 http://localhost:3000
BETTER_AUTH_SECRET 可以用 openssl rand -hex 32 生成;生产环境缺少它时认证会拒绝启动。欢迎邮件、价格提醒和每周摘要都由 Inngest 任务执行,需要这些功能时另外运行 npx inngest-cli@latest dev。所有配置项都在 .env.example 中说明。也可以直接访问托管实例 openstock-ods.vercel.app。
容器部署可用 Docker Compose 同时启动应用和 MongoDB,命令为 docker compose up -d --build;项目也发布了预构建镜像。Railway 和 Vercel 各有独立的部署流程,都需要配置环境变量,并在 Inngest 中注册指向 /api/inngest 的应用,详见自托管文档。
数据时效与市场覆盖
图表由 TradingView 提供,报价、自选价格和提醒来自 Finnhub。社区站点和默认自托管每小时刷新一次报价,由所有用户共享缓存;设置 NEXT_PUBLIC_OPENSTOCK_DATA_MODE=realtime 并使用自己的 Finnhub key 后,可改为每 15 秒刷新并启用邮件价格提醒。这个变量在构建时固定,修改后需要重新构建。
市场覆盖并不均衡。在 Finnhub 免费额度下,只有美国市场和加密货币交易对同时支持实时报价、自选价格和提醒;外汇有实时图表但不支持报价和提醒;加拿大和澳大利亚为延迟行情;沙特使用延迟的 Yahoo Finance 报价;印度和德国只有收盘数据。完整差异见市场支持表,项目也提示行情可能因数据提供方和部署方式而延迟。OpenStock 不是券商,内容不构成投资建议。
使用约束
- 基础设施依赖: 必须提供 MongoDB;生产环境的登录需要
BETTER_AUTH_SECRET和BETTER_AUTH_URL。社交登录、邮件、AI 摘要和情绪卡片只在配置了对应凭据后可用。 - 构建期限制:
NEXT_PUBLIC_OPENSTOCK_DATA_MODE必须在构建前确定。GHCR 上的预构建镜像运行在缓存模式,要用实时模式需自行构建。 - 价格提醒: 依赖 Inngest 和 Nodemailer/Gmail 凭据,且只在实时模式下生效。
- 许可证: AGPL-3.0。修改、再分发或作为服务部署时,需以相同许可证公开源码并注明原作者。
- 数据准确性: 报价和提醒来自第三方,可能延迟或不完整;项目明确说明输出不构成投资建议。
HotRepo 点评
OpenStock 首次出现在 HotRepo 的快照记录中是 2026-05-26,当时 11,902 Star,单日新增 128。到 2026 年 9 月下旬,日快照显示了一段持续增长:9 月 19 日新增 477,随后依次为 752、843、844、832,9 月 24 日为 344。最近一条记录是 2026-11-08,总数 21,317 Star,当日新增 90,在 TypeScript 日榜上位列第 14。这条轨迹更像一个被广泛使用的行情面板,而不是一次性的发布高峰;不过数据只覆盖快照日期,不能据此推断其间每一天的连续增长。
项目本身与这份关注度相称:完整的 Next.js 应用,包含认证、数据库模型、后台任务、Docker 打包和成体系的自托管说明。实际使用中最明显的限制来自免费数据源:自托管用户如果期待所有市场都有实时报价,会发现不接入付费数据提供方时只有美国和加密市场支持。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。