selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Yuxi logo

Self-host Yuxi

v0.7.2

Private knowledge agent workspace: RAG, graphs, agents

BetaOpen SourceMIT
Docker ComposeCompose file & guide
docker compose up --build -d
Updatedlast week
LanguagePython
Setup difficultyAdvanced
Stars
7 529
Ports
5173 (Web 前端界面), 5050 (FastAPI 后端 API 与 Swagger 文档)
Requires
etcd, Milvus, Minio, PostgreSQL, Redis
Unified agent workbench with knowledge references, task status and delivered filesKnowledge base and RAG management screenKnowledge graph and knowledge mind-map view of a knowledge baseMulti-agent orchestration screenSandbox workspace with generated file artifactsTeam governance and operations management screens

What is Yuxi?

Should you self-host Yuxi?

Yuxi scores 63/100 on selfhost.directory (how scoring works) and ranks #44 of 209 in AI Agents. It has 7 529 GitHub stars.

It shipped 2 stable releases in the past year. The latest, v0.7.2, came out on 2 September 2026. New versions land roughly every 2 months.

Setup is advanced: plan for several services and some ongoing maintenance. It is MIT-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is Orca (91/100, 108 815 stars). It scores higher overall, so compare the two before you pick. See Yuxi vs Orca side by side.

Yuxi README

How to install Yuxi

Install Yuxi with Docker Compose

安装 Docker Engine 和 Docker Compose,并准备一个可用的大模型 API
Environment variables
SILICONFLOW_API_KEY, JWT_SECRET_KEY, API_KEY_DERIVATION_SECRET, SANDBOX_PROVISIONER_TOKEN, POSTGRES_PASSWORD, MINIO_ACCESS_KEY, MINIO_SECRET_KEY, NEO4J_PASSWORD, YUXI_STATE_DIR
git clone --branch v0.7.3 --depth 1 https://github.com/xerrors/Yuxi.git
cd Yuxi

# Linux/macOS
./scripts/init.sh

# Windows PowerShell
.\scripts\init.ps1
docker compose up --build -d

生产部署使用 docker-compose.prod.yml 与独立的 .env.prod;文档站快速开始当前固定 v0.8.0.beta3 候选标签。

How to configure Yuxi

  • API_KEY_DERIVATION_SECRET
  • API_LANGGRAPH_POSTGRES_POOL_SIZE
  • API_LANGGRAPH_POSTGRES_POOL_TIMEOUT_SECONDS
  • API_POSTGRES_MAX_OVERFLOW
  • API_POSTGRES_POOL_SIZE
  • API_POSTGRES_POOL_TIMEOUT_SECONDS
  • API_REDIS_MAX_CONNECTIONSRedis 值是对应进程内每个客户端池的连接上限;进程可按需创建多个池,且不会预先建满。

    Redis 值是对应进程内每个客户端池的连接上限;进程可按需创建多个池,且不会预先建满。

  • ARK_API_KEY
  • ARQ_MAX_JOBSAgent 并发容量(默认按单 worker、100 个同时运行的 AgentRun 配置)

    Agent 并发容量(默认按单 worker、100 个同时运行的 AgentRun 配置)

  • COMPOSE_PROJECT_NAME并行运行多个 worktree 时配置;单环境无需设置。 完整示例见 docs/develop-guides/parallel-worktree-environments.md

    并行运行多个 worktree 时配置;单环境无需设置。 完整示例见 docs/develop-guides/parallel-worktree-environments.md

  • DASHSCOPE_API_KEY
  • DEEPSEEK_API_KEY
  • DOUBAO_SEARCH_API_KEY
  • JWT_SECRET_KEY
  • KUBECONFIG_PATH
  • MEMORY_SANDBOX_URL_TEMPLATE
  • MINERU_API_KEY# MinerU

    # MinerU

  • MINIO_ACCESS_KEY
  • MINIO_PUBLIC_URLPublic images use the frontend same-origin proxy by default.

    Public images use the frontend same-origin proxy by default.

  • MINIO_SECRET_KEY
  • NEO4J_PASSWORD
  • NEO4J_URI# region neo4j

    # region neo4j

  • NEO4J_USERNAME
  • OIDC_AUTHORIZATION_ENDPOINT空可覆盖对应 discovery 端点,仍执行 discovery 与 issuer/JWKS 验证

    可覆盖对应 discovery 端点,仍执行 discovery 与 issuer/JWKS 验证

  • OIDC_AUTO_CREATE_USERtrue已验证但无映射的外部身份自动开普通用户;关闭时拒绝未开通身份

    已验证但无映射的外部身份自动开普通用户;关闭时拒绝未开通身份

  • OIDC_DEFAULT_DEPARTMENTOIDC用户新用户默认部门,1–50 字符

    新用户默认部门,1–50 字符

  • OIDC_DEPARTMENT_CLAIMdepartment部门字段,去空白并截为 50 字符

    部门字段,去空白并截为 50 字符

  • OIDC_FETCH_DEPARTMENT_INFOfalse仅开户时读取 UserInfo 的部门字符串

    仅开户时读取 UserInfo 的部门字符串

  • OIDC_FORCE_PROMPT_LOGINfalse为 true 时每次要求认证中心重新登录

    为 true 时每次要求认证中心重新登录

  • OIDC_NAME_CLAIMname展示名称来源

    展示名称来源

  • OIDC_SCOPESopenid profile email必须包含 openid

    必须包含 openid

  • OIDC_USERNAME_CLAIMpreferred_username展示名称的备用来源,不用于绑定本地账号

    展示名称的备用来源,不用于绑定本地账号

  • OPENAI_API_BASE
  • OPENAI_API_KEY# 其余可选配置

    # 其余可选配置

  • PADDLEOCR_API_TOKEN# PaddleOCR API

    # PaddleOCR API

  • PADDLEOCR_API_URL
  • POSTGRES_MAX_CONNECTIONS
  • POSTGRES_PASSWORDProduction credentials (required by docker-compose.prod.yml)

    Production credentials (required by docker-compose.prod.yml)

  • READINESS_CACHE_TTL_SECONDS
  • READINESS_PROBE_TIMEOUT_SECONDSWORKER_HEALTH_INTERVAL_SECONDS=5 # 必须大于 0 且不超过 10;过长会破坏 worker 故障探测

    WORKER_HEALTH_INTERVAL_SECONDS=5 # 必须大于 0 且不超过 10;过长会破坏 worker 故障探测

  • SANDBOX_CONTAINER_PORT
  • SANDBOX_CONTAINER_STOP_TIMEOUT_SECONDSDocker stop 发出 SIGTERM 后等待强制终止的秒数

    Docker stop 发出 SIGTERM 后等待强制终止的秒数

  • SANDBOX_CPUS单个沙盒容器资源上限,仅 Docker backend 生效;非法值在 provisioner 启动时显式失败 SANDBOX_MEM_LIMIT=2g # 只接受纯字节数或整数加 k/m/g 后缀,不是完整 Docker 内存格式

    单个沙盒容器资源上限,仅 Docker backend 生效;非法值在 provisioner 启动时显式失败 SANDBOX_MEM_LIMIT=2g # 只接受纯字节数或整数加 k/m/g 后缀,不是完整 Docker 内存格式

  • SANDBOX_DELETE_CONCURRENCY不同 Sandbox 同时执行 Docker stop/remove 的最大数量

    不同 Sandbox 同时执行 Docker stop/remove 的最大数量

  • SANDBOX_DOCKER_ADDRESS_POOL默认从专用地址池为每个 Sandbox 分配独立子网;部署前确认不与宿主机、VPN 和 Docker 网络重叠。

    默认从专用地址池为每个 Sandbox 分配独立子网;部署前确认不与宿主机、VPN 和 Docker 网络重叠。

  • SANDBOX_DOCKER_NETWORK_PREFIXDocker backend 专用 (used when SANDBOX_PROVISIONER_BACKEND=docker) 动态沙箱专用网络,不要与 app-network 使用同一个名称;默认跟随 COMPOSE_PROJECT_NAME。

    Docker backend 专用 (used when SANDBOX_PROVISIONER_BACKEND=docker) 动态沙箱专用网络,不要与 app-network 使用同一个名称;默认跟随 COMPOSE_PROJECT_NAME。

  • SANDBOX_DOCKER_SANDBOX_PREFIX
  • SANDBOX_DOCKER_SUBNET_PREFIX
  • SANDBOX_DOCKER_USER_DATA_HOST_PATH
  • SANDBOX_EXEC_TIMEOUT_SECONDS
  • SANDBOX_HEALTH_TIMEOUT_SECONDS
  • SANDBOX_HTTP_PROXY
  • SANDBOX_HTTPS_PROXY
  • SANDBOX_IDLE_CHECK_INTERVAL_SECONDS
  • SANDBOX_IDLE_TIMEOUT_SECONDS
  • SANDBOX_IMAGEsandbox-provisioner 通用配置

    sandbox-provisioner 通用配置

  • SANDBOX_K8S_NAMESPACEKubernetes backend 专用 (used when SANDBOX_PROVISIONER_BACKEND=kubernetes)

    Kubernetes backend 专用 (used when SANDBOX_PROVISIONER_BACKEND=kubernetes)

  • SANDBOX_KEEPALIVE_INTERVAL_SECONDS
  • SANDBOX_MAX_OUTPUT_BYTES
  • SANDBOX_NODE_HOST
  • SANDBOX_PIDS_LIMIT
  • SANDBOX_PROVIDERSandbox (deerFlow-style provisioner)

    Sandbox (deerFlow-style provisioner)

  • SANDBOX_PROVISIONER_BACKEND# sandbox-provisioner backend: docker | kubernetes | memory(仅测试)

    # sandbox-provisioner backend: docker | kubernetes | memory(仅测试)

  • SANDBOX_PROVISIONER_DELETE_TIMEOUT_SECONDSworker/API 等待 Sandbox 删除响应的上限

    worker/API 等待 Sandbox 删除响应的上限

  • SANDBOX_PROVISIONER_TOKEN必填,至少 32 个字符;可使用 `openssl rand -hex 32` 生成

    必填,至少 32 个字符;可使用 `openssl rand -hex 32` 生成

  • SANDBOX_PROVISIONER_URL
  • SANDBOX_RUNTIME_PROFILESandbox 运行规格:core(默认,仅 Shell/Python/File)| browser | full

    Sandbox 运行规格:core(默认,仅 Shell/Python/File)| browser | full

  • SANDBOX_VIRTUAL_PATH_PREFIX
  • SILICONFLOW_API_KEYregion model_provider

    region model_provider

  • TAVILY_API_KEY
  • TOGETHER_API_KEYMINIMAX_API_KEY= # MiniMax 大模型 https://platform.minimaxi.com/

    MINIMAX_API_KEY= # MiniMax 大模型 https://platform.minimaxi.com/

  • WEB_SEARCH_PROVIDERdoubao
  • WORKER_LANGGRAPH_POSTGRES_POOL_SIZE
  • WORKER_LANGGRAPH_POSTGRES_POOL_TIMEOUT_SECONDS
  • WORKER_POSTGRES_MAX_OVERFLOW
  • WORKER_POSTGRES_POOL_SIZE
  • WORKER_POSTGRES_POOL_TIMEOUT_SECONDS
  • WORKER_REDIS_MAX_CONNECTIONS
  • YUXI_CORS_ORIGINSCORS allowed origins for browser clients, comma-separated. Development defaults to http://localhost:5173,http://127.0.0.1:5173 when unset. Production does not allow cross-origin browser requests unless this is explicitly set.

    CORS allowed origins for browser clients, comma-separated. Development defaults to http://localhost:5173,http://127.0.0.1:5173 when unset. Production does not allow cross-origin browser requests unless this is explicitly set.

  • YUXI_ENV身份安全配置:JWT 与 API Key 派生密钥必须分别生成并持久保存,初始化脚本会补齐留空值

    身份安全配置:JWT 与 API Key 派生密钥必须分别生成并持久保存,初始化脚本会补齐留空值

  • YUXI_INSTANCE_ID
  • YUXI_JOB_TIMEOUT_SECONDS# ARQ worker 单任务最长执行时间(秒),默认 3600,长耗时任务需调大

    # ARQ worker 单任务最长执行时间(秒),默认 3600,长耗时任务需调大

  • YUXI_MILVUS_CPUSMilvus 容器 CPU 上界(重建容器后生效;让镜像内置 maxprocs 按 cgroup quota 收敛 GOMAXPROCS) 内存随知识库数据量线性增长,故意不设上限:硬上界只会在数据合法增长时 把容器推入 OOM→重启→重加载→再 OOM 的循环,监控告警比 kill 更合适

    Milvus 容器 CPU 上界(重建容器后生效;让镜像内置 maxprocs 按 cgroup quota 收敛 GOMAXPROCS) 内存随知识库数据量线性增长,故意不设上限:硬上界只会在数据合法增长时 把容器推入 OOM→重启→重加载→再 OOM 的循环,监控告警比 kill 更合适

  • YUXI_STATE_DIR
  • YUXI_SUPER_ADMIN_NAME# Services

    # Services

  • YUXI_SUPER_ADMIN_PASSWORD
  • YUXI_URL_WHITELIST# URL Whitelist (comma-separated domains/IPs, empty to disable URL parsing)

    # URL Whitelist (comma-separated domains/IPs, empty to disable URL parsing)

  • ZHIPUAI_API_KEY

Yuxi releases & version history

More in RAG

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…