私有化部署
将EasyAI私有化部署到你的本机或者服务器
一行命令部署(Linux 服务器/MacOS)
在已安装 Git 的 Linux 服务器上执行以下命令,脚本会自动完成克隆、问答配置、Docker 安装及服务启动。
执行后通过问答选择 IP 或域名访问方式,脚本将自动生成配置文件并启动服务。IP 模式需放行 3001、3002、3003 端口;域名模式需输入域名并可选启用 HTTPS,启用 HTTPS 时需放行 80、443 端口。
本地一键部署(Windows)
Windows 一键部署步骤与 easyai 仓库 README 中 一键部署 → Windows 小节一致,以该说明为准;下文为同步摘录,便于在文档内直接查看。
如何打开 PowerShell 并输入命令
不熟悉命令行时,按下面做即可:
- 打开 PowerShell:按键盘 Win,输入
powershell,在结果中点击 Windows PowerShell。Windows 11 也可搜索并打开 终端(Windows Terminal,标题常显示「终端」)。或按 Win + X,选 终端 / Windows PowerShell。 - 在哪里输入:窗口里有一行行文字,最底部有闪烁光标,那就是输入位置。用鼠标点一下窗口里空白处,把下面「一行命令」整段复制,在窗口里 粘贴(Ctrl + V,或 右键),再按键盘 Enter 执行。
- 克隆到哪里:命令会在当前目录下创建
easyai文件夹(一般首次打开 PowerShell 时在C:\Users\你的用户名\下生成easyai)。若要放到其他磁盘或文件夹:在资源管理器中进入目标文件夹,在空白处 Shift + 右键,选 「在此处打开 PowerShell 窗口」 或 「在终端中打开」(视 Windows 版本而定),再粘贴执行下面命令;也可在已打开的 PowerShell 里用cd切换到目标路径后再执行。
一行命令
Windows 脚本权限说明:PowerShell 默认禁止运行脚本,直接双击
start.ps1会闪退。
- 推荐:使用
powershell -ExecutionPolicy Bypass -File .\start.ps1执行,无需修改系统策略- 或:以管理员身份打开 PowerShell,执行
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser,之后可直接运行.\start.ps1
脚本按提示完成初始化后启动服务。浏览器访问前端(默认端口见下方 .env 中 WEB_PORT,常见为 3010),使用初始化账号 admin、密码 123456 登录成功即代表部署成功。
更多说明(含升级 update.ps1 等)见仓库 README;也可结合本文 手动部署 章节或咨询我们。
服务器一键部署(Linux)
下载远程工具(可选)
官网下载:Finalshell · 网盘:夸克网盘
远程登录服务器
使用 FinalShell 或云厂商控制台登录。新手可参考:远程登录服务器。
一键部署
与本文开头 一行命令部署 一致:在服务器上安装 Git 后执行:
当前 easyai 部署仓库 根目录包含 docker-compose.yml、.env.sample、.env.ASG.sample、.env.AMS.sample、.env.tools.sample、start.sh、update.sh、easyai-proxy.conf.sample 等,请使用完整仓库克隆部署,勿仅用零散文件拼凑。日常更新与 update.sh 用法见仓库 README 中「更新升级」章节。
配置文件详解
以下与仓库内 .env.sample 保持一致;实际键名以你克隆目录中的 .env.sample 为准。
.env API 与前端访问地址
本节影响页面能否访问 API、WebSocket 与 Agent 治理后台。域名 + HTTPS 时需配合 Nginx(可参考仓库内 easyai-proxy.conf.sample)并放行 80、443 端口。
.env 端口与常用变量(摘录)
除端口冲突或安全需要外,多数项保持默认即可。Redis 默认不对外映射端口(REDIS_PORT 留空)。
ASG(easyai-asg)默认映射 3003(环境变量 ASG_PORT,见 docker-compose.yml)。可选服务还有 Dozzle、Watchtower 等,见 .env.sample 第 9 节及后续说明。
.env.ASG(Agent 服务治理 ASG)
easyai-asg 容器使用本文件,与主 .env 中的 NUXT_PUBLIC_SG_APIURL(前端访问 ASG 的地址)配合使用。
首次部署在仓库根目录执行:cp .env.ASG.sample .env.ASG。数据库由 docker-compose.yml 中的 easyai-pgvector 提供,默认库名为 agent_governance;不要随意改动已初始化库名与卷,除非你知道如何迁移数据。
| 分组 | 说明 |
|---|---|
| PostgreSQL | ASG_DATABASE_URL 为 Prisma 连接串(容器内请保持 easyai-pgvector 主机名);ASG_POSTGRES_* 需与 docker-compose 中 easyai-pgvector 的账号、库名一致。 |
| Redis | 复用主栈 Redis,ASG_REDIS_HOST=redis,ASG_REDIS_DB 使用独立库号隔离。密码需与主服务 Redis 一致(ASG_REDIS_PASSWORD)。 |
| 端口 | ASG_PORT=3003 与对外映射一致;ASG_TCP_PORT(默认 4003)为治理服务 TCP 监听,easyai-server 在 docker-compose.yml 中通过服务名连接 easyai-asg,需与本文件一致。 |
| 主服务 | ASG_MAIN_BACKEND_URL 指向 easyai-server 容器地址;ASG_ADMIN_USERNAME / ASG_ADMIN_PASSWORD 用于治理侧以管理员身份向主服务换 token,请与前端登录账号策略一致。 |
| 其他 | ASG_VERSION 镜像版本;ASG_DOCS_DISABLE 是否关闭 Swagger。 |
域名 + Nginx 时,主 .env 中配置 NUXT_PUBLIC_SG_APIURL=/asg-api,并在 easyai-proxy.conf.sample 中保留 /asg-api/ 反代到本机 3003。
.env.AMS(Agent 记忆服务 AMS)
agent-memory 容器使用本文件;同一 PostgreSQL 实例(easyai-pgvector)上可使用独立库 easyai_memory。docker-compose.yml 中可为容器注入默认 MEMORY_DATABASE_URL,若你自定义库名或账号,请与 .env.ASG 中 Postgres 账号密码 及初始化脚本保持一致。
首次部署:cp .env.AMS.sample .env.AMS。主 .env 中的 MEMORY_TCP_HOST / MEMORY_TCP_PORT 供 easyai-server 连接记忆服务 TCP,需与 docker-compose 中 agent-memory 暴露一致(默认常见为 agent-memory、4004,以仓库 .env.sample 为准)。
| 分组 | 说明 |
|---|---|
| 主服务与模型 | MEMORY_AI_BASE_URL 指向 easyai-server,用于 Embedding 与对话压缩等调用;MEMORY_AI_API_KEY 若主服务开启鉴权再填。 |
| Embedding | MEMORY_EMBEDDING_MODEL、MEMORY_EMBEDDING_DIMENSION 等需与主服务可用模型一致,否则向量维度不匹配会导致写入失败。 |
| 对话压缩 | MEMORY_CHAT_MODEL、MEMORY_COMPRESSION_* 控制摘要与压缩行为。 |
| 每日整理 | MEMORY_MAINTENANCE_*:定时去重、冲突处理;MEMORY_MAINTENANCE_DRY_RUN=true 时仅分析不落库,适合升级后观察。 |
| 其他 | AMS_VERSION 镜像版本;MEMORY_DOCS_DISABLE 是否关闭 Swagger。 |
对外 HTTP 端口由主 .env 的 AMS_PORT(默认 3004)映射。健康检查示例:curl http://127.0.0.1:3004/health(端口以实际 AMS_PORT 为准)。
.env.tools(工具服务容器)
在 docker-compose.yml 中,该服务名为 video-edit(历史命名),实质是面向业务的 工具容器:除视频相关能力外,还提供 网页 / 文档解析(如 PDF 解析)、以及后续扩展的各类工具能力;easyai-server 通过内网地址 http://video-edit:8000 调用(对应环境变量 CONFIG_VIDEO_EDIT_API_URL)。
首次部署:cp .env.tools.sample .env.tools。对外访问端口由主 .env 的 VIDEO_EDIT_PORT 映射到容器内 8000(与 .env.tools 中可选的 PORT 一致即可,一般保持默认)。
| 分组 | 说明 |
|---|---|
| OSS / S3(可选) | 用于 PDF 解析等场景:解析结果中的图片可上传到兼容 S3 的对象存储。不配时 PDF 解析仍可用,但图片不会上传 OSS,返回链接可能仅限本地或内网。 |
| OSS 字段 | OSS_ENDPOINT、OSS_ACCESS_KEY_ID、OSS_ACCESS_KEY_SECRET、OSS_BUCKET、OSS_REGION;可选 OSS_DOMAIN 作为 CDN 或自定义访问域名。支持阿里云 OSS、腾讯云 COS、AWS S3、MinIO 等。 |
| 应用监听 | 可选 HOST / PORT(默认容器内 8000);宿主机映射以 VIDEO_EDIT_PORT 为准。 |
OSS 也可只在主 .env 中配置:.env.sample 第 15 节写明「可填写 .env.tools 或在此覆盖」,二者按你的习惯选一处即可。更多升级与排错见 easyai README。
手动部署在本机(Windows)
推荐:直接使用上文 本地一键部署(Windows) 中的 git clone + start.ps1,脚本会处理 Docker/WSL 依赖与 .env 初始化。以下为「已自行安装 WSL + Docker」时的补充说明。
WSL 安装(可选,用于在 Linux 子系统中使用 Docker)
建议 Windows 版本 22H2 及以上;版本过低请先升级系统或使用云服务器部署。
在「启用或关闭 Windows 功能」中勾选:虚拟机平台、适用于 Linux 的 Windows 子系统(按需可勾选 Windows 虚拟机监控程序平台)。

在 PowerShell 中执行:
从 Microsoft Store 安装 Ubuntu 22.04(或其他发行版)。无商店环境可从 Ubuntu 官网 获取安装方式。
首次启动 Ubuntu 若提示创建用户,可按需设置;若遇 Windows 访问 WSL 文件权限问题,可参考微软文档调整目录权限。
Docker Desktop(Windows)
Docker Desktop for Windows 安装文档

安装后在 PowerShell 或 Ubuntu 中验证:
与 WSL 集成及可选网络设置
在 Docker Desktop 中启用 WSL 2 集成,便于在 Ubuntu 内使用 docker 命令。

可选:在 Docker Desktop 中为 host.docker.internal 等配置宿主机解析(用于容器访问本机服务)。

获取代码并启动
在 WSL(Ubuntu)或已配置好 Docker 的环境中,克隆完整 easyai 仓库(勿只拷贝零散文件):
若不用 start.ps1 / start.sh 交互初始化,可手动:cp .env.sample .env,并按需复制 .env.ASG.sample、.env.AMS.sample、.env.tools.sample 后编辑。然后执行:
(旧环境无 docker compose 子命令时,可使用 docker-compose。)

验证
Docker Desktop 中容器均为运行状态,或在终端执行:


浏览器访问前端:http://127.0.0.1:3010(端口以 .env 中 WEB_PORT 为准),管理员 admin / 123456。API 文档:http://127.0.0.1:3001/api-docs。RabbitMQ 管理界面(若映射了 CONFIG_MQ_ADMIN_PORT):http://127.0.0.1:15672(默认用户见 .env 中 CONFIG_MQ_USER / CONFIG_MQ_PASSWORD)。
手动部署到云服务器-Linux/Ubuntu
如果你还没有云服务器,点击这里先申请云服务器.
远程登录
阿里云:用户名一般为root,服务器IP地址、密码可以通过控制台获取

雨云服务器:更加简单。IP地址、用户名和密码全都都在截图位置可以找到

使用FinalShell登录远程服务器

远程登录服务器成功

Docker 安装(Ubuntu 示例)
部分云镜像已预装 Docker,可先执行 docker -v / docker compose version,已满足则跳过本节。
安装完成后建议使用 docker compose version 确认 Compose V2 可用。若仅有独立的 docker-compose 1.x 且版本过旧,可从 GitHub Releases 下载官方二进制替换,或使用网盘中的兼容版本。
Docker 就绪后,继续 拉取镜像并启动。
拉取镜像并启动
推荐在服务器上直接克隆完整仓库(与 start.sh 一键流程一致),勿仅上传 .env 与 docker-compose.yml 两个文件,以免缺少 docker/、easyai-proxy.conf.sample、scripts 等依赖。
若已手动准备好环境变量,也可:
验证是否部署成功
容器均为 running/Up 即表示正常。

开放服务器端口
云安全组 / 防火墙需放行(默认值以 .env 为准):
- 3010:前端(
WEB_PORT) - 3001:后端 API(
SERVER_HTTP_PORT) - 3002:WebSocket 网关(
CONFIG_WS_PORT) - 3003:Agent 服务治理 ASG(
ASG_PORT) - 3004:Agent 记忆服务(
AMS_PORT,使用相关能力时) - 8000:视频编辑服务(
VIDEO_EDIT_PORT,按需) - 80 / 443:域名 + HTTPS(Nginx / 证书,按需)

部分厂商默认全端口开放,仍以控制台安全组为准。
部署完成,前端访问
浏览器访问 http://<服务器IP>:3010(端口见 WEB_PORT),管理员 admin / 123456。API 文档:http://<服务器IP>:3001/api-docs。后续升级请使用仓库内 update.sh,见 README。