---
title: 通过 Docker Compose 部署 LobeChat
description: 学习如何使用 Docker Compose 部署 LobeChat 服务，包括各种服务的配置教程。
tags:
  - Docker Compose
  - LobeChat
  - Docker 容器
  - 部署指引
---

# 使用 Docker Compose 部署 LobeChat 服务端数据库版本

<div style={{display:"flex", gap: 4}}>
  [![][docker-release-shield]][docker-release-link]

[![][docker-size-shield]][docker-size-link]

[![][docker-pulls-shield]][docker-pulls-link]

</div>

<Callout type="info">
  本文已经假定你了解了 LobeChat 服务端数据库版本（下简称 DB
  版）的部署基本原理和流程，因此只包含核心环境变量配置的内容。如果你还不了解 LobeChat DB
  版的部署原理，请先查阅 [使用服务端数据库部署](/zh/docs/self-hosting/server-database) 。
</Callout>

<Callout type="warning">
  由于无法使用 Docker 环境变量暴露 `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY`，使用 Docker / Docker Compose
  部署 LobeChat 时，你不能使用 Clerk 作为登录鉴权服务。

如果你确实需要 Clerk 作为登录鉴权服务，你可以考虑使用 Vercel 部署或者自行构建镜像。

</Callout>

## 快速启动

以下假设你选择自建 LobeChat 全部四个所需服务，即：

- LobeChat 数据库版本自身
- PostgreSQL：带有 PGVector 插件
- Logto：SSO 登录鉴权服务
- MinIO：支持 S3 协议的本地对象存储服务

<Steps>
  ### 创建配置文件

```sh
curl -fsSL https://raw.githubusercontent.com/lobehub/lobe-chat/HEAD/docker-compose/local/docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/lobehub/lobe-chat/HEAD/docker-compose/local/.env.zh-CN.example > .env
```

你也可以从下文的附录中复制得到这两份示例配置文件。

请按照注释，修改你的 `.env` 和 `docker-compose.yml` 文件。

<Callout type="warning">
  出于网络原因，本地启动时，我们特意让所有服务都同时使用了 `network_mode: host`。这可以解决一些网络问题，但是有可能会导致端口冲突，请自行解决。
</Callout>

### 启动服务

```sh
docker compose up -d
```

### 配置 Logto

1. 打开 `http://localhost:3002`，访问 Logto WebUI，注册管理员账号

2. 创建一个 `Next.js (App Router)` 应用，添加以下配置：

   - `Redirect URI` 为 `http://localhost:3210/api/auth/callback/logto`
   - `Post sign-out redirect URI` 为 `http://localhost:3210/`
   - `CORS allowed origins` 为 `http://localhost:3210`

3. 获取 `Client ID` 和 `Client Secret`，填入你的 `.env` 文件中对应的 `LOGTO_CLIENT_ID` 、 `LOGTO_CLIENT_SECRETT`

4. 配置你的 `.env` 文件中的 `LOGTO_ISSUER` 为 `http://localhost:3001/oidc`

### 配置 MinIO S3

1. 打开 `http://localhost:9001`，访问 MinIO WebUI，默认管理员账号密码在 `docker-compose.yml` 中配置

2. 创建符合你的 `.env` 文件中 `S3_BUCKET` 字段的桶，默认为 `lobe`

3. 选择自定义策略，复制如下内容，粘贴之（如果你修改了桶名，请自行查找替换）

   ```json
   {
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "AWS": ["*"]
         },
         "Action": ["s3:GetBucketLocation"],
         "Resource": ["arn:aws:s3:::lobe"]
       },
       {
         "Effect": "Allow",
         "Principal": {
           "AWS": ["*"]
         },
         "Action": ["s3:ListBucket"],
         "Resource": ["arn:aws:s3:::lobe"],
         "Condition": {
           "StringEquals": {
             "s3:prefix": ["files/*"]
           }
         }
       },
       {
         "Effect": "Allow",
         "Principal": {
           "AWS": ["*"]
         },
         "Action": ["s3:PutObject", "s3:DeleteObject", "s3:GetObject"],
         "Resource": ["arn:aws:s3:::lobe/files/**"]
       }
     ],
     "Version": "2012-10-17"
   }
   ```

4. 创建一个新的访问密钥，将生成的 `Access Key` 和 `Secret Key` 填入你的 `.env` 文件中的 `S3_ACCESS_KEY_ID` 和 `S3_SECRET_ACCESS_KEY` 中

### 重启 LobeChat 服务

```sh
docker compose up -d
```

  <Callout typr="warning">
    此时，请勿使用 `docker compose restart lobe` 来重启，因为这种重启方式不会重新加载环境变量，你的
    S3 配置将不会生效。
 
</Callout>
</Steps>

至此，你已经成功部署了 LobeChat 数据库版本，你可以通过 `http://localhost:3210` 访问你的 LobeChat 服务。

如果你遇到问题，请尝试查看 Docker 日志和控制台日志，并根据后文的详细指引进行排查。

```sh
docker logs -f lobe-database
```

如果你在容器中看到了以下日志，则说明已经启动成功：

```log
[Database] Start to migration...
✅ database migration pass.
-------------------------------------
  ▲ Next.js 14.x.x
  - Local:        http://localhost:3210
  - Network:      http://0.0.0.0:3210

 ✓ Starting...
 ✓ Ready in 95ms
```

## 发布到生产

一般来讲，想要完整的运行 LobeChat 数据库版本，你需要至少拥有如下四个服务

- LobeChat 数据库版本自身
- 带有 PGVector 插件的 PostgreSQL 数据库
- 支持 S3 协议的对象存储服务
- 受 LobeChat 支持的 SSO 登录鉴权服务

这些服务可以通过自建或者在线云服务组合搭配，以满足你的需求。

我们提供了一份完全基于自建的 Docker Compose 配置，你可以直接使用这份配置文件来启动 LobeChat 数据库版本，也可以对之进行修改以适应你的需求。

我们默认使用 [MinIO](https://github.com/minio/minio) 作为本地 S3 对象存储服务，使用 [Logto](https://github.com/logto-io/logto) 作为本地鉴权服务。

我们同时假设在这些服务之外，你还运行了一层 Nginx 来进行反向代理、配置 SSL。

域名和配套服务端口说明如下：

- `lobe.example.com`：为你的 LobeChat 服务端域名，需要反向代理到 LobeChat 服务端口，默认为 `3210`
- `lobe-auth-api.example.com`：为你的 Logto 服务端域名，需要反向代理到 Logto API 服务端口，默认为 `3001`
- `lobe-auth-ui.example.com`：为你的 Logto UI 域名，需要反向代理到 Logto WebUI 服务端口，默认为 `3002`
- `lobe-s3-api.example.com`：为你的 MinIO API 域名，需要反向代理到 MinIO API 服务端口，默认为 `9000`
- `lobe-s3-ui.example.com`：可选，为你的 MinIO UI 域名，需要反向代理到 MinIO WebUI 服务端口，默认为 `9001`

以及不进行反向代理的服务端口：

- `postgresql`：你的 PostgreSQL 数据库服务端口，默认为 `5432`

<Callout type="warning">
  请务必注意，CORS 跨域是在 MinIO / Logto 服务端内部配置的，请勿在你的反向代理中额外配置 CORS，这会导致错误。

如果你需要配置 SSL 证书，请统一在外层的 Nginx 反向代理中配置，而不是在 MinIO 中配置。

</Callout>

### 配置文件

```sh
curl -fsSL https://raw.githubusercontent.com/lobehub/lobe-chat/HEAD/docker-compose/production/docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/lobehub/lobe-chat/HEAD/docker-compose/production/.env.zh-CN.example > .env
```

配置文件包括 `.env` 和 `docker-compose.yml` 两个文件，其中 `.env` 文件用于配置 LobeChat 的环境变量，`docker-compose.yml` 文件用于配置 Postgres、MinIO 和 Logto 服务。

一般情况下，你只应修改其中的域名和账号密码等敏感信息，其他配置项请按照默认值进行配置。

它们的示例配置请参见本文附录。

### Postgres 数据库配置

<Callout type="warning">
  请注意，首次运行 `docker compose up -d` 时，可能会因为 Postgres 数据库尚未初始化完毕，而 LobeChat
  已经尝试连接而失败，出现 `Database migrate failed` 错误并退出。此时，你需要输入 `docker compose
  restart lobe` 来重启 LobeChat，从而使其连接到正确的数据库。
</Callout>

你可以使用下述指令检查日志：

```sh
docker logs -f lobe-database
```

<Callout type="tip">
  在我们官方的 Docker 镜像中，会在启动镜像前自动执行数据库 schema 的 migration
  ，我们的官方镜像承诺「空数据库 ->
  完整表」这一段自动建表的稳定性。因此我们建议你的数据库实例使用一个空表实例，进而省去手动维护表结构或者
  migration 的麻烦。
</Callout>

如果你在建表的时候出现了问题，你可以尝试使用如下命令强制移除数据库容器并重新启动：

```sh
docker compose down  # 停止服务
sudo rm -rf ./data   # 移除挂载的数据库数据
docker compose up -d # 重新启动
```

### 登录鉴权服务配置

本文以 Logto 为例，解释配置过程，如果你使用的是其他登录鉴权服务商，请参照其文档进行配置。

<Callout type="warning">
  请记得注意配置对应登录鉴权服务提供商的 CORS 跨域配置，以确保 LobeChat 能够正常访问登录鉴权服务。

在本文中，你需要允许 `https://lobe.example.com` 的跨域请求。

</Callout>

你需要首先访问 WebUI 来进行配置：

- 如果你按照前文配置了反向代理，打开 `https://lobe-auth-ui.example.com`
- 否则，请在进行端口映射后，打开 `http://localhost:3002`

1. 注册一个新账户，首个注册的账户将自动成为管理员

2. 在 `Applications` 里创建一个 `Next.js (App Router)` 应用，名称随意

3. 配置 `Redirect URI` 为 `https://lobe.example.com/api/auth/callback/logto`，`Post sign-out redirect URI` 为 `https://lobe.example.com/`

4. 配置 `CORS allowed origins` 为 `https://lobe.example.com`

   <Image
     alt="配置 Logto"
     src="https://github.com/user-attachments/assets/5b816379-c07b-40ea-bde4-df16e2e4e523"
   />

5. 获取 `Client ID` 和 `Client Secret`，填入你的 `.env` 文件中的 `LOGTO_CLIENT_ID` 和 `LOGTO_CLIENT_SECRETT` 中

6. 配置你的 `.env` 文件中 `LOGTO_ISSUER` 为 `https://lobe-auth-api.example.com/oidc`

   <Image
     alt="配置 Logto 环境变量"
     src="https://github.com/user-attachments/assets/15af6d94-af4f-4aa9-bbab-7a46e9f9e837"
   />

7. 可选，在左侧 `Sign-in experience` 面板的 `Sign-up and sign-in - Advanced Options` 中关闭 `Enable user registration`，禁止用户自行注册。如果你禁止了用户自行注册，那么你只能在左侧 `User Management` 里手动添加用户。

   <Image
     alt="关闭用户注册"
     src="https://github.com/user-attachments/assets/6b2e6f7b-fec5-41c6-864a-a1add40f74a0"
   />

8. 重启 LobeChat 服务：

   ```sh
   docker compose up -d
   ```

<Callout type="warning">
  请注意，管理员账户不等同于注册用户，不要用你的管理员账户登录 LobeChat，那样只会报错。
</Callout>

### S3 对象存储服务配置

本文以 MinIO 为例，解释配置过程，如果你使用的是其他 S3 服务商，请参照其文档进行配置。

<Callout type="warning">
  请记得注意配置对应 S3 服务商的 CORS 跨域配置，以确保 LobeChat 能够正常访问 S3 服务。

在本文中，你需要允许 `https://lobe.example.com` 的跨域请求。这既可以在 MinIO WebUI 的 `Configuration - API - Cors Allow Origin` 中配置，也可以在 Docker Compose 中的 `minio - environment - MINIO_API_CORS_ALLOW_ORIGIN` 中配置。

如果你使用第二种方法（这也是默认的方法）进行配置，你将无法再在 MinIO WebUI 中配置。

</Callout>

你需要首先访问 WebUI 来进行配置：

- 如果你按照前文配置了反向代理，打开 `https://lobe-s3-api.example.com`
- 否则，请在进行端口映射后，打开 `http://localhost:9001`

1. 在登录界面输入你设置的 `MINIO_ROOT_USER` 和 `MINIO_ROOT_PASSWORD`，然后点击登录

2. 在左侧面板 Administer / Buckets 中点击 `Create Bucket`，输入 `lobe`（对应你的 `S3_BUCKET` 环境变量），然后点击 `Create`

   <Image
     alt="创建 MinIO 桶"
     src="https://github.com/user-attachments/assets/79f44a13-00d3-4302-a6bc-5f4c6cdbffab"
   />

3. 选中你的桶，点击 Summary - Access Policy，编辑，选择 `Custom`，输入 `minio-bucket-config.json` 中的内容（见附录）并保存（同样默认你的桶名为 `lobe`）：

   <Image
     alt="选中 MinIO 桶策略"
     src="https://github.com/user-attachments/assets/57032a82-7604-45d3-ba12-884af6fbcb7c"
   />

   <Image
     alt="配置 MinIO 桶策略"
     src="https://github.com/user-attachments/assets/d8109f4e-71fc-4ba8-8402-ede92669d5e0"
   />

4. 在左侧面板 User / Access Keys 处，点击 `Create New Access Key`，无需额外修改，将生成的 `Access Key` 和 `Secret Key` 填入你的 `.env` 文件中的 `S3_ACCESS_KEY_ID` 和 `S3_SECRET_ACCESS_KEY` 中

   <Image
     alt="创建 MinIO 访问密钥"
     src="https://github.com/user-attachments/assets/72f02ce5-9991-425b-9864-9113ee1ed6bf"
   />

5. 重启 LobeChat 服务：

   ```sh
   docker compose up -d
   ```

至此，你已经成功部署了 LobeChat 数据库版本，你可以通过 `https://lobe.example.com` 访问你的 LobeChat 服务。

## 附录

为方便一键复制，在此汇总配置服务端数据库所需要的示例配置文件：

### 本地部署

#### `.env`

```sh
# LobeChat 域名
APP_URL=https://localhost:3210

# Postgres 相关，也即 DB 必须的环境变量
# 用于加密敏感信息的密钥，可以使用 openssl rand -base64 32 生成
KEY_VAULTS_SECRET=Kix2wcUONd4CX51E/ZPAd36BqM4wzJgKjPtz2sGztqQ=
# Postgres 数据库连接字符串
# 格式：postgres://username:password@host:port/dbname，如果你的 pg 实例与 LobeChat 服务在同一 Docker 网络中，可以使用容器名作为 host
DATABASE_URL=postgresql://postgres:uWNZugjBqixf8dxC@localhost:5432/postgres

# NEXT_AUTH 相关，可以使用 auth0、Azure AD、GitHub、Authentik、Zitadel、Logto 等，如有其他接入诉求欢迎提 PR
# 这里以 Logto 为例
NEXT_AUTH_SECRET=NX2kaPE923dt6BL2U8e9oSre5RfoT7hg
NEXT_AUTH_SSO_PROVIDERS=logto
NEXTAUTH_URL=http://localhost:3210/api/auth
LOGTO_CLIENT_ID=YOUR_LOGTO_CLIENT_ID
LOGTO_CLIENT_SECRET=YOUR_LOGTO_CLIENT_SECRET
LOGTO_ISSUER=http://localhost:3001/oidc
# 注：如果你有 ACCESS_CODE，请务必清空，我们以 NEXT_AUTH 作为唯一鉴权来源
# Proxy，如果你需要的话（比如你使用 GitHub 作为鉴权服务提供商）
# HTTP_PROXY=http://localhost:7890
# HTTPS_PROXY=http://localhost:7890

# MinIO S3 配置
S3_ACCESS_KEY_ID=YOUR_S3_ACCESS_KEY_ID # 直到在 MinIO UI 中手动创建之前都是无效的
S3_SECRET_ACCESS_KEY=YOUR_S3_SECRET_ACCESS_KEY # 直到在 MinIO UI 中手动创建之前都是无效的
S3_ENDPOINT=http://localhost:9000
S3_BUCKET=lobe # 直到在 MinIO UI 中手动创建之前都是无效的
S3_PUBLIC_DOMAIN=http://localhost:9000
S3_ENABLE_PATH_STYLE=1

# 其他环境变量，视需求而定，可以参照客户端版本的环境变量配置，注意不要有 ACCESS_CODE
# OPEANAI_API_KEY=sk-xxxx
# OPENAI_PROXY_URL=https://api.openai.com/v1
# OPENAI_MODEL_LIST=...

```

#### `docker-compose.yml`

```yaml
services:
  postgresql:
    image: pgvector/pgvector:pg16
    container_name: lobe-postgres
    network_mode: 'host'
    volumes:
      - './data:/var/lib/postgresql/data'
    environment:
      - 'POSTGRES_DB=lobe'
      - 'POSTGRES_PASSWORD=uWNZugjBqixf8dxC'
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -U postgres']
      interval: 5s
      timeout: 5s
      retries: 5
    restart: always

  minio:
    image: minio/minio
    container_name: lobe-minio
    network_mode: 'host'
    volumes:
      - './s3_data:/etc/minio/data'
    environment:
      - 'MINIO_ROOT_USER=YOUR_MINIO_USER'
      - 'MINIO_ROOT_PASSWORD=YOUR_MINIO_PASSWORD'
      - 'MINIO_DOMAIN=localhost:9000'
      - 'MINIO_API_CORS_ALLOW_ORIGIN=http://localhost:3210'
    restart: always
    command: >
      server /etc/minio/data --address ":9000" --console-address ":9001"

  logto:
    image: svhd/logto
    container_name: lobe-logto
    network_mode: 'host'
    depends_on:
      postgresql:
        condition: service_healthy
    environment:
      - 'TRUST_PROXY_HEADER=1'
      - 'DB_URL=postgresql://postgres:uWNZugjBqixf8dxC@localhost:5432/logto'
      - 'ENDPOINT=http://localhost:3001'
      - 'ADMIN_ENDPOINT=http://localhost:3002'
    entrypoint: ['sh', '-c', 'npm run cli db seed -- --swe && npm start']

  lobe:
    image: lobehub/lobe-chat-database
    container_name: lobe-database
    network_mode: 'host'
    depends_on:
      - postgresql
      - minio
      - logto
    env_file:
      - .env
    restart: always

volumes:
  data:
    driver: local
  s3_data:
    driver: local

```

### 发布到生产

#### `.env`

```sh
# LobeChat 域名
APP_URL=https://lobe.example.com/

# Postgres 相关，也即 DB 必须的环境变量
# 用于加密敏感信息的密钥，可以使用 openssl rand -base64 32 生成
KEY_VAULTS_SECRET=Kix2wcUONd4CX51E/ZPAd36BqM4wzJgKjPtz2sGztqQ=
# Postgres 数据库连接字符串
# 格式：postgres://username:password@host:port/dbname，如果你的 pg 实例为 Docker 容器，请使用容器名
DATABASE_URL=postgresql://postgres:uWNZugjBqixf8dxC@postgresql:5432/postgres

# NEXT_AUTH 相关，可以使用 auth0、Azure AD、GitHub、Authentik、Zitadel、Logto 等，如有其他接入诉求欢迎提 PR
# 这里以 Logto 为例
NEXT_AUTH_SECRET=NX2kaPE923dt6BL2U8e9oSre5RfoT7hg
NEXT_AUTH_SSO_PROVIDERS=logto
NEXTAUTH_URL=https://lobe.example.com/api/auth
LOGTO_CLIENT_ID=YOUR_LOGTO_CLIENT_ID
LOGTO_CLIENT_SECRET=YOUR_LOGTO_CLIENT_SECRET
LOGTO_ISSUER=https://lobe-auth-api.example.com/oidc
# 注：如果你有 ACCESS_CODE，请务必清空，我们以 NEXT_AUTH 作为唯一鉴权来源
# Proxy，如果你需要的话（比如你使用 GitHub 作为鉴权服务提供商）
# HTTP_PROXY=http://localhost:7890
# HTTPS_PROXY=http://localhost:7890

# MinIO S3 配置
S3_ACCESS_KEY_ID=YOUR_S3_ACCESS_KEY_ID         # 直到在 MinIO UI 中手动创建之前都是无效的
S3_SECRET_ACCESS_KEY=YOUR_S3_SECRET_ACCESS_KEY # 直到在 MinIO UI 中手动创建之前都是无效的
S3_ENDPOINT=https://lobe-s3-api.example.com
S3_BUCKET=lobe # 直到在 MinIO UI 中手动创建之前都是无效的
S3_PUBLIC_DOMAIN=https://lobe-s3-api.example.com
S3_ENABLE_PATH_STYLE=1

# 其他环境变量，视需求而定，可以参照客户端版本的环境变量配置，注意不要有 ACCESS_CODE
# OPEANAI_API_KEY=sk-xxxx
# OPENAI_PROXY_URL=https://api.openai.com/v1
# OPENAI_MODEL_LIST=...

```

#### `docker-compose.yml`

```yaml
services:
  postgresql:
    image: pgvector/pgvector:pg16
    container_name: lobe-postgres
    ports:
      - '5432:5432'
    volumes:
      - './data:/var/lib/postgresql/data'
    environment:
      - 'POSTGRES_DB=lobe'
      - 'POSTGRES_PASSWORD=uWNZugjBqixf8dxC'
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -U postgres']
      interval: 5s
      timeout: 5s
      retries: 5
    restart: always

  minio:
    image: minio/minio
    container_name: lobe-minio
    ports:
      - '9000:9000'
      - '9001:9001'
    volumes:
      - './s3_data:/etc/minio/data'
    environment:
      - 'MINIO_ROOT_USER=YOUR_MINIO_USER'
      - 'MINIO_ROOT_PASSWORD=YOUR_MINIO_PASSWORD'
      - 'MINIO_DOMAIN=lobe-s3-api.example.com'
      - 'MINIO_API_CORS_ALLOW_ORIGIN=https://lobe.example.com' # Your LobeChat's domain name.
    restart: always
    command: >
      server /etc/minio/data --address ":9000" --console-address ":9001"

  logto:
    image: svhd/logto
    container_name: lobe-logto
    ports:
      - '3001:3001'
      - '3002:3002'
    depends_on:
      postgresql:
        condition: service_healthy
    environment:
      - 'TRUST_PROXY_HEADER=1'
      - 'DB_URL=postgresql://postgres:uWNZugjBqixf8dxC@postgresql:5432/logto'
      - 'ENDPOINT=https://lobe-auth-api.example.com'
      - 'ADMIN_ENDPOINT=https://lobe-auth-ui.example.com'
    entrypoint: ['sh', '-c', 'npm run cli db seed -- --swe && npm start']

  lobe:
    image: lobehub/lobe-chat-database
    container_name: lobe-database
    ports:
      - '3210:3210'
    depends_on:
      - postgresql
      - minio
      - logto
    env_file:
      - .env
    restart: always

volumes:
  data:
    driver: local
  s3_data:
    driver: local

```

#### `minio-bucket-config.json`

```json
{
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": ["*"]
      },
      "Action": ["s3:GetBucketLocation"],
      "Resource": ["arn:aws:s3:::lobe"]
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": ["*"]
      },
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3:::lobe"],
      "Condition": {
        "StringEquals": {
          "s3:prefix": ["files/*"]
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": ["*"]
      },
      "Action": ["s3:PutObject", "s3:DeleteObject", "s3:GetObject"],
      "Resource": ["arn:aws:s3:::lobe/files/**"]
    }
  ],
  "Version": "2012-10-17"
}
```

[docker-pulls-link]: https://hub.docker.com/r/lobehub/lobe-chat-database
[docker-pulls-shield]: https://img.shields.io/docker/pulls/lobehub/lobe-chat-database?color=45cc11&labelColor=black&style=flat-square
[docker-release-link]: https://hub.docker.com/r/lobehub/lobe-chat-database
[docker-release-shield]: https://img.shields.io/docker/v/lobehub/lobe-chat-database?color=369eff&label=docker&labelColor=black&logo=docker&logoColor=white&style=flat-square
[docker-size-link]: https://hub.docker.com/r/lobehub/lobe-chat-database
[docker-size-shield]: https://img.shields.io/docker/image-size/lobehub/lobe-chat-database?color=369eff&labelColor=black&style=flat-square
