本篇只讲安装与启动,目标很明确:把 Edict 在本地成功跑起来,并完成基础验收。内容按实际部署顺序展开,减少概念说明,重点放在环境检查、启动命令、页面访问、接口验证和常见报错处理上。完成后,可以独立完成 Demo 启动、本地完整栈启动,以及基础问题排查。
目前已整理为一组连续教程,分别对应部署启动、使用实战、二开扩展和封装版本使用四个方向。若希望完整了解该项目的源码运行方式、实际操作流程以及封装版本的使用方法,建议结合以下文章按需阅读。
| 文章 | 说明 |
|---|---|
| 【OpenClaw】Edict 三省六部制部署与启动 | 介绍 Edict 三省六部制的基础部署方式、运行环境准备和启动流程 |
| 【OpenClaw】Edict 三省六部制使用与实战流程 | 介绍系统启动后的主要使用方式、核心流程和实战操作思路 |
| 【OpenClaw】Edict 三省六部制二开与扩展 | 介绍项目在源码层面的二次开发、扩展思路和能力接入方式 |
| AIGC工具平台-Edict 三省六部制 OpenClaw 集成封装版 | 介绍封装后的本地程序获取、启动配置、WebUI 访问和标准使用流程 |
文章目录
- 项目简介与适用人群
- 架构速览
- 环境准备
- 三种安装方式
-
- [Docker 快速体验](#Docker 快速体验)
- [macOS/Linux 原生安装](#macOS/Linux 原生安装)
- [Windows 本地生产仿真](#Windows 本地生产仿真)
- 一键启动与停止
- 首次验收清单
- 常见安装问题排查
- 可选扩展
- 总结
项目简介与适用人群
Edict 是一个围绕"三省六部"协作机制构建的任务流转系统,包含看板、后端服务、同步脚本和 OpenClaw 支撑层。学习这类项目,最有效的入口不是先读完整架构,而是先把系统跑起来,再通过页面、接口和日志理解整体结构。
本篇完成后,应达到下面的运行结果:
text
看板:http://127.0.0.1:7891
健康检查:http://127.0.0.1:7891/healthz
实时状态:http://127.0.0.1:7891/api/live-status
后端文档:http://127.0.0.1:8000/docs
Gateway:http://127.0.0.1:18789

部署完成的最低标准
浏览器能打开 http://127.0.0.1:7891,接口 http://127.0.0.1:7891/api/live-status 能返回 JSON,完整模式下 http://127.0.0.1:8000/docs 能打开,这说明本地环境已经具备继续学习和联调的条件。

架构速览
安装阶段只需要先记住四个组成部分。看板负责展示页面,后端负责接口,同步脚本负责刷新数据,OpenClaw 负责网关与 Agent 能力。页面打不开,多半看端口和看板服务。接口打不开,多半看后端和基础依赖。页面能开但数据不变,多半看同步脚本和日志。
快速记忆可以直接看下面这组对应关系:
text
看板服务:dashboard/server.py
同步脚本:scripts/run_loop.sh
后端接口:http://127.0.0.1:8000/docs
网关地址:http://127.0.0.1:18789
日志目录:.runtime\prod\logs
首页能打开,但面板没有数据,这类问题通常不是浏览器异常,而是同步链路或后端接口没有准备好。此时应优先检查 api/live-status 和日志,而不是反复刷新页面。
环境准备
运行 Edict 之前,需要先准备 Git、Python、Node.js、OpenClaw 和 Docker。安装是否成功,不能只看图形界面,而要以命令行检查结果为准。命令能执行,后续脚本才有机会正常运行。
先检查基础命令:
bash
openclaw --version
python --version
npm -v
docker -v
git --version
常见要求如下:
text
Python 3.9+
Node.js 18+
Docker 可正常运行
如果 python --version 正常,但 npm -v 报错,说明 Python 已准备完成,Node.js 仍未就绪。继续执行前端相关安装脚本时,通常会直接失败。
在新环境中,先执行下面这一组命令:
bash
openclaw --version
python --version
npm -v
docker -v
git --version
只有这些命令都能正常输出版本,才适合进入仓库安装阶段。这样可以减少一半以上的基础环境报错。
三种安装方式
这一部分保留三种路径,但直接按"适用场景 + 命令 + 验收方式"展开,方便照着执行。
Docker 快速体验
这一方式最适合第一次启动,命令最少,目标是先看到页面。
bash
docker run -p 7891:7891 cft0808/sansheng-demo
打开浏览器访问:
text
http://127.0.0.1:7891
如果仓库根目录已提供 docker-compose.yml,也可以执行:
bash
docker compose up
停止运行:
bash
Ctrl + C
这组命令的意义很直接,就是先确认项目最外层界面能否正常访问。只要页面能打开,后续再切到完整模式就会更顺手。
执行:
bash
docker run -p 7891:7891 cft0808/sansheng-demo
看到终端持续运行后,浏览器打开:
text
http://127.0.0.1:7891
只要页面出现,就说明 Demo 模式已经成功启动。
macOS/Linux 原生安装
原生安装更适合继续做本地开发和联调。
安装并初始化 OpenClaw:
bash
brew install openclaw
openclaw init
克隆项目并执行安装脚本:
bash
git clone https://github.com/cft0808/edict.git
cd edict
chmod +x install.sh && ./install.sh
启动同步脚本:
bash
bash scripts/run_loop.sh
启动看板服务:
bash
python3 dashboard/server.py
打开页面:
text
http://127.0.0.1:7891
这里的重点不是死记命令,而是理解启动顺序。安装脚本负责准备环境和数据,同步脚本负责更新状态,看板服务负责提供页面。少任意一个环节,都可能出现页面能开但功能不完整的情况。
进入项目目录后依次执行:
bash
chmod +x install.sh && ./install.sh
bash scripts/run_loop.sh
python3 dashboard/server.py
另开浏览器访问:
text
http://127.0.0.1:7891
如果页面正常,再访问:
text
http://127.0.0.1:7891/api/live-status
能看到 JSON 数据,就说明原生安装基本成功。
Windows 本地生产仿真
Windows 环境更适合直接用批处理脚本拉起整套服务。
本地准备 OpenClaw:
bat
02_setup_openclaw_local.bat
准备 Python 依赖和前端产物:
bat
01_setup_prod_env.bat --sync
启动 Postgres 和 Redis:
bash
docker compose -f edict/docker-compose.yml up -d postgres redis
启动整套服务:
bat
03_start_prod_stack.bat --open-browser --migrate
停止服务:
bat
04_stop_prod_stack.bat
启动成功后,重点检查下面这些地址:
text
看板:http://127.0.0.1:7891
后端文档:http://127.0.0.1:8000/docs
Gateway:http://127.0.0.1:18789
日志目录:.runtime\prod\logs
执行:
bat
01_setup_prod_env.bat --sync
03_start_prod_stack.bat --open-browser --migrate
如果脚本执行完成后浏览器打开看板页面,再访问:
text
http://127.0.0.1:8000/docs
能打开 Swagger 页面,就说明完整链路已经进入可用状态。
一键启动与停止
启动与停止命令是日常最常用的操作。很多异常并不是安装失败,而是旧进程没退出、端口没释放或依赖服务没先启动。
Linux 或 macOS 常用命令:
bash
bash scripts/run_loop.sh
python3 dashboard/server.py
Windows 常用命令:
bat
03_start_prod_stack.bat --open-browser --migrate
04_stop_prod_stack.bat
启动前如果系统状态不确定,更稳妥的做法是先执行停止脚本,再重新启动。这样可以减少端口占用和旧进程残留带来的干扰。
当页面异常但原因不明时,可以先执行:
bat
04_stop_prod_stack.bat
03_start_prod_stack.bat --open-browser --migrate
这一套做法比直接双击旧脚本更可靠,因为它会先清理已有服务,再重新拉起当前环境。
首次验收清单
安装完成后,不要只看"命令执行结束",还要看页面、接口和日志是否正常。只有这三部分都通过,部署才算真正完成。
浏览器检查:
text
http://127.0.0.1:7891
http://127.0.0.1:7891/healthz
http://127.0.0.1:7891/api/live-status
http://127.0.0.1:8000/docs

命令行检查:
bash
curl http://127.0.0.1:7891/healthz
curl http://127.0.0.1:7891/api/live-status
日志位置:
text
.runtime\prod\logs
healthz 用来判断看板服务是否存活,api/live-status 用来判断数据接口是否连通,docs 用来判断后端是否正常启动。日志则用来确认是否存在持续重复报错。
执行:
bash
curl http://127.0.0.1:7891/healthz
curl http://127.0.0.1:7891/api/live-status
如果有正常返回,再打开:
text
http://127.0.0.1:8000/docs
Swagger 页面能显示,说明前端、接口和后端文档链路都已打通。
常见安装问题排查
安装阶段最常见的问题通常集中在端口、基础依赖、同步链路和配置生效这几类。排查时不必大范围重装,按现象查对应模块更高效。
7891 端口被占用
先停止旧服务:
bat
04_stop_prod_stack.bat
继续检查端口:
bat
netstat -ano | findstr 7891
如果已经查到进程号,可以直接结束进程:
bat
taskkill /PID 进程号 /F
页面能开但提示服务未启动
检查健康接口:
bash
curl http://127.0.0.1:7891/healthz
检查实时状态接口:
bash
curl http://127.0.0.1:7891/api/live-status
如果健康检查正常,但实时状态没有数据,问题大多出在后端或同步链路。
后端起不来
先启动基础依赖:
bash
docker compose -f edict/docker-compose.yml up -d postgres redis
再重新启动完整服务:
bat
03_start_prod_stack.bat --open-browser --migrate
模型切换后没生效
同步配置并重启网关:
bash
python scripts/apply_model_changes.py
openclaw gateway restart
数据不刷新
手动刷新一次:
bash
python scripts/refresh_live_data.py
如果刷新后仍无变化,通常需要继续检查 run_loop 是否正在运行。
数据不更新示例
页面能打开,但状态始终不变化,可以先执行:
bash
curl http://127.0.0.1:7891/api/live-status
python scripts/refresh_live_data.py
如果接口仍没有新数据,再去查看日志目录中的 backend 和 dispatcher 输出,排查会更有方向。
可选扩展
接入消息渠道
本地启动完成后,还可以把消息渠道接入到 OpenClaw,让任务从外部进入系统,而不只是停留在页面演示阶段。
查看已有渠道:
bash
openclaw channels list
添加飞书渠道:
bash
openclaw channels add --type feishu --agent taizi
配置完成后,任务可以从入口 Agent 进入系统流转。
执行:
bash
openclaw channels list
openclaw channels add --type feishu --agent taizi
完成配置后,通过飞书发送任务消息,就可以测试外部任务进入"三省六部"流程的效果。
总结
本篇的重点只有一个,把 Edict 跑起来。实际操作上可以分成三步:先检查环境,再选安装方式,最后做首次验收。只想快速看效果,用 Docker。准备本地开发,用 macOS 或 Linux 原生安装。需要在 Windows 中做完整联调,用批处理脚本启动整套服务。
只要看板能打开、接口能返回、后端文档能访问,这一篇的目标就已经达成。下一篇就可以直接进入实战使用,包括任务下发、状态流转、看板观察和常用操作。