跳到正文
Lyra

自部署

用 Docker Compose、Kubernetes、K3s 或离线包,把 Lyra 运行在你自己的基础设施上。

Lyra 基于 Apache-2.0 协议开源。所有部署方式都在仓库的 deploy/ 目录里;本页做一个概述,完整步骤请按链接查看对应指南。

Lyra 需要什么

  • MySQLRedis。Docker Compose 和 K3s 可以替你运行这两者。
  • 对象存储:本地文件系统卷,或任何兼容 S3 的服务。
  • OpenSandbox,用于 Agent 沙箱。
  • LiveKit,用于通话,需要开放它的媒体端口。
  • Web 应用前面需要 HTTPS

Docker Compose

最简单的方式:一台装有 Docker、docker compose 插件和 OpenSSL 的 Linux 主机。

git clone https://github.com/AstraFoundry/Lyra.git && cd Lyra
cp .env.example .env   # set production secrets and public URLs
bash deploy/docker/lyra/deploy.sh build
bash deploy/docker/lyra/deploy.sh preflight
bash deploy/docker/lyra/deploy.sh up

up 从不重新构建镜像,所以升级是显式的:先构建或加载你要的镜像,再重建整套服务。日常命令:

bash deploy/docker/lyra/deploy.sh status
bash deploy/docker/lyra/deploy.sh logs lyra
bash deploy/docker/lyra/deploy.sh restart

启用通话时,需要为 LiveKit 和 STUN 开放 7881/tcp50100-50200/udp3478(TCP 与 UDP)。

离线交付

对于访问不到镜像仓库的网络,在能联网的主机上构建并打包:

bash deploy/docker/lyra/deploy.sh build
bash deploy/docker/lyra/deploy.sh pack

deploy/docker/lyra/generated/lyra-deploy.tar.gz 复制到目标主机,然后:

tar -xzf lyra-deploy.tar.gz && cd lyra
cp .env.example .env
bash deploy/docker/lyra/deploy.sh load
bash deploy/docker/lyra/deploy.sh preflight
bash deploy/docker/lyra/deploy.sh up

离线包默认包含 MySQL、Redis 和 LiveKit 的运行时镜像,除非你设置 INCLUDE_RUNTIME_IMAGES=false

Kubernetes

deploy/k8s/ 里的清单文件会把 Lyra API、Agent 运行时和 Web 镜像安装到一个已有的命名空间。MySQL、Redis、LiveKit、OpenSandbox 以及可选的 S3 存储需要另外管理;仓库里提供了在同一集群上安装 OpenSandbox 和 LiveKit 的指南。

K3s

deploy/k3s/ 能把一台全新的 Ubuntu 或 Debian 主机变成单节点生产环境:K3s 和 Helm、MySQL 和 Redis、OpenSandbox、LiveKit、Lyra 以及 TLS 入口,最后还会跑一次端到端的沙箱冒烟测试。

配置

所有设置都是环境变量,说明见 .env.example。上线生产环境之前,至少要:

  • AUTH_SESSION_SECRET 换成足够强的密钥;
  • DATABASE_URLREDIS_URL 指向你的服务;
  • WEB_ORIGIN 设为 Web 应用的公开地址。

模型服务商密钥和对象存储可以在部署后到 Lyra 的设置里配置,密钥会加密存储。