
InvesTool部署与配置指南从本地5分钟体验到生产环境上线的完整实战教程【免费下载链接】investoolGolang实现财报分析、个股基本面检测、基本面选股、4433法则基金筛选与检测、基金持仓相似度、股票选基、基金经理筛选项目地址: https://gitcode.com/gh_mirrors/in/investool还在为财报分析发愁吗用东方财富选股器筛出一大堆股票后每只都要人工核对 ROE、EPS、负债率、历史波动率十几个指标一次复盘就要耗掉一个周末。InvesTool 就是为解决这个痛点而生的 Golang 投资分析工具它能把筛选→检测→导出全流程自动化。这篇 InvesTool 部署教程会带你从零起步先 5 分钟本地跑起来再按个人使用 / 内网小团队 / 对外正式发布三种场景完成部署与配置最后附上一份高频问题与调优清单让你少踩坑、直接上手。先花 30 秒认识它它到底帮你省了哪些事一句话InvesTool 是一个把基本面选股 基金筛选做成全自动化的个人投资分析工具。它主要做这几件事个股基本面检测自动检查 ROE、EPS、营收利润增长、估值、合理价、负债率、历史波动率、现金流等指标还内置了银行股专用规则。批量筛选导出按你设定的条件筛选优质公司并一键导出为 Excel、CSV、JSON 甚至图片方便导入炒股 App 自选股。基金相关支持 4433 法则基金筛选、基金检测、股票选基、持仓相似度分析、基金经理筛选。它适合谁喜欢长线存股、需要定期复盘大量标的的个人投资者以及想给团队提供统一选股参考工具的小团队。数据源来自东方财富、亿牛网、新浪财经、天天基金等公开接口。提醒所有输出数据仅供参考不构成任何投资建议据此操作风险自担。极速上手5 分钟让它在本地跑起来先别管生产环境咱们先用最少的步骤拿到第一次成功体验。第一步准备环境并拉取代码需要 Go 1.16 和 Git。先确认版本go version git --version然后克隆项目git clone https://gitcode.com/gh_mirrors/in/investool cd investool第二步编译可执行文件go build -o investool main.go编译成功后当前目录会出现investool这个可执行文件。第三步启动 Web 服务项目根目录自带config.toml配置文件直接启动./investool webserver看到 Server is running on :4869 字样就说明启动成功了。打开浏览器访问http://localhost:4869你就能看到 InvesTool 的 Web 界面。第四步做一次真实检测验证在页面搜索框输入一只股票比如贵州茅台或600519点击检测。看到类似下面的检测报告恭喜你已经跑通了图InvesTool 个股基本面检测结果表一键生成多维度财务分析报告到这里本地部署教程的核心流程你已经全部体验完了接下来按你的使用场景选择合适的进阶方案。场景一个人电脑日常使用——命令行也能干大活如果你习惯在终端操作或者偶尔需要批处理命令行模式足够好用。股票检测检测单只或多只股票多只用/分隔./investool checker -k 比亚迪 ./investool checker -k 招商银行/中国平安/贵州茅台数据导出exportor是数据导出器按文件后缀名自动判断导出格式# 导出 Excel默认 ./investool exportor -f ./stocks.xlsx # 导出 CSV ./investool exportor -f ./stocks.csv # 导出 JSON ./investool exportor -f ./stocks.json # 导出全部支持的类型 ./investool exportor -f ./stocks.all自定义筛选参数想把 ROE 门槛从默认 8% 调低、负债率上限收紧命令行直接覆盖./investool exportor -f ./stocks.xlsx --filter.min_roe6 --checker.max_debt_asset_ratio50所有参数都能通过./investool exportor -h查看--filter.*控制筛选条件--checker.*控制检测规则两者互不干扰。小贴士日志默认打印到控制台嫌输出太吵可以加-l error只显示错误日志。场景二内网小团队共享——Nginx 反向代理 后台常驻当同事也想用你搭好的服务时就得让它稳定常驻并用反向代理统一入口。后台运行先用nohup或systemd把服务挂到后台nohup ./investool webserver -c config.toml /dev/null 21 Nginx 反向代理项目里已经准备好了 Nginx 配置示例misc/configs/nginx.conf核心思路是把 80 端口的请求转发给本机 4869 端口的 InvesTool 服务。upstream pink_lady_api { server 0.0.0.0:4869; keepalive 600; } server { listen 80; server_name investool.example.com; location / { proxy_pass http://pink_lady_api; } }⚠️关键点随着中报发布后满足条件的公司变多筛选检测耗时可能明显拉长反向代理的proxy_connect_timeout和proxy_read_timeout记得调大比如都设为 300s否则请求容易被 Nginx 提前掐断。改完配置执行nginx -s reload生效同事访问http://服务器IP就能用了。别忘了改默认口令Web 服务内置了 basic auth默认账号密码都是admin见config.toml的[basic_auth]段。内网共享前务必改掉别偷懒。场景三对外正式发布——Docker Supervisor 双保险要对外提供长期稳定服务推荐镜像打包 进程守护的组合拳。用官方构建脚本出包项目里有个现成的打包脚本 misc/scripts/dist.sh它会自动跑测试go test -race ./...、生成 API 文档并编译出 Linux amd64 的二进制最后打成dist/investool.tar.gz。执行bash misc/scripts/dist.sh构建并启动 Docker 镜像Dockerfile 已经写好了基于 alpine 镜像工作目录/srv/investool把上面的 tar 包解进去暴露 4869、4870 两个端口入口命令是./investool -c ./config.toml。docker build -t investool:latest . docker run -d -p 4869:4869 -p 4870:4870 --name investool \ -v $(pwd)/config.toml:/srv/investool/config.toml investool:latest这样配置就挂在宿主机上改配置重启容器即可不用重新打镜像。用 Supervisor 做进程守护如果更习惯直接跑进程项目也给了 supervisor.conf 示例。核心就三件事指定启动命令、设置autorestarttrue实现崩溃自动重启、把日志写到独立文件方便排查。[program:investool] directory/srv/investool command/srv/investool/investool webserver -c ./config.prod.toml autorestarttrue stdout_logfile/srv/investool/logs/investool.stdout.log stderr_logfile/srv/investool/logs/investool.stderr.log生产环境推荐配置调整把config.toml复制一份为config.prod.toml做三处改动server.mode从debug改成release减少日志开销并隐藏调试信息。logging.level设为info或warn避免 debug 级别的海量日志。日志输出改为文件并开启轮转防止磁盘被撑爆[logging] level info output_paths [logrotate:///srv/investool/logs/app.log] [logging.logrotate] max_size 100 max_age 30 compress true想了解整个项目的模块划分与数据流项目内置了架构图可供参考图InvesTool 架构设计图基于 Gin 框架组织数据采集与业务模块分层清晰关键配置项速查表改完立刻明白每项是干什么的以项目根目录的 config.toml 为蓝本把高频改动项整理成一张表配置段关键项作用说明常见取值顶层env部署环境标志会联动影响其他配置localhost/prod[server]addr服务监听地址默认:4869端口被占可改:8888[server]modeGin 运行模式决定日志与调试行为debug/release[server]pprof/metrics是否开启性能分析 / Prometheus 指标true/false[logging]level日志级别由低到高debug→info→warn→error生产建议info[logging]output_paths日志输出位置支持logrotate://路径写文件[stdout]或文件路径[logging.logrotate]max_size/max_age单文件多大轮转 / 备份保留天数100/30[ratelimiter]enable是否开启请求频率限制保护数据源不被封true[basic_auth]username/password管理后台登录口令务必改掉默认值自定义[app.cronexp]sync_*定时任务 cron 表达式如每个工作日同步全局变量0 6 * * 1-5日志相关配置不仅支持文件轮转还内置了动态改日志级别的 HTTP 服务[logging.atomic_level_server]端口 4870排查线上问题时可以不改配置、不重启进程临时把级别调低观察用完后调回来非常方便。避坑清单高频问题与调优手段一览启动与访问问题现象原因解决办法提示端口被占用4869 被其他程序占用改[server] addr为其他端口如:8888改完配置不生效服务已缓存旧配置重启进程配置支持热加载但日志级别需手动刷新浏览器访问空白server.mode为 debug 且静态资源路径不对确认config.toml与statics目录在同一目录下数据获取失败这是最常见的坑通常不是程序问题而是网络或数据源变动先确认机器能正常访问外网数据来自东方财富、新浪财经等公开接口。查看日志默认 stdout配置了文件则看日志文件定位具体报错的接口。数据源网页结构如果变更旧版本可能失效更新到最新版本再试。性能变慢怎么办启用[ratelimiter]限频避免短时间大量请求被数据源限流甚至封 IP。减少筛选范围通过--filter.min_total_market_cap、--filter.industry_list等参数缩小标的池只检测真正关心的股票。分批执行需要导出大批结果时按行业或价格区间拆成几次任务跑单次请求体量更小。反向代理侧把超时调大上面场景二已强调因为 Web 服务的读写超时本身设置了 5/10 分钟瓶颈往往在 Nginx。最后一步上线前按这个清单自查发布到生产环境前对着清单过一遍默认口令已修改[basic_auth]别再用 admin/adminserver.mode已切到release日志已落盘且开启轮转不会无限增长Nginx 代理超时已调大能扛住长时间筛选请求定时任务[app.cronexp]按需开启避免非工作日重复拉数据已用真实股票和一次完整导出做回归验证写在最后跑通只是开始部署完成后你还可以继续挖掘它的进阶玩法读一读config.toml里被注释掉的定时任务基金、基金经理、行业列表同步研究datacenter目录下各数据源的封装甚至用导出的 JSON 数据做自己的二次分析。跑通部署只是第一步真正有价值的是你把筛选规则调整成符合自己投资逻辑的那套参数。最后再强调一次InvesTool 是辅助工具不是荐股神器。它的价值在于把重复劳动自动化把更多时间留给你做独立思考。部署顺利祝理性投资【免费下载链接】investoolGolang实现财报分析、个股基本面检测、基本面选股、4433法则基金筛选与检测、基金持仓相似度、股票选基、基金经理筛选项目地址: https://gitcode.com/gh_mirrors/in/investool创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考