当前位置: 首页 > news >正文

创建网站平台大连网站制作机构

创建网站平台,大连网站制作机构,云南建设厅查证网站,网络营销创意方案该脚本用于自动化安装 Open WebUI#xff0c;并支持以下功能#xff1a; 可选跳过 Ollama 安装#xff1a;通过 --no-ollama 参数跳过 Ollama 的安装。自动清理旧目录#xff1a;如果安装目录 (~/open-webui) 已存在#xff0c;脚本会自动删除旧目录并重新安装。完整的依…该脚本用于自动化安装 Open WebUI并支持以下功能 可选跳过 Ollama 安装通过 --no-ollama 参数跳过 Ollama 的安装。自动清理旧目录如果安装目录 (~/open-webui) 已存在脚本会自动删除旧目录并重新安装。完整的依赖安装包括 Python、Node.js、npm、Git 等依赖的安装。自动配置系统服务将 Open WebUI 配置为系统服务并设置开机自启。防火墙配置自动开放端口 8080以便访问 Open WebUI。更新后的脚本 bash 复制 #!/bin/bash# 遇到错误时退出脚本 set -e# 检查并设置 Conda setup_conda() {# 如果 conda 命令不可用但目录存在if [ -d $HOME/miniconda ]; thenecho 检测到已存在的 Miniconda 安装正在配置...# 添加到 PATHexport PATH$HOME/miniconda/bin:$PATH# 初始化 bash 和 condaif [ ! -f $HOME/.bashrc ] || ! grep -q conda initialize $HOME/.bashrc; then$HOME/miniconda/bin/conda init bashsource $HOME/.bashrcfielseecho 正在安装 Miniconda...# 下载 Miniconda 安装脚本wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh# 安装 Minicondabash miniconda.sh -b -p $HOME/miniconda# 初始化 bash 和 condaexport PATH$HOME/miniconda/bin:$PATH$HOME/miniconda/bin/conda init bashsource $HOME/.bashrcfi }# 生成随机密钥的函数 generate_secret_key() {python3 -c import secrets; print(secrets.token_urlsafe(32)) }# 显示脚本用法 usage() {echo 用法: $0 [--no-ollama] [--no-download]echo --no-ollama: 跳过 Ollama 安装echo --no-download: 跳过下载 Open WebUI 代码如果已经下载exit 1 }# 解析参数 SKIP_OLLAMAfalse SKIP_DOWNLOADfalse while [[ $# -gt 0 ]]; docase $1 in--no-ollama)SKIP_OLLAMAtrueshift;;--no-download)SKIP_DOWNLOADtrueshift;;*)usage;;esac done# 检查 sudo 权限 check_sudo() {if ! sudo -n true 2/dev/null; thenecho 需要 sudo 权限来安装系统依赖。echo 请确保你有 sudo 权限或者以 root 用户运行此脚本。exit 1fi }echo 开始安装 Open WebUI...# 检查 sudo 权限 check_sudo# 更新系统包 echo 更新系统包... if command -v apt-get /dev/null; thensudo -n apt-get updatesudo -n apt-get upgrade -y fi# 安装基本依赖 echo 安装基本依赖... sudo -n apt-get install -y python3 python3-pip git curl python3-venv build-essential || { echo 安装依赖失败; exit 1; }# 安装 Node.js echo 安装 Node.js... if ! command -v node /dev/null; thenecho 安装 Node.js 20 LTS...# 添加 NodeSource 仓库if [ ! -f /etc/apt/sources.list.d/nodesource.list ]; thenecho 添加 NodeSource 仓库...curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo -n gpg --dearmor -o /usr/share/keyrings/nodesource.gpgecho deb [signed-by/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main | sudo -n tee /etc/apt/sources.list.d/nodesource.listsudo -n apt-get updatefi# 安装 Node.jssudo -n apt-get install -y nodejs# 验证安装if ! command -v node /dev/null; thenecho Node.js 安装失败exit 1fi fi# 显示 Node.js 版本 echo Node.js 版本 node --version echo npm 版本 npm --version# 安装 Ollama如果不跳过 if [[ $SKIP_OLLAMA false ]]; thenecho 安装 Ollama...curl -fsSL https://ollama.com/install.sh | sh || { echo Ollama 安装失败; exit 1; }sudo systemctl enable ollamasudo systemctl start ollama elseecho 跳过 Ollama 安装。 fi# 检查 CUDA 环境 check_cuda() {echo 检查 CUDA 环境...if ! command -v nvidia-smi /dev/null; thenecho 警告: 未检测到 NVIDIA GPU 驱动return 1elseecho GPU 信息:nvidia-smi --query-gpugpu_name,driver_version,memory.total,memory.free,memory.used,temperature.gpu --formatcsv,noheaderreturn 0fi }# 设置 CUDA 环境 setup_cuda() {# 检查 CUDA 是否已安装if [ -d /usr/local/cuda-11.4 ]; thenecho CUDA 11.4 已安装在 /usr/local/cuda-11.4# 设置环境变量if ! grep -q export PATH/usr/local/cuda-11.4/bin ~/.bashrc; thenecho export PATH/usr/local/cuda-11.4/bin:$PATH ~/.bashrcfiif ! grep -q export LD_LIBRARY_PATH/usr/local/cuda-11.4/lib64 ~/.bashrc; thenecho export LD_LIBRARY_PATH/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH ~/.bashrcfisource ~/.bashrcreturn 0# 如果没有安装且没有 nvcc 命令elif ! command -v nvcc /dev/null; thenecho 未检测到 CUDA toolkit正在安装...# 检查安装文件是否已存在CUDA_INSTALLERcuda_11.4.4_470.82.01_linux.runif [ ! -f $CUDA_INSTALLER ]; thenecho 下载 CUDA 11.4 安装包...wget https://developer.download.nvidia.com/compute/cuda/11.4.4/local_installers/$CUDA_INSTALLERelseecho CUDA 安装包已存在跳过下载...fiecho 安装 CUDA toolkit...sudo sh $CUDA_INSTALLER --toolkit --silent --override# 设置环境变量if ! grep -q export PATH/usr/local/cuda-11.4/bin ~/.bashrc; thenecho export PATH/usr/local/cuda-11.4/bin:$PATH ~/.bashrcfiif ! grep -q export LD_LIBRARY_PATH/usr/local/cuda-11.4/lib64 ~/.bashrc; thenecho export LD_LIBRARY_PATH/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH ~/.bashrcfisource ~/.bashrcreturn 0fireturn 1 }# 检查 GPU 和设置 CUDA if check_cuda; thenecho 检测到 GPU设置 CUDA 环境...setup_cuda# 设置 GPU 相关环境变量export NODE_ONNX_RUNTIME_GPU1export CUDA_VISIBLE_DEVICES0# 显示 CUDA 版本echo CUDA 版本: $(nvidia-smi | grep CUDA Version | awk {print $9})# 下载 GPU 版本的 onnxruntimeecho 下载 onnxruntime GPU 版本...mkdir -p node_modules/onnxruntime-node/bin/napi-v3/linux/x64cd node_modules/onnxruntime-node/bin/napi-v3/linux/x64# 尝试多个下载源download_file() {local urls(https://mirror.ghproxy.com/https://github.com/microsoft/onnxruntime/releases/download/v1.20.1/onnxruntime-linux-x64-gpu-1.20.1.tgzhttps://hub.fastgit.xyz/microsoft/onnxruntime/releases/download/v1.20.1/onnxruntime-linux-x64-gpu-1.20.1.tgzhttps://github.com/microsoft/onnxruntime/releases/download/v1.20.1/onnxruntime-linux-x64-gpu-1.20.1.tgz)for url in ${urls[]}; doecho 尝试从 $url 下载...wget --no-check-certificate \--timeout15 \--tries3 \--continue \--inet4-only \-q --show-progress \$url return 0echo 从 $url 下载失败尝试下一个源...donereturn 1}if ! download_file; thenecho GPU 版本下载失败切换到 CPU 模式...export NODE_ONNX_RUNTIME_GPU0elseecho 解压 GPU 版本文件...tar xzf onnxruntime-linux-x64-gpu-1.20.1.tgzficd - elseecho 未检测到 GPU将使用 CPU 模式...export NODE_ONNX_RUNTIME_GPU0# 下载 CPU 版本的 onnxruntimeecho 下载 onnxruntime CPU 版本...mkdir -p node_modules/onnxruntime-node/bin/napi-v3/linux/x64cd node_modules/onnxruntime-node/bin/napi-v3/linux/x64wget --no-check-certificate \--timeout15 \--tries3 \--continue \--inet4-only \-q --show-progress \https://github.com/microsoft/onnxruntime/releases/download/v1.20.1/onnxruntime-linux-x64-1.20.1.tgzif [ $? -eq 0 ]; thenecho 解压 CPU 版本文件...tar xzf onnxruntime-linux-x64-1.20.1.tgzelseecho 警告: onnxruntime CPU 版本下载失败ficd - fi# 临时设置环境变量 if [ -d /usr/local/cuda-11.4 ]; thenexport PATH/usr/local/cuda-11.4/bin:$PATHexport LD_LIBRARY_PATH/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH fi# 检查是否已经在虚拟环境中 if [ -z $VIRTUAL_ENV ]; then# 如果不在虚拟环境中则检查并设置 Condaif ! command -v conda /dev/null; thenecho Conda 未安装或不在 PATH 中正在设置...setup_condafi# 再次检查 conda 是否可用if ! command -v conda /dev/null; thenecho Conda 安装失败请手动安装 Conda 后重试exit 1fi# 确保 conda 命令可用source $HOME/.bashrceval $(conda shell.bash hook)# 检查并删除已存在的环境if conda env list | grep -q ^open-webui ; thenecho 删除已存在的 open-webui 环境...conda deactivateconda env remove -n open-webui -yfi# 创建并激活 Python 3.11 环境echo 创建 Python 3.11 环境...conda create -y -n open-webui python3.11source activate open-webui || conda activate open-webui elseecho 检测到已存在的虚拟环境: $VIRTUAL_ENVecho 跳过创建新环境... fi# 验证 Python 环境 echo 验证 Python 环境... which python python --version# 创建安装目录 echo 设置 Open WebUI 安装目录... INSTALL_DIR/opt/open-webui mkdir -p $INSTALL_DIR# 下载或更新 Open WebUI if [[ $SKIP_DOWNLOAD false ]]; thenecho 下载 Open WebUI...if [ -d $INSTALL_DIR/open-webui ]; thenecho 更新 Open WebUI...cd $INSTALL_DIR/open-webuigit pullelseecho 克隆 Open WebUI...cd $INSTALL_DIRgit clone https://github.com/open-webui/open-webui.gitfi elseecho 跳过下载 Open WebUI...if [ ! -d $INSTALL_DIR/open-webui ]; thenecho 错误Open WebUI 目录不存在于 $INSTALL_DIR/open-webuiecho 请确保目录存在或移除 --no-download 选项exit 1fi fi# 设置权限 echo 设置目录权限... sudo -n chown -R $USER:$USER $INSTALL_DIR# 进入项目目录 cd $INSTALL_DIR/open-webui# 安装系统依赖 echo 安装系统依赖... if command -v apt-get /dev/null; thensudo -n apt-get updatesudo -n apt-get install -y ffmpeg elif command -v yum /dev/null; thensudo -n yum install -y ffmpeg elif command -v pacman /dev/null; thensudo -n pacman -S --noconfirm ffmpeg elif command -v apk /dev/null; thensudo -n apk add --no-cache ffmpeg elseecho 警告: 无法识别的包管理器请手动安装 ffmpeg fi# 构建前端 echo 构建前端... cd /opt/open-webui/open-webuiecho 清理旧的构建文件... rm -rf node_modules package-lock.jsonecho 配置 npm... npm config set registry https://registry.npmmirror.com npm config set fetch-retries 5 npm config set fetch-timeout 60000 npm config set progress true npm config set loglevel infoecho 安装前端依赖... # 使用 pnpm 或 npm 安装依赖 if command -v pnpm /dev/null; thenecho 使用 pnpm 安装依赖...# 配置 pnpm 使用淘宝镜像pnpm config set registry https://registry.npmmirror.compnpm install --reporterdefault elseecho 使用 npm 安装依赖...npm install --verbose fi# 构建前端 echo 构建前端... if command -v pnpm /dev/null; thenpnpm run build --reporterdefault elsenpm run build --verbose fi# 检查构建结果 if [ -d build ]; thenecho 前端构建成功 elseecho 前端构建失败请检查错误信息exit 1 fi# 初始化数据库 echo 初始化数据库... cd backend export PYTHONPATH/opt/open-webui/open-webui/backend# 运行数据库迁移 echo 运行数据库迁移... if [ -f open_webui/alembic.ini ]; thencd open_webuiecho 当前目录: $(pwd)echo 运行迁移...alembic upgrade headcd .. elseecho 在以下位置搜索 alembic.ini:find . -name alembic.ini -type fecho 错误: 找不到 alembic.iniexit 1 fi# 确保 .webui_secret_key 存在 if [ ! -f .webui_secret_key ]; thenecho 生成 secret key...head -c 12 /dev/random | base64 .webui_secret_key fi# 设置环境变量 export WEBUI_SECRET_KEY$(cat .webui_secret_key) export PORT8111 export HOST0.0.0.0# 启动服务 if command -v gunicorn /dev/null; thenecho 使用 gunicorn 启动...gunicorn -w 1 -k uvicorn.workers.UvicornWorker open_webui.main:app \--bind 0.0.0.0:8111 \--timeout 300 \--log-level debug \--error-logfile - \--capture-output # 保存进程 IDGUNICORN_PID$!echo Gunicorn PID: $GUNICORN_PID elseecho 使用 uvicorn 启动...python -m uvicorn open_webui.main:app \--host 0.0.0.0 \--port 8111 \--log-level debug # 保存进程 IDUVICORN_PID$!echo Uvicorn PID: $UVICORN_PID fi# 等待后端启动 echo 等待服务启动... for i in {1..30}; doif curl -s http://localhost:8111/health /dev/null; thenecho 服务已启动成功echo 请访问 http://localhost:8111breakfi# 检查进程是否还在运行if [ ! -z $GUNICORN_PID ] ! ps -p $GUNICORN_PID /dev/null; thenecho 错误: Gunicorn 进程已退出breakfiif [ ! -z $UVICORN_PID ] ! ps -p $UVICORN_PID /dev/null; thenecho 错误: Uvicorn 进程已退出breakfiecho 尝试 $i/30...sleep 1 done# 如果服务没有启动显示调试信息 if ! curl -s http://localhost:8111/health /dev/null; thenecho 服务启动失败显示调试信息:echo Python 路径: $PYTHONPATHecho 当前目录: $(pwd)echo Python 版本: $(python --version)echo 已安装的包:pip listecho 目录内容:ls -laecho open_webui 目录内容:ls -la open_webui/echo 进程状态:ps aux | grep -E gunicorn|uvicornecho 端口状态:netstat -tuln | grep 8111echo 日志内容:tail -n 50 /var/log/syslog | grep -E gunicorn|uvicorn|open_webui fi# 创建系统服务 echo 创建系统服务... sudo tee /etc/systemd/system/open-webui-backend.service EOL [Unit] DescriptionOpen WebUI Backend Afternetwork.target[Service] Typesimple User$USER WorkingDirectory/opt/open-webui/open-webui/backend ExecStart/opt/open-webui/open-webui/venv/bin/gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app --bind 0.0.0.0:8111 EnvironmentPATH/opt/open-webui/open-webui/venv/bin Restarton-failure StandardOutputsyslog StandardErrorsyslog SyslogIdentifieropen-webui-backend[Install] WantedBymulti-user.target EOL# 启动并启用服务 echo 启动 Open WebUI 服务... sudo systemctl daemon-reload sudo systemctl enable open-webui-backend sudo systemctl start open-webui-backend# 配置防火墙 echo 配置防火墙... sudo ufw allow 8111/tcpecho 安装成功完成 echo 您现在可以通过 http://localhost:8111 访问 Open WebUI。 echo 首次访问时请创建一个管理员账户。 使用方法 将脚本保存为文件例如 install_open_webui.sh。赋予脚本执行权限 bash 复制chmod x install_open_webui.sh运行脚本默认安装包含 Ollamabash复制./install_open_webui.sh跳过 Ollama 安装bash复制./install_open_webui.sh --no-ollama注意事项 确保您具有 sudo 权限来运行脚本。如果安装失败可以通过以下命令查看服务日志 bash 复制sudo journalctl -u open-webui-backend如果前端构建失败请确保已正确安装 nodejs 和 npm然后手动运行以下命令 bash 复制npm install npm run build如果有其他问题欢迎随时提问
http://www.dnsts.com.cn/news/157246.html

相关文章:

  • 网络建站系统外围网站怎么做
  • 企业网站推广优化怀化灵知网站建设
  • 网站的动画效果代码大全网站开发 私活
  • 可信赖的邵阳网站建设图文制作app哪个好
  • 网站建设合作范本域名升级
  • 阳光家园广州网站网址网站开发人员名片
  • 网站建设怎么样做账不关站备案wordpress 2019
  • 程序源代码网站网站访客代码js
  • 网站欢迎界面设计汝州网站建设汝州
  • 郑州直播网站建设公司微博如何做的跟网站一样
  • 很大气的网站 营销义乌网站建设现状
  • 怎么做支付网站网站登录怎么保存用户名密码
  • 导航网站超链接如何做网站做视频在线观看网址
  • 天津网站建站模板利用免费网站做SEO
  • 东莞门户网站建设方案公司网站后台密码
  • 网站建设 资讯南沙营销型网站建设
  • 安徽同济建设集团网站wordpress 分类不同模板
  • 郑州网站建设鹏之信河南软件开发公司有哪些
  • 高新公司网站建设哪家好石狮网站建设公司哪家好
  • 商城网站建设制作做公章网站
  • 星巴克网站建设方案好看的移动端网页
  • 建一个个人网站要多少钱公司名称怎么取名
  • 网站的制作公司网络营销师工作内容
  • 网站建设代码标签大全成全视频免费观看在线看第6季动漫版
  • 零基础怎么做网站百度用户服务中心人工电话
  • 如何制作产品网站模板下载地址如何接单做网站
  • 网站换服务器要怎么做低代码无代码平台
  • 济宁市做网站的公司wordpress t1主题
  • 南城免费做网站wordpress作者信息
  • 建设银行甘肃分行网站怎么做网站建设赚钱