You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

139 lines
4.6 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: 在 Dokploy 上部署 LobeChat 的服务端数据库版本
description: 本文详细介绍如何在 Dokploy 中部署服务端数据库版 LobeChat包括数据库配置、身份验证服务配置的设置步骤。
tags:
- 服务端数据库
- Postgres
- Clerk
- Dokploy部署
- 数据库配置
- 身份验证服务
- 环境变量配置
---
# 在 Dokploy 上部署服务端数据库版
本文将详细介绍如何在 Dokploy 中部署服务端数据库版 LobeChat。
## 一、准备工作
### 部署 Dokploy 并进行相关设置
```shell
curl -sSL https://dokploy.com/install.sh | sh
```
1. 在 Dokploy 的 Settings / Git 处根据提示将 Github 绑定到 Dokploy
![](https://github.com/user-attachments/assets/c75eb19e-e0f5-4135-91e4-55be8be8a996)
2. 进入 Projects 界面创建一个 Project
![](https://github.com/user-attachments/assets/4e04928d-0171-48d1-afff-e22fc2faaf4e)
### 配置 S3 存储服务
在服务端数据库中我们需要配置 S3 存储服务来存储文件,详细配置教程请参考 使用 Vercel 部署中 [配置 S3 储存服务](https://lobehub.com/zh/docs/self-hosting/server-database/vercel#%E4%B8%89%E3%80%81-%E9%85%8D%E7%BD%AE-s-3-%E5%AD%98%E5%82%A8%E6%9C%8D%E5%8A%A1)。配置完成后你将获得以下环境变量:
```shell
S3_ACCESS_KEY_ID=
S3_SECRET_ACCESS_KEY=
S3_ENDPOINT=
S3_BUCKET=
S3_PUBLIC_DOMAIN=
S3_ENABLE_PATH_STYLE=
```
### 配置 Clerk 身份验证服务
获取 `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY` 、`CLERK_SECRET_KEY` 、`CLERK_WEBHOOK_SECRET` 这三个环境变量Clerk 的详细配置流程请参考 使用 Vercel 部署中 [配置身份验证服务](https://lobehub.com/zh/docs/self-hosting/server-database/vercel#二、-配置身份验证服务)
```shell
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_live_xxxxxxxxxxx
CLERK_SECRET_KEY=sk_live_xxxxxxxxxxxxxxxxxxxxxx
CLERK_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxxxxxxxx
```
## 二、在 Dokploy 上部署数据库
进入前面创建的 Project点击 Create Service 选择 Database在 Database 界面选择 PostgreSQL ,然后设置数据库名、用户、密码,在 Docker image 中填入 `pgvector/pgvector:pg17` 最后点击 Create 创建数据库。
![](https://github.com/user-attachments/assets/97899819-278f-42fd-804a-144d521d4b4f)
进入创建的数据库,在 External Credentials 设置一个未被占用的端口,使其能能通过外部访问,否则 LobeChat 将无法连接到该数据库。
你可以在 External Host 查看 Postgres 数据库连接 URL ,如下:
```shell
postgresql://postgres:wAbLxfXSwkxxxxxx@45.577.281.48:5432/postgres
```
最后点击 Deploy 部署数据库
![](https://github.com/user-attachments/assets/b4e89dd4-877b-43fe-aa42-4680de17ba8e)
## 在 Dokploy 上部署 LobeChat
点击 Create Service 选择 Application创建 LobeChat 应用
![](https://github.com/user-attachments/assets/4cbbbcce-36be-48ff-bb0b-31607a0bba5c)
进入创建的 LobeChat 应用,选择你 fork 的 lobe-chat 项目及分支,点击 Save 保存
![](https://github.com/user-attachments/assets/2bb4c09d-75bb-4c46-bb2f-faf538308305)
切换到 Environment ,在其中填入环境变量,点击保存。
![](https://github.com/user-attachments/assets/0f79c266-cce5-4936-aabd-4c8f19196d91)
```shell
# 构建所必需的环境变量
NIXPACKS_PKGS="pnpm bun"
NIXPACKS_INSTALL_CMD="pnpm install"
NIXPACKS_BUILD_CMD="pnpm run build"
NIXPACKS_START_CMD="pnpm start"
APP_URL=
# 指定服务模式为 server
NEXT_PUBLIC_SERVICE_MODE=server
# Postgres 数据库相关配置
DATABASE_DRIVER=node
DATABASE_URL=
# 你可以使用 openssl rand -base64 32 生成一个随机的 32 位字符串作为密钥。
KEY_VAULTS_SECRET=
# Clerk 相关配置
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
CLERK_WEBHOOK_SECRET=
# S3 相关配置
S3_ACCESS_KEY_ID=
S3_SECRET_ACCESS_KEY=
S3_ENDPOINT=
S3_BUCKET=
S3_PUBLIC_DOMAIN=
S3_ENABLE_PATH_STYLE=
# OpenAI 相关配置
OPENAI_API_KEY=
OPENAI_MODEL_LIST=
OPENAI_PROXY_URL=
```
添加完环境变量并保存后,点击 Deploy 进行部署,你可以在 Deployments 处查看部署进程及日志信息
![](https://github.com/user-attachments/assets/411e2002-61f0-4010-9841-18e88ca895ec)
部署成功后在 Domains 页面,为你的 LobeChat 应用绑定自己的域名并申请证书。
![](https://github.com/user-attachments/assets/dd6bc4a4-3c20-4162-87fd-5cac57e5d7e7)
## 验证 LobeChat 是否正常工作
进入你的 LobeChat 网址,如果你点击左上角登录,可以正常显示登录弹窗,那么说明你已经配置成功了,尽情享用吧~
![](https://github.com/user-attachments/assets/798ddb18-50c7-462a-a083-0c6841351d26)