一、开源项目

https://github.com/lobehub/lobe-chat/blob/main/README.zh-CN.md

二、使用docker部署

https://chat-docs.lobehub.com/zh/self-hosting/platform/docker

2.1 一键启动 LobeChat 服务

docker run -d -p 8099:3210   -e OPENAI_API_KEY=sk-xx   -e OPENAI_PROXY_URL=https://api-proxy.com/v1   -e ACCESS_CODE=xx   --name lobe-chat   lobehub/lobe-chat

指令说明:

  • 默认映射端口为 3210, 请确保未被占用或手动更改端口映射
  • 使用你的 OpenAI API Key 替换上述命令中的 sk-xxxx

2.2 Crontab 自动更新脚本

首先,新建一个 lobe.env 配置文件,内容为各种环境变量,例如:/root/lobe/lobe.env

OPENAI_API_KEY=sk-xxx
OPENAI_PROXY_URL=https://api-proxy.com/v1
ACCESS_CODE=xxx
CUSTOM_MODELS=-gpt-4,-gpt-4-32k,-gpt-3.5-turbo-16k,gpt-3.5-turbo-1106=gpt-3.5-turbo-16k,gpt-4-0125-preview=gpt-4-turbo,gpt-4-vision-preview=gpt-4-vision

然后,你可以使用以下脚本来自动更新:


#!/bin/bash
# auto-update-lobe-chat.sh

# 设置代理(可选)
# export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890

# 拉取最新的镜像并将输出存储在变量中
output=$(docker pull lobehub/lobe-chat:latest 2>&1)

# 检查拉取命令是否成功执行
if [ $? -ne 0 ]; then
  echo "$(date +"%H:%M:%S") : $output"
  exit 1
fi

# 检查输出中是否包含特定的字符串
echo "$output" | grep -q "Image is up to date for lobehub/lobe-chat:latest"

# 如果镜像已经是最新的,则不执行任何操作
if [ $? -eq 0 ]; then
  echo "$(date +"%H:%M:%S") : alread new"
  exit 0
fi

echo "Detected lobe-chat update"

# 删除旧的容器
echo "Removed: $(docker rm -f lobe-chat)"

# 运行新的容器
echo "Started: $(docker run -d -p 8099:3210 --env-file /root/lobe/lobe.env --name=lobe-chat --restart=always lobehub/lobe-chat)"

# 打印更新的时间和版本
echo "Update time: $(date)"
echo "Version: $(docker inspect lobehub/lobe-chat:latest | grep 'org.opencontainers.image.version' | awk -F'"' '{print $4}')"

# 清理不再使用的镜像
docker images | grep 'lobehub/lobe-chat' | grep -v 'latest' | awk '{print $3}' | xargs -r docker rmi > /dev/null 2>&1
echo "Removed old images."

配置 Crontab,每 30 分钟执行一次脚本 .添加定时任务:crontab -e

*/30 * * * * /root/lobe/auto-update-lobe-chat.sh >> /root/lobe/auto-update-lobe-chat.log 2>&1

三、相关