私有化部署

将EasyAI私有化部署到你的本机或者服务器

一行命令部署(Linux 服务器/MacOS)

git clone https://git.51easyai.com/wangbo/easyai && cd easyai && chmod +x ./start.sh && ./start.sh

执行后通过问答选择 IP 或域名访问方式,脚本将自动生成配置文件并启动服务。IP 模式需放行 3001、3002、3003 端口;域名模式需输入域名并可选启用 HTTPS,启用 HTTPS 时需放行 80、443 端口


本地一键部署(Windows)

Windows 一键部署步骤与 easyai 仓库 README一键部署 → Windows 小节一致,以该说明为准;下文为同步摘录,便于在文档内直接查看。

如何打开 PowerShell 并输入命令

不熟悉命令行时,按下面做即可:

  1. 打开 PowerShell:按键盘 Win,输入 powershell,在结果中点击 Windows PowerShellWindows 11 也可搜索并打开 终端(Windows Terminal,标题常显示「终端」)。或按 Win + X,选 终端 / Windows PowerShell
  2. 在哪里输入:窗口里有一行行文字,最底部有闪烁光标,那就是输入位置。用鼠标点一下窗口里空白处,把下面「一行命令」整段复制,在窗口里 粘贴Ctrl + V,或 右键),再按键盘 Enter 执行。
  3. 克隆到哪里:命令会在当前目录下创建 easyai 文件夹(一般首次打开 PowerShell 时在 C:\Users\你的用户名\ 下生成 easyai)。若要放到其他磁盘或文件夹:在资源管理器中进入目标文件夹,在空白处 Shift + 右键,选 「在此处打开 PowerShell 窗口」「在终端中打开」(视 Windows 版本而定),再粘贴执行下面命令;也可在已打开的 PowerShell 里用 cd 切换到目标路径后再执行。

一行命令

git clone https://git.51easyai.com/wangbo/easyai.git; cd easyai; powershell -ExecutionPolicy Bypass -File .\start.ps1

Windows 脚本权限说明:PowerShell 默认禁止运行脚本,直接双击 start.ps1 会闪退。

  • 推荐:使用 powershell -ExecutionPolicy Bypass -File .\start.ps1 执行,无需修改系统策略
  • :以管理员身份打开 PowerShell,执行 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser,之后可直接运行 .\start.ps1

脚本按提示完成初始化后启动服务。浏览器访问前端(默认端口见下方 .envWEB_PORT,常见为 3010),使用初始化账号 admin、密码 123456 登录成功即代表部署成功。

服务器一键部署(Linux)

下载远程工具(可选)

官网下载:Finalshell · 网盘:夸克网盘

远程登录服务器

使用 FinalShell 或云厂商控制台登录。新手可参考:远程登录服务器

一键部署

与本文开头 一行命令部署 一致:在服务器上安装 Git 后执行:

git clone https://git.51easyai.com/wangbo/easyai.git && cd easyai && chmod +x ./start.sh && ./start.sh

当前 easyai 部署仓库 根目录包含 docker-compose.yml.env.sample.env.ASG.sample.env.AMS.sample.env.tools.samplestart.shupdate.sheasyai-proxy.conf.sample 等,请使用完整仓库克隆部署,勿仅用零散文件拼凑。日常更新与 update.sh 用法见仓库 README 中「更新升级」章节。

配置文件详解

以下与仓库内 .env.sample 保持一致;实际键名以你克隆目录中的 .env.sample 为准。

.env API 与前端访问地址

本地部署
云服务器 IP 访问
域名 + HTTPS(经 Nginx)
NUXT_PUBLIC_BASE_APIURL=http://127.0.0.1:3001
NUXT_PUBLIC_BASE_SOCKETURL=ws://127.0.0.1:3002
# Agent 服务治理(ASG)API,供前端治理页调用
NUXT_PUBLIC_SG_APIURL=http://127.0.0.1:3003
# 客户端连接 WebSocket 时可带:?channel=<业务通道>&client_id=<客户端唯一 ID>

.env 端口与常用变量(摘录)

.env 中与端口相关的常见项
# 前端(easyai-web),默认 admin / 123456
WEB_PORT=3010
# 后端 HTTP(easyai-server)
SERVER_HTTP_PORT=3001
# WebSocket 网关对外端口(ws-gateway)
CONFIG_WS_PORT=3002
# 网关 TCP(容器内 easyai-server 推送事件,一般不改)
CONFIG_TCP_PORT=4002
# 工具服务容器对外端口(compose 服务名 video-edit,见 .env.tools)
VIDEO_EDIT_PORT=8000
# Agent 记忆服务 HTTP(docker-compose 映射,默认 3004)
AMS_PORT=3004
# MongoDB(默认暴露便于调试,生产可收紧)
MONGO_PORT=27017
MONGO_INITDB_ROOT_USERNAME=username
MONGO_INITDB_ROOT_PASSWORD=password
# RabbitMQ:业务端口与管理控制台
CONFIG_MQ_PORT=5672
CONFIG_MQ_ADMIN_PORT=15672

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 的地址)配合使用。

分组说明
PostgreSQLASG_DATABASE_URL 为 Prisma 连接串(容器内请保持 easyai-pgvector 主机名);ASG_POSTGRES_* 需与 docker-composeeasyai-pgvector 的账号、库名一致。
Redis复用主栈 RedisASG_REDIS_HOST=redisASG_REDIS_DB 使用独立库号隔离。密码需与主服务 Redis 一致(ASG_REDIS_PASSWORD)。
端口ASG_PORT=3003 与对外映射一致;ASG_TCP_PORT(默认 4003)为治理服务 TCP 监听,easyai-serverdocker-compose.yml 中通过服务名连接 easyai-asg,需与本文件一致。
主服务ASG_MAIN_BACKEND_URL 指向 easyai-server 容器地址;ASG_ADMIN_USERNAME / ASG_ADMIN_PASSWORD 用于治理侧以管理员身份向主服务换 token,请与前端登录账号策略一致
其他ASG_VERSION 镜像版本;ASG_DOCS_DISABLE 是否关闭 Swagger。
.env.ASG 示例(节选)
ASG_DATABASE_URL=postgresql://easyai:easyai2025@easyai-pgvector:5432/agent_governance?schema=public
ASG_POSTGRES_USER=easyai
ASG_POSTGRES_PASSWORD=easyai2025
ASG_POSTGRES_DB=agent_governance

ASG_REDIS_HOST=redis
ASG_REDIS_PORT=6379
ASG_REDIS_PASSWORD=
ASG_REDIS_DB=8

ASG_PORT=3003
ASG_TCP_PORT=4003

ASG_MAIN_BACKEND_URL=http://easyai-server:3001
ASG_ADMIN_USERNAME=admin
ASG_ADMIN_PASSWORD=123456

域名 + 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_memorydocker-compose.yml 中可为容器注入默认 MEMORY_DATABASE_URL,若你自定义库名或账号,请与 .env.ASG 中 Postgres 账号密码 及初始化脚本保持一致。

分组说明
主服务与模型MEMORY_AI_BASE_URL 指向 easyai-server,用于 Embedding 与对话压缩等调用;MEMORY_AI_API_KEY 若主服务开启鉴权再填。
EmbeddingMEMORY_EMBEDDING_MODELMEMORY_EMBEDDING_DIMENSION 等需与主服务可用模型一致,否则向量维度不匹配会导致写入失败。
对话压缩MEMORY_CHAT_MODELMEMORY_COMPRESSION_* 控制摘要与压缩行为。
每日整理MEMORY_MAINTENANCE_*:定时去重、冲突处理;MEMORY_MAINTENANCE_DRY_RUN=true 时仅分析不落库,适合升级后观察。
其他AMS_VERSION 镜像版本;MEMORY_DOCS_DISABLE 是否关闭 Swagger。
.env.AMS 示例(节选)
MEMORY_AI_BASE_URL=http://easyai-server:3001
MEMORY_EMBEDDING_DIMENSION=1024
MEMORY_EMBEDDING_MODEL=Qwen3-Embedding-v4

MEMORY_MAINTENANCE_ENABLED=true
MEMORY_MAINTENANCE_DRY_RUN=false
MEMORY_MAINTENANCE_BATCH_SIZE=200
MEMORY_MAINTENANCE_LLM_ENABLED=true
MEMORY_MAINTENANCE_LLM_MAX_PAIRS=20

对外 HTTP 端口由主 .envAMS_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)。

分组说明
OSS / S3(可选)用于 PDF 解析等场景:解析结果中的图片可上传到兼容 S3 的对象存储。不配时 PDF 解析仍可用,但图片不会上传 OSS,返回链接可能仅限本地或内网。
OSS 字段OSS_ENDPOINTOSS_ACCESS_KEY_IDOSS_ACCESS_KEY_SECRETOSS_BUCKETOSS_REGION;可选 OSS_DOMAIN 作为 CDN 或自定义访问域名。支持阿里云 OSS、腾讯云 COS、AWS S3、MinIO 等。
应用监听可选 HOST / PORT(默认容器内 8000);宿主机映射以 VIDEO_EDIT_PORT 为准。
.env.tools 示例(节选)
# 不配 OSS 时留空即可;需公网/持久化图片链接时再填
OSS_ENDPOINT=
OSS_ACCESS_KEY_ID=
OSS_ACCESS_KEY_SECRET=
OSS_BUCKET=
OSS_REGION=us-east-1
OSS_DOMAIN=

OSS 也可只在主 .env 中配置:.env.sample 第 15 节写明「可填写 .env.tools 或在此覆盖」,二者按你的习惯选一处即可。更多升级与排错见 easyai README

手动部署在本机(Windows)

WSL 安装(可选,用于在 Linux 子系统中使用 Docker)

在「启用或关闭 Windows 功能」中勾选:虚拟机平台适用于 Linux 的 Windows 子系统(按需可勾选 Windows 虚拟机监控程序平台)。

在 PowerShell 中执行:

PowerShell
wsl --update
wsl --shutdown
wsl --set-default-version 2

从 Microsoft Store 安装 Ubuntu 22.04(或其他发行版)。无商店环境可从 Ubuntu 官网 获取安装方式。

Docker Desktop(Windows)

Docker Desktop for Windows 安装文档

安装后在 PowerShell 或 Ubuntu 中验证:

docker -v
docker compose version
# 若仅有旧版 docker-compose 二进制,可使用:docker-compose -v

与 WSL 集成及可选网络设置

在 Docker Desktop 中启用 WSL 2 集成,便于在 Ubuntu 内使用 docker 命令。

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

获取代码并启动

在 WSL(Ubuntu)或已配置好 Docker 的环境中,克隆完整 easyai 仓库(勿只拷贝零散文件):

cd ~
git clone https://git.51easyai.com/wangbo/easyai.git
cd easyai

若不用 start.ps1 / start.sh 交互初始化,可手动:cp .env.sample .env,并按需复制 .env.ASG.sample.env.AMS.sample.env.tools.sample 后编辑。然后执行:

docker compose pull
docker compose up -d

(旧环境无 docker compose 子命令时,可使用 docker-compose。)

验证

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

docker compose ps
# 或 docker ps

手动部署到云服务器-Linux/Ubuntu

远程登录

阿里云:用户名一般为root,服务器IP地址、密码可以通过控制台获取

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

使用FinalShell登录远程服务器

远程登录服务器成功

Docker 安装(Ubuntu 示例)

docker -v
docker compose version
# 若无 compose 插件:docker-compose -v
Ubuntu 安装 Docker Engine(示例)
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${VERSION_CODENAME:-$VERSION}") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装完成后建议使用 docker compose version 确认 Compose V2 可用。若仅有独立的 docker-compose 1.x 且版本过旧,可从 GitHub Releases 下载官方二进制替换,或使用网盘中的兼容版本。

拉取镜像并启动

推荐在服务器上直接克隆完整仓库(与 start.sh 一键流程一致),勿仅上传 .envdocker-compose.yml 两个文件,以免缺少 docker/easyai-proxy.conf.samplescripts 等依赖。

cd ~
git clone https://git.51easyai.com/wangbo/easyai.git
cd easyai
chmod +x start.sh
./start.sh

若已手动准备好环境变量,也可:

cd ~/easyai
cp .env.sample .env
# 按需:cp .env.ASG.sample .env.ASG 等
docker compose pull
docker compose up -d

验证是否部署成功

docker compose ps
# 或 docker ps

容器均为 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 / 证书,按需)

部分厂商默认全端口开放,仍以控制台安全组为准。

部署完成,前端访问