什么是 OpenStock
OpenStock 是由 Open Dev Society 社区发起与维护的一个开源项目,其目标是为开发者与普通用户提供一个无须付费即可访问、部署与扩展的股票市场观察平台。它可以作为一种“自行托管”的替代方案,避免被昂贵的金融终端或市场平台锁定。OpenStock 支持用户创建账户、添加自选股票、查看行情图表、公司基本面信息、新闻聚合,以及未来可能提供的提醒与通知功能。
与付费平台相比,它的优点在于透明、可定制、无须长期订阅,并鼓励社区共建与协作。
项目架构与核心技术
OpenStock 的技术栈较为现代化,设计上兼顾前端用户体验与后端数据服务能力:
前端框架:Next.js(使用 App Router) 样式与 UI 组件:Tailwind CSS + shadcn/ui + Radix UI 后端与数据库:MongoDB + Mongoose 认证方案:Better Auth(邮件/密码登录机制) 行情数据源:Finnhub API(股票搜索、公司资料、新闻等) 图表与可视化:TradingView 嵌入组件 后台任务、调度逻辑:Inngest(处理事件、定时任务、AI 校验等) 邮件通知:Nodemailer(默认使用 Gmail 作为 SMTP) 项目语言:TypeScript 为主,其次是少量 CSS/JavaScript这种架构让 OpenStock 在前后端职责分工明确的同时,也易于扩展与替换模块(比如替换行情源、改用 Postgres、改变邮件服务等)。
环境准备与依赖
在开始安装之前,你需要准备以下环境或资源:
Node.js(推荐 20 版本及以上) 包管理器:npm 或 pnpm(社区推荐 pnpm) MongoDB 实例(可以是云端如 MongoDB Atlas,也可以是本地或 Docker 部署) Finnhub API Key(用于查询股票、新闻、公司资料等) 邮件服务账号(用作用户注册邮件、通知邮件,默认使用 Gmail SMTP) (可选)Gemini / AI 接口 Key,若你想启用 AI 驱动的欢迎信或智能摘要功能 (可选)Docker / Docker Compose 环境,用于容器化部署除此之外,你还要在项目根目录下创建 .env 文件,指定若干环境变量,如数据库连接字符串、Finnhub API Key、邮件用户名/密码、Better Auth 秘钥等。
安装与部署步骤
下面介绍一种典型的部署流程,既适用于本地开发,也适用于服务器生产环境(或用 Docker 部署)。
1. 克隆仓库
git clone https://github.com/Open-Dev-Society/OpenStock.git
cd OpenStock
2. 安装依赖
使用 pnpm(或 npm)安装项目依赖:
pnpm install
# 或者
npm install
3. 配置环境变量
在项目根目录创建 .env 文件,参考仓库内的示例(通常为 .env.example 或 README 中所示示例)。你需要设置如下核心变量(至少):
MONGODB_URI:MongoDB 连接字符串 NODE_ENV:development 或 production FINNHUB_API_KEY:你的 Finnhub API Key BETTER_AUTH_SECRET 与 BETTER_AUTH_URL:认证模块配置 NODEMAILER_EMAIL 与 NODEMAILER_PASSWORD:邮件账号与密码 (可选)GEMINI_API_KEY:AI 功能 Key确保这些配置正确无误,否则项目启动可能失败或部分功能缺失。
4. 启动开发模式
确认数据库可连接后,可以启动本地开发模式:
pnpm dev
# 或者
npm run dev
访问 http://localhost:3000 即可看到前端界面。此时你可注册用户、尝试股票搜索与列表功能。
此外,若要启用后台任务与调度(Inngest 工作流、Cron 任务等):
npx inngest-cli@latest dev
5. 构建并启动生产模式
当你打算上线或在服务器运行时,可以执行:
pnpm build && pnpm start
# 或者
npm run build && npm start
这会先构建静态文件,然后以生产模式启动服务。
6. 使用 Docker / Docker Compose 部署(可选)
如果你更倾向于容器化部署,OpenStock 提供了 docker-compose.yml 文件。使用该方式可以同时启动应用与 MongoDB 服务。
部署流程大致如下:
确保已安装 Docker 与 Docker Compose 根据环境需要编辑 .env,尤其是设置数据库连接为容器内部网络(例如 mongodb://root:example@mongodb:27017/openstock?authSource=admin) 执行:docker compose up -d --build 容器启动后,通过 http://localhost:3000 访问前端界面使用 Docker 部署的优点在于环境一致性、隔离性与易于扩展(后续可以替换 MongoDB 为其他数据库、添加负载、扩展服务等)。
功能演示与使用指南
以下是一些你在运行成功之后可以尝试的关键功能模块:
用户注册 / 登录:使用电子邮箱 + 密码注册账户,登录后可访问私人看板与功能 股票搜索 / 快捷命令面板:通过全局搜索(或 Cmd/Ctrl + K 快捷键)可以快速搜索股票代码与公司名 自选股票列表:用户可将感兴趣的股票加入 watchlist 列表,界面显示当前价格、涨跌信息等 股票详情页面:内嵌 TradingView 图表、公司概况、财务指标、相关新闻摘要等 市场概览:提供热力图、行业板块分布、热门股票排行、新闻板块等全局视角 邮件通知 / 值日摘要:系统可定时根据用户自选列表发送每日新闻摘要或交易提醒 可视主题 / 暗黑模式:前端支持暗黑主题切换、用户界面风格适配你也可以根据自己的需求,定制或替换其中的模块,比如更换行情数据源、改写通知逻辑、提升性能、加入缓存、扩展多市场支持等。
注意事项与局限
在使用或部署 OpenStock 时,需要注意以下几点:
数据延迟与 API 限制:免费版 Finnhub API 在某些市场可能存在延迟或访问频次限制。若你追求高实时性,可能需要升级为付费数据源 版权 / 授权要求:OpenStock 本身采用 AGPL-3.0 许可协议,如果你将其用于线上服务或公开部署,并对其做了修改,需开放源代码与遵守 AGPL 条款 邮件安全与账号保护:若你使用 Gmail 等 SMTP 服务,建议开启“应用专用密码”或安全机制,不要硬编码密码 可扩展性 / 性能瓶颈:对于大量用户或高并发访问,你可能需要在反向代理、缓存、水平扩展、数据库优化等方面做进一步改造 社区发展 / 维护状态:作为社区驱动项目,其功能仍在迭代中。你可能会遇到 issue、bug 或功能尚未完善的情况 法律 / 合规风险:虽然 OpenStock 本质是一个工具平台,不涉及交易执行或资管,但在某些国家 / 地区,提供金融数据或通知服务可能受到监管约束,应根据本地法规谨慎使用总结与展望
OpenStock 是一个面向未来、鼓励社区共建的开源股票市场平台。它为普通用户和开发者提供一个可以自主部署、自由扩展、不受订阅锁定影响的方案。通过它,你可以搭建自己的股票观察应用、融合其他数据源、集成策略模块或进一步实验金融工具。
您可能感兴趣:
2025年高性价比梯子推荐|实用的科学上外网工具精选
DOVE 网络加速器 梯子 免费 试用
阿里云服务器 99元1年 2核2G 3M固定带宽 新购续费同价