This commit is contained in:
wsl-d4
2025-10-22 09:35:58 +08:00
parent 722e15b458
commit 144ed3cbdf
9 changed files with 672 additions and 5 deletions

153
fastgpt/start.sh Normal file
View File

@@ -0,0 +1,153 @@
#!/bin/bash
# FastGPT 管理脚本
# 用于快速管理 FastGPT 服务的启动、停止、重启等操作
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 函数:显示帮助信息
show_help() {
echo "FastGPT 管理脚本"
echo "用法: $0 {start|stop|restart|status|logs|update|clean|backup}"
echo ""
echo "命令说明:"
echo " start - 启动 FastGPT 服务"
echo " stop - 停止 FastGPT 服务"
echo " restart - 重启 FastGPT 服务"
echo " status - 查看服务状态"
echo " logs - 查看实时日志"
echo " update - 更新镜像并重启"
echo " clean - 清理未使用的镜像和容器"
echo " backup - 备份数据库"
echo " help - 显示此帮助信息"
}
# 函数:检查环境
check_env() {
if [ ! -f ".env" ]; then
echo -e "${YELLOW}警告: .env 文件不存在,将使用默认配置${NC}"
echo -e "${YELLOW}建议复制 .env.example 为 .env 并进行配置${NC}"
fi
}
# 函数:启动服务
start() {
echo -e "${GREEN}正在启动 FastGPT 服务...${NC}"
check_env
docker-compose up -d
echo -e "${GREEN}FastGPT 服务已启动!${NC}"
echo -e "${GREEN}访问地址: http://localhost:3000${NC}"
}
# 函数:停止服务
stop() {
echo -e "${YELLOW}正在停止 FastGPT 服务...${NC}"
docker-compose down
echo -e "${YELLOW}FastGPT 服务已停止${NC}"
}
# 函数:重启服务
restart() {
echo -e "${GREEN}正在重启 FastGPT 服务...${NC}"
docker-compose restart
echo -e "${GREEN}FastGPT 服务已重启!${NC}"
}
# 函数:查看状态
status() {
echo -e "${GREEN}FastGPT 服务状态:${NC}"
docker-compose ps
echo ""
echo -e "${GREEN}容器资源使用情况:${NC}"
docker stats --no-stream $(docker-compose ps -q) 2>/dev/null || echo "容器未运行"
}
# 函数:查看日志
logs() {
if [ -n "$2" ]; then
# 查看特定服务的日志
docker-compose logs -f "$2"
else
# 查看所有日志
docker-compose logs -f
fi
}
# 函数:更新镜像
update() {
echo -e "${GREEN}正在更新 FastGPT 镜像...${NC}"
docker-compose pull
docker-compose up -d
echo -e "${GREEN}镜像更新完成!${NC}"
}
# 函数:清理系统
clean() {
echo -e "${YELLOW}正在清理未使用的 Docker 资源...${NC}"
docker system prune -f
echo -e "${GREEN}清理完成!${NC}"
}
# 函数:备份数据库
backup() {
BACKUP_DIR="./backups"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
echo -e "${GREEN}正在备份数据库...${NC}"
mkdir -p "$BACKUP_DIR"
# 备份 PostgreSQL
docker-compose exec -T postgres pg_dump -U postgres fastgpt > "$BACKUP_DIR/postgres_backup_$TIMESTAMP.sql"
# 备份 MongoDB
docker-compose exec -T mongo mongodump --username root --authenticationDatabase admin --db fastgpt --archive="/tmp/mongo_backup_$TIMESTAMP.archive" && \
docker-compose cp mongo:"/tmp/mongo_backup_$TIMESTAMP.archive" "$BACKUP_DIR/mongo_backup_$TIMESTAMP.archive" && \
docker-compose exec -T mongo rm "/tmp/mongo_backup_$TIMESTAMP.archive"
echo -e "${GREEN}数据库备份完成!备份文件保存在 $BACKUP_DIR${NC}"
}
# 主程序
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
logs)
logs "$@"
;;
update)
update
;;
clean)
clean
;;
backup)
backup
;;
help|--help|-h)
show_help
;;
*)
echo -e "${RED}错误: 未知命令 $1${NC}"
show_help
exit 1
;;
esac