OctoBot 项目研究站 · 安装与运行

OctoBot 安装与运行:四条官方路径怎么选

官方给了四条路:下载可执行文件(CI 自动构建 Windows/macOS/Linux/树莓派版本)、用一行 docker run 起容器、按官方指南从 Python 源码安装,或者直接在云端(DigitalOcean 一键部署 / octobot.cloud)跑。它们的前置条件差别很大:源码路线要求 Python 3.13 与 Pants 构建环境,Docker 路线则把依赖都封在镜像里。下面把每条路的前提、命令与自检方式列清。

路径:可执行文件 / Docker / 源码 / 云端源码要求:Python ≥3.13 + Pants 2.30.0依据 README 与 Dockerfile(2026-09 核验)
可执行文件最省事;CI 构建各平台版本
Docker一行命令;端口与卷需规划
Python 源码≥3.13 + Pants + PYTHONPATH
云端DigitalOcean 一键 / octobot.cloud
四条安装路径示意(依据 README 与 Dockerfile 整理,非官方图)。
Paths

OctoBot 的四种安装方式怎么选:横向对照

先按「你愿意付出多少运维成本」来选。

路径适合谁前置条件更新方式注意点
可执行文件只想尽快跑起来、不打算改代码操作系统在官方构建覆盖范围内(Windows/macOS/Linux/树莓派)重新下载 Releases 里的新版本README 称这是最容易的安装方式;打包配置在 bin/start.spec(PyInstaller)
Docker有服务器/群晖/NAS,想要可复现环境已装 Docker;规划好端口与卷路径拉新镜像;compose 可配 watchtower 自动更新端口与卷必须按下面表格规划,否则数据会落在容器里
Python 源码要读代码、改策略、做二次开发Python 3.13、Pants 2.30.0、正确的 PYTHONPATH拉取代码后重装/重启README 指向官方 Python+Git 安装指南;解释器约束是 ==3.13.*
云端不想管机器、想长期在线上跑云账号(如 DigitalOcean)或官方云服务订阅由平台/镜像更新机制决定官方云 octobot.cloud 与开源版本是两种形态,条款与数据归属不同
自建硬件下限树莓派/低配 VPS 用户README 给出最低要求:CPU 1 核 1GHz、内存 250MB、磁盘 1GB这是「能不能启动」的下限,不代表跑多策略时够用
别把「一行 docker 命令」理解成「一键部署」:命令本身很短,但端口映射、四个数据卷、交易所凭据、策略参数都还要你自己规划;官方免责声明同样要求自负盈亏。
Docker

用 Docker 跑 OctoBot 要配哪些端口和卷

这一节是四条路里细节最多的,也是最容易配错的。

README 给出的一行命令docker run -itd --name OctoBot -p 80:5001 \ -v $(pwd)/user:/octobot/user \ -v $(pwd)/tentacles:/octobot/tentacles \ -v $(pwd)/logs:/octobot/logs \ drakkarsoftware/octobot:stable
配置项Dockerfile / compose 中的值用途配错的后果
端口 8000EXPOSE 8000(注释:Node API / OctoBot node mode)node 模式的接口端口不映射则外部界面连不上 node
端口 5001-5010EXPOSE 5001-5010(独立 Web 界面 + 最多 10 个子进程界面)手动实例的 Web 界面多开的实例界面访问不到
卷 userVOLUME /octobot/user用户配置与数据不挂卷则重建容器会丢配置
卷 tentaclesVOLUME /octobot/tentacles已安装的插件不挂卷则扩展需要重装
卷 logsVOLUME /octobot/logs运行日志排障时无处可查
卷 backtestingVOLUME /octobot/backtesting回测数据与结果回测数据随容器删除而消失
健康检查curl -sS http://127.0.0.1:5001,间隔 15s / 超时 10s / 重试 5 次判断容器是否就绪健康检查不过说明 Web 界面没起来
自动更新(可选)compose 里可加 containrrr/watchtower--cleanup --include-restarting自动拉取新镜像并重启自动更新意味着版本变化无人确认,实盘环境要谨慎
Source install

从源码安装 OctoBot 要对齐哪些前提:四个要点

这条路的坑都写在 CLAUDE.md 里,逐条对齐能省大量时间。

  1. Python 版本必须是 3.13

    setup.pyREQUIRES_PYTHON>=3.13,分类器只列 3.13;pants.toml 的解释器约束是 ==3.13.*。官方特别提醒:别写成 ==3.13,那只会匹配 3.13.0。预期:python3.13 -m venv .venv 能正常创建虚拟环境。

  2. 装 Pants(不随仓库附带)

    scie-pants 启动器安装一次,首次运行会引导下载 pants.toml 里指定的 2.30.0;pants --version 打印 2.30.0 即完成。若内网取不到 pex,官方给出临时把 pex-cli.url_template 指向本地文件的临时方案(不要提交)。

  3. 装依赖并理解「没有 lockfile」

    Pants 配置里 enable_resolves = false,仓库不提交 lock 文件,每次直接按 python_requirement 解析。要本地调试可按官方示例创建 venv 并 pip install -r requirements.txt -r full_requirements.txt

  4. PYTHONPATH 必须写全且用绝对路径

    官方给出的路径清单包含根目录与各 packages 子目录:不装 tentacles 时 15 项、装完后 16 项。原因是构建子进程会从 tentacle 子目录里运行,相对路径会解析失败。

依赖里有两个「别乱升级」的钉子:setuptools 被钉在 79.0.1(官方注释:>=80 会破坏 easy_install),aiodns 钉在 3.1.1(官方注释:升到 3.2.0 不兼容且会导致 CI 失败)。改依赖前先读这两行注释。
Check

装完怎么确认它真的起来了

按你选的路径核对对应的几个信号。

现象说明处理方向注意点
Web 界面能打开(默认 5001)手动实例就绪容器路线可用 docker ps 的 health 状态交叉确认Docker 健康检查就是 curl 这个端口
node 模式能连上(8000)3.0 默认形态可用确认端口映射与新界面访问方式beta 阶段功能可能不完整
界面里能看到策略模式tentacles 已加载源码路线检查是否跑过 tentacles install见 Tentacles 页
日志有输出且无导入错误依赖装全了核对 requirements 与 PYTHONPATHDocker 路线把 logs 卷挂出来才好查
数据目录出现文件user/ 等目录被写入确认卷映射正确、有写权限权限不足是容器部署的高频问题
能连上交易所(只读)凭据与网络可达先用只读 Key 验证本站未做任何连接实测
证据边界:本站没有在本机安装或运行 OctoBot,本节全部内容整理自官方 README、setup.pyrequirements.txtDockerfiledocker-compose.ymlCLAUDE.md,未做实测。实际版本请以官方为准。
FAQ

安装与运行常见问题

能一键部署吗?

官方提供了 DigitalOcean Marketplace 的一键部署入口,Docker 命令也只有一行。但「一键」只覆盖启动这一步:端口、数据卷、交易所凭据、策略参数仍需自己配置,因此本站不使用「一键部署/开箱即用」的表述。

没有服务器,能用自己的电脑吗?

可以。README 明确说可免费运行在你自己的电脑、服务器或树莓派上,并给出最低硬件要求:1 核 1GHz、250MB 内存、1GB 磁盘。但要让机器人持续运行,机器得长期开着。

Docker 版要自己装 tentacles 吗?

通常不用:镜像构建时会按 TENTACLES_URL_TAG 取指定版本的 tentacles,并把 /octobot/tentacles 挂为数据卷。源码路线才需要手动执行安装命令。

为什么源码路线这么麻烦?

因为它是为「要改代码/做贡献」的人准备的:需要 Python 3.13、Pants 2.30.0 构建系统、以及包含 15–16 个路径的 PYTHONPATH。只想用不想改的话,可执行文件或 Docker 更合适。

watchtower 自动更新能一直开着吗?

compose 示例里确实带了 watchtower,它会在有新镜像时自动更新并重启容器。但自动升级意味着版本切换没有人工确认环节——对跑实盘的实例,这本身就是一个风险选择,建议自行评估。

装完就能开始交易吗?

不能直接实盘。官方建议流程是先回测、再模拟盘(paper trading),确认行为符合预期后才考虑接入真实资金;同时 README 的免责声明明确要求自负盈亏。具体见回测与模拟盘页。

OctoBot 跑起来之后,为什么先别急着接实盘

回测引擎与模拟盘的适用范围、以及回测能回答什么,在下一节。