ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DeltaFStationl量化工具部署启动脚本

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
返回列表