DeltaFStationl量化工具部署启动脚本
DeltaFStationl量化工具部署启动脚本deploy_deltafstation.sh#!/bin/bash# # DeltaFStation 宝塔 Linux 部署脚本# 适用CentOS 7/Ubuntu 18.04 已安装宝塔面板# 方式Supervisor 守护 python run.py Nginx 反向代理含 SSE 配置# 用法bash deploy_deltafstation.sh# set-e# ---------------------------- 可配置变量 ----------------------------# 项目安装目录宝塔默认站点根目录习惯放在 /www/wwwroot/INSTALL_DIR/www/wwwroot/deltafstation# Python 解释器优先宝塔 Python 管理器的 3.12找不到则回退系统 python3PYTHON_BIN${PYTHON_BIN:-}# 对外监听端口Flask 内部端口Nginx 反代到这里APP_PORT5000# Git 仓库优先 gitcode 国内快github 备选GIT_REPO${GIT_REPO:-https://gitcode.com/weixin_48616345/deltafstation.git}# 运行用户宝塔默认 wwwRUN_USERwww# ---------------------------- 颜色输出 ----------------------------RED\033[0;31m;GREEN\033[0;32m;YELLOW\033[1;33m;NC\033[0minfo(){echo-e${GREEN}[INFO]${NC}$1;}warn(){echo-e${YELLOW}[WARN]${NC}$1;}error(){echo-e${RED}[ERROR]${NC}$1;exit1;}# ---------------------------- 0. root 检查 ----------------------------[[$EUID-ne0]]error请用 root 执行sudo bash deploy_deltafstation.shinfo开始部署 DeltaFStation宝塔 Linux# ---------------------------- 1. 检测包管理器 ----------------------------ifcommand-vapt-get/dev/null;thenPKG_MGRapt;info检测到 Debian/Ubuntu 系elifcommand-vyum/dev/null;thenPKG_MGRyum;info检测到 CentOS/RHEL 系elseerror未识别的系统仅支持 apt/yumfi# ---------------------------- 2. 安装系统级依赖 ----------------------------info安装编译工具与 Python 开发库TA-Lib 编译需要if[[$PKG_MGRapt]];thenapt-getupdate-yapt-getinstall-ybuild-essential python3-dev python3-venv python3-pip\gitwgetcurllibssl-dev libffi-develseyum groupinstall-yDevelopment Toolsyuminstall-ypython3-devel python3-pipgitwgetcurlopenssl-devel libffi-develfi# ---------------------------- 3. 选择 Python 解释器 ----------------------------# 优先宝塔 Python 管理器安装的 3.12其次系统 python3.12最后系统 python3if[[-z$PYTHON_BIN]];thenforcandin/www/server/pyproject_evn/versions/3.12*/bin/python3.12\/usr/local/bin/python3.12 /usr/bin/python3.12;doif[[-x$cand]];thenPYTHON_BIN$cand;break;fidone[[-z$PYTHON_BIN]]PYTHON_BIN$(command-vpython3)fiPY_VER$($PYTHON_BIN-cimport sys;print(%d.%d%sys.version_info[:2]))info使用 Python:$PYTHON_BIN(版本$PY_VER)[[$PY_VER3.10]]warnPython 版本偏低项目推荐 3.12建议在宝塔软件商店安装 Python 3.12 后重跑# ---------------------------- 4. 编译安装 TA-Lib C 库 ----------------------------# 这是最容易踩坑的依赖必须先装 C 库再 pip install TA-Libif!ldconfig-p|grep-qlibta_lib;theninfo未检测到 TA-Lib C 库开始源码编译约 1-2 分钟cd/usr/local/src[[-fta-lib-0.4.0-src.tar.gz]]||wget-qhttp://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz[[-dta-lib]]||tar-xzfta-lib-0.4.0-src.tar.gzcdta-lib ./configure--prefix/usrmake-j$(nproc)makeinstallldconfig infoTA-Lib C 库安装完成elseinfoTA-Lib C 库已存在跳过编译fi# ---------------------------- 5. 克隆项目 ----------------------------if[[!-d$INSTALL_DIR/.git]];theninfo克隆项目到$INSTALL_DIRmkdir-p$(dirname$INSTALL_DIR)[[-d$INSTALL_DIR]]rm-rf$INSTALL_DIRgitclone$GIT_REPO$INSTALL_DIR||{warngitcode 克隆失败回退 GitHubgitclone https://github.com/Delta-F/deltafstation.git$INSTALL_DIR}elseinfo项目目录已存在执行 git pull 更新cd$INSTALL_DIRgitpull--rebase||warngit pull 失败继续使用现有代码ficd$INSTALL_DIR# ---------------------------- 6. 创建虚拟环境 ----------------------------VENV_DIR$INSTALL_DIR/venvinfo创建虚拟环境:$VENV_DIR$PYTHON_BIN-mvenv$VENV_DIRVENV_PY$VENV_DIR/bin/python$VENV_PY-mpipinstall--upgradepip-q# ---------------------------- 7. 安装 Python 依赖 ----------------------------info安装 Python 依赖TA-Lib 此处为 wheel 绑定已装好 C 库$VENV_PY-mpipinstall-rrequirements.txt-ihttps://pypi.tuna.tsinghua.edu.cn/simple# ---------------------------- 8. 创建数据目录 ----------------------------info创建数据与日志目录mkdir-pdata/raw data/processed data/results data/strategies data/simulations logs# 目录归属给 www 用户避免宝塔 Nginx/Supervisor 权限问题chown-R$RUN_USER:$RUN_USER$INSTALL_DIR2/dev/null||warnchown 失败可忽略若用 root 运行# ---------------------------- 9. 生成 Supervisor 配置 ----------------------------info生成 Supervisor 配置SUPERVISOR_CONF_DIR/www/server/supervisor/conf.dmkdir-p$SUPERVISOR_CONF_DIR2/dev/null||truecat$SUPERVISOR_CONF_DIR/deltafstation.iniEOF [program:deltafstation] command$VENV_PY$INSTALL_DIR/run.py directory$INSTALL_DIRuser$RUN_USERautostarttrue autorestarttrue startsecs5 stopwaitsecs30 stopsignalTERM ; 环境变量生产模式关闭 debug固定端口 environmentFLASK_ENVproduction,PORT$APP_PORT,HOST127.0.0.1,FLASK_USE_RELOADER0 stdout_logfile$INSTALL_DIR/logs/supervisor_out.log stderr_logfile$INSTALL_DIR/logs/supervisor_err.log stdout_logfile_maxbytes20MB stdout_logfile_backups5 redirect_stderrfalse EOFinfoSupervisor 配置已写入:$SUPERVISOR_CONF_DIR/deltafstation.ini# ---------------------------- 10. 生成 Nginx 反代配置片段 ----------------------------# SSE 关键关闭缓冲、长超时、HTTP/1.1NGINX_SNIPPET$INSTALL_DIR/logs/nginx_deltafstation.confcat$NGINX_SNIPPETEOF # DeltaFStation Nginx 反向代理配置含 SSE 支持 # 在宝塔「网站 → 你的站点 → 配置文件」中把 server{} 里的 location / 替换为以下内容 # 或在宝塔「网站 → 反向代理」中新增后手动补充 SSE 相关指令 location / { proxy_pass http://127.0.0.1:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # SSE / 流式响应关键配置 proxy_http_version 1.1; proxy_set_header Connection ; # 启用长连接 proxy_buffering off; # 关闭响应缓冲SSE 必需 proxy_cache off; # 关闭缓存 proxy_request_buffering off; chunked_transfer_encoding on; # SSE/长连接超时默认 60s 会断流调大到 1 天 proxy_read_timeout 86400s; proxy_send_timeout 86400s; # WebSocket 支持如未来需要 proxy_set_header Upgrade $http_upgrade; } EOFinfoNginx 配置片段已生成:$NGINX_SNIPPET稍后按提示配置到宝塔站点# ---------------------------- 11. 完成输出后续操作指引 ----------------------------echoecho-e${GREEN}${NC}echo-e${GREEN}DeltaFStation 部署脚本执行完成${NC}echo-e${GREEN}${NC}echoecho项目目录:$INSTALL_DIRecho虚拟环境 Python:$VENV_PYechoFlask 监听: 127.0.0.1:$APP_PORT仅本机由 Nginx 对外echoecho-e${YELLOW}【后续手动操作】${NC}echoecho1) 在宝塔软件商店安装「Supervisor管理器」(如未安装)然后:echo - 进入 Supervisor 管理器 → 配置 → 重载配置echo - 或命令行: supervisorctl update supervisorctl restart deltafstationecho - 查看状态: supervisorctl status deltafstationecho - 查看日志: tail -f$INSTALL_DIR/logs/supervisor_out.logechoecho2) 在宝塔「网站」添加站点纯静态即可仅用其域名 Nginx然后:echo - 打开站点「设置 → 配置文件」echo - 参考$NGINX_SNIPPET的内容替换 location / 段注意 SSE 指令必须保留echo - 保存后重载 Nginx: nginx -s reloadechoecho3) 放行端口/绑定域名后浏览器访问 http://你的域名 即可echoecho4) AI Agent / LLM 配置:echo - 首次启动后在 Web 界面的 AI 设置里配置 OpenAI 兼容 API Keyecho - 或编辑 config/config.py 里的 LLM_* 配置项echoecho5) 实盘 miniQMT可选:echo - 需在一台 Windows 机器上运行 miniQMT 客户端echo - 详细见项目 docs/qmt-strategy-live.mdecho

相关新闻

01_合同效力与招投标瑕疵

01_合同效力与招投标瑕疵

建设工程常见法律问题答疑(第一篇)|合同效力与招投标瑕疵仅供法律实务参考,不构成正式法律意见。当事人:必须招标的项目范围如何界定?我们作为私企开发的商品房住宅项目到底要不要公开招标? 邱富…

2026/10/10 21:51:23 阅读更多 →
工业软件授权分发技术解析与实践

工业软件授权分发技术解析与实践

1. 工业软件授权分发的技术特点解析工业软件作为现代制造业的"数字神经",其授权分发机制直接决定了产品的市场覆盖率和商业价值。与消费级软件不同,工业软件的授权体系需要兼顾企业级安全需求与复杂使用场景。我在参与某CAD/CAM系统授权模块开…

2026/10/10 14:27:10 阅读更多 →
知网AIGC检测前,先用哪个免费检测自查

知网AIGC检测前,先用哪个免费检测自查

知网AIGC检测前,先用哪个免费检测自查很多同学的学校,用知网做终检。但知网检测次数有限、也比较贵,不可能天天拿它自查。所以聪明的做法,是在定稿前,先用免费的 AIGC 检测工具自查一遍,把问题都清干净了&a…

2026/10/1 22:12:52 阅读更多 →

最新新闻

Python旅游网站数据分析与可视化:从数据清洗到交互大屏的完整实战

Python旅游网站数据分析与可视化:从数据清洗到交互大屏的完整实战

简介:这是一份面向高校学生与Python数据分析初学者的旅游网站数据分析及可视化期末大作业完整源码包,评审分达95分以上,经过严格调试可直接运行,适合作为课程设计参考、大作业提交模板或数据分析练手项目。压缩包共74个文件&#…

2026/10/10 21:50:39 阅读更多 →
用 OpenTelemetry 与 Elastic APM 追踪 MCP 服务器工具调用:TaoToken 统一 Key 接入实践

用 OpenTelemetry 与 Elastic APM 追踪 MCP 服务器工具调用:TaoToken 统一 Key 接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 21:50:39 阅读更多 →
keelOS:面向边缘设备的函数原生适配操作系统

keelOS:面向边缘设备的函数原生适配操作系统

1. 项目概述:这不是一个操作系统,而是一次对“适配逻辑”的重新定义“keelOS: fnOS, 为了适配你,我做了N多调整!”——光看标题,很多人第一反应是:又一个Linux发行版?或者某个极客自研的桌面环境…

2026/10/10 21:50:39 阅读更多 →
Python手写PL0编译器:从词法分析到递归下降的完整实现与避坑指南

Python手写PL0编译器:从词法分析到递归下降的完整实现与避坑指南

简介:NUAA编译原理课设的PL0编译器Python实现,面向计算机专业学生及编译原理入门者。资源覆盖词法分析、语法分析、语义分析及后端代码生成等完整流程,适合需要从零构建编译器的课程设计参考,也可作为自学编译原理的动手范例。压缩…

2026/10/10 21:50:39 阅读更多 →
Lua表调试与dump函数实战:告别print地址,高效排查配置数据

Lua表调试与dump函数实战:告别print地址,高效排查配置数据

print 一个 table,看到的却是table: 0x7f9f8a0c1e60这种地址,几乎是每个 Lua 开发者的日常。Lua 里所有复杂数据都往 table 里塞,数组、字典、对象、配置,表面上都是同一种结构,可标准库的 print 对 table 只做一件事&…

2026/10/10 21:50:38 阅读更多 →
Penpot 47000 星开源设计工具:用 MCP Server 打通 AI 设计工作流,TaoToken 统一 Key 接入实战

Penpot 47000 星开源设计工具:用 MCP Server 打通 AI 设计工作流,TaoToken 统一 Key 接入实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 21:49:38 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →