---
title: "自建 LobeHub：多人共用的 AI 对话平台，接入自己的模型 API"
description: "用 Zenavo 的模板把 LobeHub 连同 PostgreSQL、Redis 和 RustFS 文件存储部署到自己的服务器上，绑定两个域名，注册后限制注册邮箱，接入 OpenAI、Claude 等模型服务商，并做好备份和升级。"
date: 2026-11-13
language: zh-CN
url: https://zenavo.app/zh-CN/blog/self-host-lobehub
---

# 自建 LobeHub：多人共用的 AI 对话平台，接入自己的模型 API

[LobeHub](https://github.com/lobehub/lobehub)（原 LobeChat）是一个开源的 AI 对话平台：支持 OpenAI、Anthropic、Google、DeepSeek 等几十家模型服务商，有多用户账号、对话历史、文件上传、知识库和智能体。界面完整，适合给团队或家人搭一个共用的 AI 入口。

服务端版本需要数据库和文件存储，自己从零搭建要配不少东西。Zenavo 的 LobeHub 模板把这些都打包好了，这篇文章从部署走到备份。如果只想用单个容器和 1 个域名搭一个更轻量的自建聊天界面，也可以看 [Open WebUI](https://zenavo.app/zh-CN/blog/self-host-open-webui)。

服务器、Zenavo 平台和模型服务商的 API 分别计费；LobeHub 本身不提供模型，对话会发给你配置的服务商。

## 模板包含什么

打开 [LobeHub 模板](https://zenavo.app/deploy?template=lobehub)，部署后项目里会有四个服务：

| 服务 | 作用 |
|---|---|
| lobehub | 应用本身，镜像 `lobehub/lobehub:2.3.3`，HTTP 端口 `3210` |
| postgresql | 账号、对话、设置和加密保存的 API Key，带全文搜索扩展（ParadeDB，PostgreSQL 17） |
| redis | 缓存和会话 |
| rustfs | 兼容 S3 的文件存储，保存上传的图片和文件；端口 `9000` 是 S3 接口，`9001` 是管理控制台 |

模板建议预留 2 GB 内存。数据库密码、登录加密密钥（`AUTH_SECRET`）和 API Key 的加密密钥（`KEY_VAULTS_SECRET`）都在部署时自动生成。

## 准备两个域名

LobeHub 需要两个公开地址：

- **应用网址**，例如 `https://chat.example.com`，用来打开 LobeHub；
- **文件存储网址**，例如 `https://files.example.com`，浏览器上传和查看图片时直接访问它。

先在 DNS 为这两个子域名添加指向服务器的 A 记录。然后在 Zenavo 中[连接一台 Linux 服务器](https://docs.zenavo.app/zh-CN/servers/add-a-server)，打开模板，填写这两个网址（不要以斜杠结尾），选择服务器并部署。

## 绑定域名

部署后分别绑定：

1. 在 **lobehub** 服务的 **网络** 页，为 `3210` 端口绑定 `chat.example.com`；
2. 在 **rustfs** 服务的 **网络** 页，为 `9000` 端口绑定 `files.example.com`。

域名必须和部署时填写的一致。等 HTTPS 生效后打开 `https://chat.example.com`。步骤见[域名文档](https://docs.zenavo.app/zh-CN/networking/domains)。

`9001` 是 RustFS 的管理控制台，不需要也不建议绑定公开域名。

## 注册账号，然后限制注册

打开应用，用邮箱和密码注册第一个账号。

模板默认允许任何人注册。如果这是团队或家人内部使用，在 lobehub 服务的 **变量** 中添加允许注册的邮箱或域名，保存后重启：

```sh
AUTH_ALLOWED_EMAILS=example.com,friend@gmail.com
```

可以填完整邮箱，也可以只填域名，用逗号分隔。之后不在名单里的邮箱无法注册。

需要邮箱验证或找回密码时，再配置 SMTP：

```sh
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=noreply@example.com
SMTP_PASS=你的 SMTP 密码
AUTH_EMAIL_VERIFICATION=1
```

使用 465 端口时把 `SMTP_SECURE` 改为 `true`。不配置 SMTP 也能正常注册和登录，只是无法发送验证和重置密码的邮件。

## 接入模型

有两种方式，可以同时使用。

**每个人填自己的 Key。** 登录后打开 **设置 → AI 服务商**，选择服务商，填入 API Key，必要时填写代理地址，再点检查。Key 用 `KEY_VAULTS_SECRET` 加密后存进数据库，其他用户看不到。

**管理员统一提供。** 在 lobehub 服务的 **变量** 中设置服务商的 Key，所有用户都能直接使用，不用自己填：

```sh
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
DEEPSEEK_API_KEY=sk-...
```

兼容 OpenAI 接口的服务商或网关，可以用 `OPENAI_PROXY_URL` 改地址，例如指向你自建的 [New API](https://zenavo.app/zh-CN/blog/self-host-new-api)、[Magpie](https://zenavo.app/zh-CN/blog/self-host-magpie) 或 [LiteLLM](https://zenavo.app/zh-CN/blog/self-host-litellm) 网关 `https://api.example.com/v1`，再用网关给 LobeHub 单独发一把有额度限制的密钥。想给 LobeHub 加上免费的实时联网搜索，还可以在同一项目里添加自建的 [SearXNG 元搜索引擎](https://zenavo.app/zh-CN/blog/self-host-searxng)；想把个人助手接进 Telegram 或 Discord，可搭配 [OpenClaw](https://zenavo.app/zh-CN/blog/self-host-openclaw)。

**统一提供的 Key 会被所有能登录的人使用、消耗你的额度。** 设置之前，先按上一节限制注册。

## 关于上传的文件

上传的图片和文件保存在 rustfs 的 `lobe` 存储桶里。模板把这个桶设成了**公开可读**，这样浏览器可以直接显示图片：知道文件地址的人不需要登录就能打开它。地址里带有随机路径，不会被列出或搜索到，但不要上传你不能接受被链接打开的敏感文件。

发给模型的图片会转成 base64 直接放在请求里（模板设置了 `LLM_VISION_IMAGE_USE_BASE64=1`），所以模型服务商不需要能访问你的文件域名。

## 备份

需要备份的有两部分：

- **postgresql**：账号、对话、设置和加密的 Key 都在这里。在它的 **备份与恢复** 中可以随时备份，不用停机，也可以设置自动备份。
- **rustfs**：上传的文件。它是数据卷备份，要求项目处于停止状态，适合在维护窗口进行。

还有一样东西要单独保存：lobehub 服务变量里的 **`KEY_VAULTS_SECRET`**。把数据库恢复到新的部署时，必须用同一个值，否则保存在数据库里的 API Key 无法解密。**部署后不要修改它。**

备份只有在恢复并核对过之后才算可靠。重要数据请再下载一份备份自行保存。

## 升级

模板固定了 `lobehub/lobehub:2.3.3`。升级前先读 LobeHub 的[发行说明](https://github.com/lobehub/lobehub/releases)，备份 postgresql，再在 lobehub 服务 **设置** 的 **来源** 中把镜像标签改成新版本并部署。数据库结构会在启动时自动迁移，所以升级前一定先备份。

## 常见问题

**打开页面后登录跳转出错？**
检查 lobehub 绑定的域名是否与部署时填写的应用网址完全一致，包括 `https://`，且结尾没有斜杠。改过域名的话，在 lobehub 服务的 **变量** 里把 `APP_URL`（文件存储地址是 `S3_ENDPOINT`）改成新地址，再重启。

**上传图片失败？**
多半是 `files.example.com` 没有绑定到 rustfs 的 `9000` 端口，或者 HTTPS 证书还没生效。在浏览器直接打开这个域名，能连上（即使显示错误信息）说明绑定正确。

**AI 回复为空或报错？**
先在 **设置 → AI 服务商** 里点检查，确认 Key 和模型可用。使用第三方代理时，留意地址是否需要以 `/v1` 结尾。

**需要多大的服务器？**
模板建议给 LobeHub 预留 2 GB 内存，加上 PostgreSQL、Redis 和 RustFS，建议用 4 GB 内存以上的服务器。模型推理在服务商那边进行，不占用你的服务器 CPU。

从 [LobeHub 模板](https://zenavo.app/deploy?template=lobehub)开始：准备好两个域名，部署后先限制注册，再接入模型。
