# 定义颜色
RED='\033[1;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # 无颜色
CYAN='\033[0;36m'
# 显示脚本来源
echo -e "${CYAN}===== LangBot接入微信一键部署工具 =====${NC}"
echo -e "${GREEN}>> LangBot项目地址:https://github.com/RockChinQ/LangBot\n${NC}"
echo -e "${YELLOW}>> 本脚本将引导您完成所有必要的配置步骤${NC}"
echo -e "${YELLOW}>> 此脚本由 B站UP主 -Lazy懒人- 制作,时间:2025.02.06${NC}"
echo -e "${YELLOW}>> 文字版教程:\n${NC}"
echo -e "${GREEN}>> 如有任何问题:请加 LangBot 社区交流群${NC}"
echo -e "${GREEN}>> 群号地址:https://docs.langbot.app/insight/community.html\n${NC}"
# 提示用户是否继续
while true; do
echo -e "${YELLOW}此脚本适用于在 Linux 系统上接入微信到 LangBot,是否继续?${NC}"
echo -e "${YELLOW}输入 y 继续,输入 n 取消${NC}"
echo -n ">>> "
read input
case $input in
[yY])
echo -e "${GREEN}开始执行部署脚本...${NC}"
break
;;
[nN])
echo -e "${RED}已取消${NC}"
exit 0
;;
*)
echo -e "${RED}无效输入,请输入 y 或 n。${NC}"
;;
esac
done
# 定义步骤函数
update_grub() {
echo -e "${CYAN}=== 步骤 1: 更新GRUB和系统时区配置 ===${NC}"
# 操作警告,可能会导致系统出现问题,请谨慎操作
echo -e "${RED}警告:此操作可能会导致系统出现问题,请谨慎操作${NC}"
echo -e "${RED}请确保您已备份重要数据,继续操作前请再次确认${NC}"
while true; do
read -p "是否继续?(Y/n) " response
response=${response:-"y"} # 默认值为 "y"
case $response in
[Yy]*)
echo -e "${YELLOW}正在备份和修改GRUB配置...${NC}"
break
;;
[Nn]*)
echo -e "${RED}已取消${NC}"
exit 0
;;
*)
echo -e "${RED}请输入 y 或 n${NC}"
;;
esac
done
echo -e "${YELLOW}正在备份和修改GRUB配置...${NC}"
if [ -f "/etc/default/grub" ]; then
sudo cp /etc/default/grub /etc/default/grub.bak
sudo sed -i '/^GRUB_CMDLINE_LINUX=/ s/"$/ systemd.unified_cgroup_hierarchy=0"/' /etc/default/grub
sudo grub-mkconfig -o /boot/grub/grub.cfg
echo -e "${GREEN}GRUB 配置已更新${NC}"
echo -e "${YELLOW}重要提示:您需要重启系统才能使GRUB配置生效${NC}"
echo -e "${YELLOW}请重启后再执行后续步骤${NC}"
else
echo -e "${RED}未找到GRUB配置文件,请确认系统使用GRUB引导${NC}"
fi
echo -e "${YELLOW}正在更新系统时区配置...${NC}"
# 设置当前系统时间,默认为中国北京时间
echo -e "${YELLOW}正在设置系统时间为北京时间...${NC}"
sudo timedatectl set-timezone Asia/Shanghai
echo -e "${GREEN}系统时间设置成功${NC}"
}
setup_docker() {
echo -e "${CYAN}=== 步骤 2: 安装必要组件和配置Docker环境 ===${NC}"
# 检查并安装 jq
if ! command -v jq &>/dev/null; then
echo -e "${YELLOW}检测到 jq 未安装,正在安装...${NC}"
if [ -x "$(command -v apt-get)" ]; then
sudo apt-get update >/dev/null 2>&1
sudo apt-get install -y jq >/dev/null 2>&1
elif [ -x "$(command -v yum)" ]; then
sudo yum install -y epel-release >/dev/null 2>&1
sudo yum install -y jq >/dev/null 2>&1
elif [ -x "$(command -v dnf)" ]; then
sudo dnf install -y jq >/dev/null 2>&1
else
echo -e "${RED}无法检测到支持的包管理器,请手动安装 jq${NC}"
exit 1
fi
echo -e "${GREEN}jq 安装完成${NC}"
else
echo -e "${GREEN}jq 已安装${NC}"
fi
# 检查并安装 Docker
if ! command -v docker &>/dev/null; then
echo -e "${YELLOW}检测到 Docker 未安装,即将安装 Docker...${NC}"
if curl -s https://ipinfo.io/country | grep -q "CN"; then
echo -e "${YELLOW}当前环境:中国大陆,正在安装 Docker,请稍等...${NC}"
echo -e "${YELLOW}安装时间可能较长,请耐心等待...${NC}"
if ! sudo curl -fsSL https://gitee.com/tech-shrimp/docker_installer/releases/download/latest/linux.sh | bash -s docker --mirror Aliyun >/dev/null 2>&1; then
echo -e "${RED}Docker 安装失败${NC}"
exit 1
fi
else
echo -e "${YELLOW}当前环境:中国大陆以外地区,正在安装 Docker,请稍等...${NC}"
echo -e "${YELLOW}安装时间可能较长,请耐心等待...${NC}"
if ! curl -fsSL https://get.docker.com -o get-docker.sh >/dev/null 2>&1; then
echo -e "${RED}Docker 安装脚本下载失败${NC}"
exit 1
fi
if ! sh get-docker.sh >/dev/null 2>&1; then
echo -e "${RED}Docker 安装失败${NC}"
exit 1
fi
rm get-docker.sh >/dev/null 2>&1
fi
sudo systemctl start docker >/dev/null 2>&1
sudo systemctl enable docker >/dev/null 2>&1
echo -e "${GREEN}Docker 安装完成${NC}"
else
echo -e "${GREEN}Docker 已安装${NC}"
fi
# 检查并安装 Docker Compose
if ! docker compose version &>/dev/null; then
echo -e "${YELLOW}检测到 Docker Compose 未安装,即将安装Docker Compose...${NC}"
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
if curl -s https://ipinfo.io/country | grep -q "CN"; then
echo -e "${YELLOW}当前环境:中国大陆,正在安装 Docker Compose,请稍等...${NC}"
echo -e "${YELLOW}安装时间可能较长,请耐心等待...${NC}"
if ! curl -L "https://get.daocloud.io/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o $DOCKER_CONFIG/cli-plugins/docker-compose >/dev/null 2>&1; then
echo -e "${RED}Docker Compose 安装失败${NC}"
exit 1
fi
else
echo -e "${YELLOW}当前环境:中国大陆以外地区,正在安装 Docker Compose,请稍等...${NC}"
echo -e "${YELLOW}安装时间可能较长,请耐心等待...${NC}"
if ! curl -SL https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose >/dev/null 2>&1; then
echo -e "${RED}Docker Compose 安装失败${NC}"
exit 1
fi
fi
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
echo -e "${GREEN}Docker Compose 安装完成${NC}"
else
echo -e "${GREEN}Docker Compose 已安装${NC}"
fi
# 检测是否在中国大陆,并配置 Docker 镜像源
if curl -s https://ipinfo.io/country | grep -q "CN"; then
echo -e "${YELLOW}检测到当前环境位于中国大陆地区,正在配置 Docker 镜像源...${NC}"
sudo mkdir -p /etc/docker
sudo rm -f /etc/docker/daemon.json
sudo tee /etc/docker/daemon.json >/dev/null <<EOF
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1panel.live",
"https://hub.rat.dev"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
echo -e "${GREEN}Docker 镜像源配置完成${NC}"
fi
}
setup_containers() {
echo -e "${CYAN}=== 步骤 3: 配置容器环境 ===${NC}"
# 检查并清理已存在的资源
check_and_clean_resources() {
local resource_type=$1
local resource_name=$2
local found=false
case $resource_type in
"network")
if docker network ls | grep -q "$resource_name"; then
found=true
echo -e "${YELLOW}发现已存在的Docker网络: $resource_name${NC}"
fi
;;
"container")
if docker ps -a | grep -q "$resource_name"; then
found=true
echo -e "${YELLOW}发现已存在的Docker容器: $resource_name${NC}"
fi
;;
"directory")
if [ -d "$resource_name" ]; then
found=true
echo -e "${YELLOW}发现已存在的目录: $resource_name${NC}"
fi
;;
esac
if [ "$found" = true ]; then
while true; do
echo -e "${YELLOW}是否删除已存在的$resource_type [$resource_name]? (Y/n)${NC}"
read -r response
response=${response:-"y"} # 默认值为 "y"
case $response in
[Yy]*)
echo -e "${YELLOW}正在删除 $resource_type: $resource_name${NC}"
case $resource_type in
"network")
docker network rm "$resource_name" >/dev/null 2>&1
;;
"container")
docker rm -f "$resource_name" >/dev/null 2>&1
;;
"directory")
rm -rf "$resource_name"
;;
esac
echo -e "${GREEN}删除完成${NC}"
break
;;
[Nn]*)
echo -e "${RED}操作已取消,保留现有$resource_type${NC}"
if [ "$resource_type" = "container" ] || [ "$resource_type" = "network" ]; then
echo -e "${RED}警告:保留现有资源可能会导致部署失败${NC}"
exit 1
fi
break
;;
*)
echo -e "${RED}请输入 y 或 n${NC}"
;;
esac
done
fi
}
# 检查并清理已存在的资源
check_and_clean_resources "network" "langbot-network"
check_and_clean_resources "container" "gewe"
check_and_clean_resources "container" "langbot"
check_and_clean_resources "directory" "gewechat/data"
check_and_clean_resources "directory" "/user/LangBot/data"
check_and_clean_resources "directory" "/user/LangBot/plugins"
# 创建Docker网络
if ! docker network ls | grep -q "langbot-network"; then
echo -e "${YELLOW}创建Docker网络 langbot-network...${NC}"
docker network create langbot-network
fi
# 拉取微信消息平台镜像
echo -e "${YELLOW}正在拉取微信消息平台镜像...${NC}"
docker pull registry.cn-chengdu.aliyuncs.com/tu1h/wechotd:alpine
docker tag registry.cn-chengdu.aliyuncs.com/tu1h/wechotd:alpine gewe
# 创建数据目录并启动微信服务
mkdir -p gewechat/data
docker run -itd --network langbot-network -v ./gewechat/data:/root/temp -p 2531:2531 -p 2532:2532 --restart=always --name=gewe gewe
# 创建LangBot数据目录
mkdir -p /user/LangBot/data
mkdir -p /user/LangBot/plugins
# 创建docker-compose.yml文件
cat >docker-compose.yml <<EOF
version: "3"
services:
langbot:
image: rockchin/langbot:latest
container_name: langbot
volumes:
- /user/LangBot/data:/app/data
- /user/LangBot/plugins:/app/plugins
restart: on-failure
ports:
- 5300:5300
- 2280-2290:2280-2290
networks:
- langbot-network
environment:
-.UTF-8
- LC_ALL=C.UTF-8
networks:
langbot-network:
external: true
EOF
echo -e "${YELLOW}正在启动LangBot...${NC}"
docker compose up -d
echo -e "${YELLOW}等待配置文件生成...${NC}"
sleep 15
}
configure_langbot() {
echo -e "${CYAN}=== 步骤 4: 配置LangBot ===${NC}"
echo -e "${YELLOW}正在配置微信接入...${NC}"
if [ -f "/user/LangBot/data/config/platform.json" ]; then
jq '
.["platform-adapters"][1]["enable"] = false |
.["platform-adapters"][7] = {
"adapter": "gewechat",
"enable": true,
"gewechat_url": "http://gewe:2531",
"port": 2286,
"callback_url": "http://langbot:2286/gewechat/callback",
"app_id": "",
"token": ""
}
' /user/LangBot/data/config/platform.json >/user/LangBot/data/config/platform.json.tmp
mv /user/LangBot/data/config/platform.json.tmp /user/LangBot/data/config/platform.json
fi
echo -e "${CYAN}=== 配置API密钥 ===${NC}"
echo -e "${YELLOW}获取链接:https://api.qhaigc.net/token${NC}"
echo -e "${GREEN}>>> 请输入你获取到的令牌:${NC}"
echo -e "${YELLOW}Tips:如需自定义base_url或模型,请使用@符号,如:[email protected]@example_model${NC}"
while true; do
echo -n ">>> "
read api_input
if [ -n "$api_input" ]; then
# Split the input by '@'
IFS='@' read -r api_key base_url model <<<"$api_input"
# Set default values if not provided
base_url=${base_url:-"https://api.qhaigc.net/v1"}
model=${model:-"gpt-4o"}
# 去除model的OneAPI前缀
model=$(echo "$model" | sed 's/OneAPI\///')
echo -e "${YELLOW}正在验证令牌...使用模型:$model${NC}"
response=$(curl -s --location -g --request POST "$base_url/chat/completions" \
--header "Authorization: Bearer $api_key" \
--header 'Content-Type: application/json' \
--data-raw "{
\"model\": \"$model\",
\"messages\": [{\"role\": \"user\", \"content\": \"Hi!\"}]
}")
if echo "$response" | jq -e '.choices' >/dev/null 2>&1; then
echo -e "${GREEN}令牌验证成功${NC}"
break
else
echo -e "${RED}令牌无效或网络异常,请重新输入${NC}"
echo -e "${RED}错误信息: $(echo "$response" | jq -r '.error.message // "未知错误"')${NC}"
fi
else
echo -e "${RED}令牌不能为空,请重新输入${NC}"
fi
done
# 设置Langbot/data/config/provider.json
if [ -f "/user/LangBot/data/config/provider.json" ]; then
jq --arg key "$api_key" --arg url "$base_url" --arg model "OneAPI/deepseek-reasoner" \
'.["keys"]["openai"][0] = $key | .["requester"]["openai-chat-completions"]["base-url"] = $url | .["model"] = $model' \
/user/LangBot/data/config/provider.json >/user/LangBot/data/config/provider.json.tmp
mv /user/LangBot/data/config/provider.json.tmp /user/LangBot/data/config/provider.json
fi
# 设置Langbot/data/metadata/llm-models.json,从https://pan.thelazy.top/f/EGTp/llm-models.json下载
if curl -fsSL -o "/user/LangBot/data/metadata/llm-models.json" "https://pan.thelazy.top/f/EGTp/llm-models.json"; then
echo -e "${GREEN}llm-models.json 设置成功${NC}"
else
echo -e "${RED}llm-models.json 设置失败${NC}"
fi
echo -e "${YELLOW}正在重启LangBot以应用新配置...${NC}"
docker restart langbot
echo -e "${YELLOW}等待LangBot重启完成...${NC}"
sleep 10
}
login_wechat() {
echo -e "${CYAN}=== 步骤 5: 登录微信 ===${NC}"
echo -e "${YELLOW}正在获取登录二维码...${NC}"
docker restart langbot
# 如果出现"已在线,无需登录",则直接跳过
if docker logs langbot --tail 35 2>&1 | grep -q "已在线,无需登录"; then
echo -e "${GREEN}已在线,无需登录${NC}"
echo -e "${GREEN}请直接使用微信向机器人发送消息即可${NC}"
return
fi
# 通过监测"请扫描下方二维码登录"来判断是否出现二维码
while ! docker logs langbot --tail 35 2>&1 | grep -q "请扫描下方二维码登录"; do
echo -ne "\r${YELLOW}正在等待二维码生成...${NC}"
sleep 1
done
echo -e "\n"
# 显示二维码
docker logs langbot --tail 35
echo -e "${YELLOW}请使用微信扫描上方二维码登录${NC}"
# 获取最后一个有效链接
last_url=$(docker logs langbot --tail 35 2>&1 | grep -o 'https://[^ ]*' | grep -v 'https://github.com/RockChinQ/LangBot' | grep -v 'https://docs.langbot.app' | tail -n 1)
# 如果链接不为空,则显示提示信息
if [ -n "$last_url" ]; then
echo -e "${YELLOW}也可以访问下方链接获取二维码:${NC}"
echo -e "${YELLOW}${last_url}${NC}"
fi
# 监测二维码是否过期和登录状态
dots=""
qr_expired_shown=false
help_shown=false
while true; do
# 检查二维码是否过期
if docker logs langbot --tail 35 2>&1 | grep -q "二维码已过期"; then
if ! $qr_expired_shown; then
echo -e "\n${RED}二维码已过期,正在重新获取...${NC}"
echo -e "${YELLOW}如遇问题:${NC}"
echo -e "1. ${YELLOW}按 Ctrl+C 暂停${NC}"
echo -e "2. ${YELLOW}输入 rl 重启程序(等待约1分钟)${NC}"
echo -e "3. ${YELLOW}输入 dll 查看日志${NC}"
echo -e "4. ${YELLOW}参考文字教程的相关问题,反复尝试${NC}"
qr_expired_shown=true
fi
docker restart langbot
while ! docker logs langbot --tail 35 2>&1 | grep -q "请扫描下方二维码登录"; do
echo -ne "\r${YELLOW}正在等待二维码生成...${NC}"
sleep 1
done
echo -e "\n"
docker logs langbot --tail 35
echo -e "${YELLOW}请使用微信扫描上方二维码登录${NC}"
last_url=$(docker logs langbot --tail 35 2>&1 | grep -o 'https://[^ ]*' | grep -v 'https://github.com/RockChinQ/LangBot' | grep -v 'https://docs.langbot.app' | tail -n 1)
if [ -n "$last_url" ]; then
echo -e "${YELLOW}也可以访问下方链接获取二维码:${NC}"
echo -e "${YELLOW}${last_url}${NC}"
fi
qr_expired_shown=false
fi
# 检查是否登录成功
if docker logs langbot --tail 35 2>&1 | grep -q "Gewechat 登录成功"; then
break
fi
# 动态显示检测状态
dots="${dots}."
if [ ${#dots} -gt 3 ]; then
dots="."
fi
echo -ne "\r${YELLOW}检测登录状态中${dots}${NC}"
# 每30秒显示一次帮助信息
if ! $help_shown; then
echo -e "\n${YELLOW}如果长时间未检测到登录:${NC}"
echo -e "1. ${YELLOW}按 Ctrl+C 暂停${NC}"
echo -e "2. ${YELLOW}输入 dll 查看日志${NC}"
echo -e "3. ${YELLOW}参考文字教程的相关问题,反复尝试${NC}"
help_shown=true
fi
sleep 1
done
echo -e "\n"
# 输出logs中的"登录成功!用户昵称: xxx",并提取用户昵称
user_nickname=$(docker logs langbot --tail 35 2>&1 | grep -o '登录成功!用户昵称: .*' | tail -n 1 | sed 's/登录成功!用户昵称: //')
echo -e "${GREEN}微信登录成功,用户昵称: $user_nickname${NC}"
# 等待用户确认
read -p "按下回车键继续..."
}
setup_admin() {
echo -e "${CYAN}=== 步骤 6: 设置管理员 ===${NC}"
echo -e "${YELLOW}请使用微信向机器人发送一条消息...${NC}"
echo -e "${YELLOW}正在获取用户ID...${NC}"
user_id=""
while [ -z "$user_id" ]; do
user_id=$(docker logs langbot --tail 35 2>&1 | grep -o 'person_wxid_[a-zA-Z0-9]*' | tail -n 1)
if [ -z "$user_id" ]; then
echo -e "${YELLOW}未检测到用户ID,请确保已向机器人发送消息...${NC}"
sleep 5 # 等待5秒后再次检查
fi
done
echo -e "${GREEN}检测到用户ID: $user_id${NC}"
if [ -f "/user/LangBot/data/config/system.json" ]; then
jq --arg uid "$user_id" '.["admin-sessions"][0] = $uid' \
/user/LangBot/data/config/system.json >/user/LangBot/data/config/system.json.tmp
mv /user/LangBot/data/config/system.json.tmp /user/LangBot/data/config/system.json
echo -e "${YELLOW}正在重启LangBot以应用管理员配置...${NC}"
docker restart langbot
echo -e "${GREEN}管理员设置完成${NC}"
else
echo -e "${RED}未找到system.json配置文件${NC}"
fi
}
clear_login_cache() {
echo -e "${CYAN}=== 额外功能: 清除登录缓存 ===${NC}"
echo -e "${YELLOW}正在清除登录缓存...${NC}"
# 将LangBot/data/config/platform.json中的"gewechat"配置项的app_id和token清空
if [ -f "/user/LangBot/data/config/platform.json" ]; then
jq '.["platform-adapters"][7]["app_id"] = "" | .["platform-adapters"][7]["token"] = ""' \
/user/LangBot/data/config/platform.json >/user/LangBot/data/config/platform.json.tmp
mv /user/LangBot/data/config/platform.json.tmp /user/LangBot/data/config/platform.json
echo -e "${GREEN}登录缓存已清除${NC}"
read -p "是否重启LangBot以应用更改?(Y/n) " response
response=${response:-"y"} # 默认值为 "y"
case $response in
[Yy]*)
echo -e "${YELLOW}正在重启LangBot...${NC}"
docker restart langbot
echo -e "${GREEN}LangBot已重启${NC}"
;;
[Nn]*)
echo -e "${YELLOW}请手动重启LangBot以应用更改${NC}"
;;
*)
echo -e "${RED}请输入 y 或 n${NC}"
;;
esac
else
echo -e "${RED}未找到platform.json配置文件${NC}"
fi
read -p "按下回车键继续..."
}
quick_get_help() {
echo -e "${CYAN}=== 额外功能: 快速获取帮助 ===${NC}"
echo -e "${YELLOW}请先给核心项目:https://github.com/RockChinQ/LangBot 一个star${NC}"
echo -e "${YELLOW}然后加入LangBot社区交流群获取帮助,您的Star将会是项目进一步发展的动力${NC}"
read -p "按下回车键继续..."
# 检查并安装 iconv
if ! command -v iconv &>/dev/null; then
echo -e "${YELLOW}iconv 未安装,正在安装...${NC}"
sudo apt-get update
sudo apt-get install -y libc-bin
fi
# 设置 Docker 容器内的环境变量
docker exec langbot sh -c "export.UTF-8 && export LC_ALL=C.UTF-8"
docker exec gewe sh -c "export.UTF-8 && export LC_ALL=C.UTF-8"
# 输出docker logs langbot 和 docker logs gewe 的所有日志到文件,使用UTF-8编码
docker logs langbot 2>&1 | iconv -f UTF-8 -t UTF-8 >langbot.log
docker logs gewe 2>&1 | iconv -f UTF-8 -t UTF-8 >gewe.log
echo -e "${YELLOW}已将所有日志输出到 langbot.log 和 gewe.log 文件${NC}"
echo -e "${YELLOW}日志文件位置在:$(pwd)${NC}"
echo -e "${YELLOW}请将日志文件发送到LangBot社区交流群获取帮助${NC}"
echo -e "${YELLOW}请加入LangBot社区交流群获取帮助${NC}"
echo -e "${YELLOW}群号地址:https://docs.langbot.app/insight/community.html${NC}"
read -p "按下回车键继续..."
}
quick_get_self_help() {
echo -e "${CYAN}=== 额外功能: 问题自助(解决常见问题) ===${NC}"
echo -e "${YELLOW}请先给核心项目:https://github.com/RockChinQ/LangBot 一个star${NC}"
read -p "按下回车键继续..."
echo -e "${YELLOW}请访问以下链接获取帮助:${NC}"
echo -e "${YELLOW}相关问题:https://blog.thelazy.top/archives/1738843139572#%E7%9B%B8%E5%85%B3%E9%97%AE%E9%A2%98${NC}"
echo -e "${YELLOW}LangBot 项目文档:https://docs.langbot.app${NC}"
echo -e "${YELLOW}如果您有任何问题,请输入 h 获取帮助${NC}"
read -p "按下回车键继续..."
}
restart_langbot() {
echo -e "${CYAN}=== 额外功能: 重启LangBot ===${NC}"
echo -e "${YELLOW}正在重启LangBot...${NC}"
docker restart langbot
echo -e "${GREEN}LangBot已重启${NC}"
read -p "按下回车键继续..."
}
restart_gewe() {
echo -e "${CYAN}=== 额外功能: 重启消息平台Gewe ===${NC}"
echo -e "${YELLOW}正在重启消息平台Gewe...${NC}"
docker restart gewe
echo -e "${GREEN}消息平台Gewe已重启${NC}"
read -p "按下回车键继续..."
}
get_logs_langbot() {
echo -e "${CYAN}=== 额外功能: 获取LangBot日志 ===${NC}"
echo -e "${YELLOW}正在获取LangBot日志...${NC}"
docker logs langbot
read -p "按下回车键继续..."
}
get_logs_gewe() {
echo -e "${CYAN}=== 额外功能: 获取消息平台Gewe日志 ===${NC}"
echo -e "${YELLOW}正在获取消息平台Gewe日志...${NC}"
docker logs gewe
read -p "按下回车键继续..."
}
change_model(){
echo -e "${CYAN}=== 额外功能: 更换模型 ===${NC}"
echo -e "${YELLOW}点击此链接:https://blog.thelazy.top/archives/1738843139572${NC}"
echo -e "${YELLOW}查看相关问题-切换模型${NC}"
echo -e "${YELLOW}请按照文档中的步骤进行操作${NC}"
read -p "按下回车键继续..."
}
# 主菜单
while true; do
echo -e "\n${CYAN}=== 请选择要执行的步骤(首次部署请按顺序依次执行1-6):===${NC}"
echo -e "${YELLOW}1) 更新GRUB和时区配置(需要重启系统)${NC}"
echo -e "${YELLOW}2) 安装必要组件(Docker等)${NC}"
echo -e "${YELLOW}3) 配置容器环境${NC}"
echo -e "${YELLOW}4) 配置LangBot${NC}"
echo -e "${YELLOW}5) 登录微信${NC}"
echo -e "${YELLOW}6) 设置管理员${NC}"
echo -e "-------------------------------------------------------"
echo -e "${CYAN}=== 额外功能:用于修改配置、查询日志、获取帮助等 ===${NC}"
echo -e "${YELLOW}cm) 更换模型${NC}"
echo -e "${YELLOW}dll) 获取LangBot日志${NC}"
echo -e "${YELLOW}dlg) 获取消息平台Gewe日志${NC}"
echo -e "${YELLOW}rl) 重启LangBot${NC}"
echo -e "${YELLOW}rg) 重启消息平台Gewe${NC}"
echo -e "${YELLOW}sh) 获取相关帮助${NC}"
echo -e "${YELLOW}c) 清除登录缓存${NC}"
echo -e "${YELLOW}h) 快速获取帮助${NC}"
echo -e "${YELLOW}q) 退出${NC}"
echo -n "请输入选项 (括号前面的数字或字母): "
read choice
case $choice in
1)
update_grub
echo -e "${YELLOW}请重启系统后继续执行其他步骤${NC}"
exit 0
;;
2)
setup_docker
;;
3)
setup_containers
;;
4)
configure_langbot
;;
5)
login_wechat
;;
6)
setup_admin
;;
cm)
change_model
;;
dll)
get_logs_langbot
;;
dlg)
get_logs_gewe
;;
rl)
restart_langbot
;;
rg)
restart_gewe
;;
sh)
quick_get_self_help
;;
c)
clear_login_cache
;;
h)
quick_get_help
;;
q)
echo -e "${GREEN}感谢使用,请不要忘了Star${NC}"
echo -e "${GREEN}项目地址:https://github.com/RockChinQ/LangBot${NC}"
echo -e "${YELLOW}需要再次启动此脚本时,控制台输入 langbot-wechat 即可${NC}"
exit 0
;;
*)
echo -e "${RED}无效的选项,请重新选择${NC}"
;;
esac
done
echo -e "\n${CYAN}🎉🎉🎉 恭喜你,微信接入部署完成! 🎉🎉🎉${NC}"
echo -e "${YELLOW}LangBot已成功配置微信接入${NC}"
echo -e "\n${CYAN}===== 祝你使用愉快!=====${NC}"
echo -e "${YELLOW}如有任何问题,请加 LangBot 社区交流群${NC}"
echo -e "${YELLOW}群号地址:https://docs.langbot.app/insight/community.html${NC}"