Ubuntu 手动安装 Open WebUI 完整指南

news2025/3/2 10:38:04

Ubuntu 手动安装 Open WebUI 完整指南

前提条件

在安装 Open WebUI 之前,请确保您的系统满足以下要求:

  • Ubuntu 22.04 LTS 或更高版本
  • Python 3.10+
  • Node.js 18+
  • Git
  • 至少 4GB 内存
  • 足够的磁盘空间(推荐 20GB 以上)

安装步骤

1. 更新系统包

sudo apt update
sudo apt upgrade -y

2. 安装必要的依赖

# 安装 Python 和 Node.js
sudo apt install -y python3 python3-pip nodejs npm git curl

# 安装 Python 虚拟环境工具
sudo apt install -y python3-venv

3. 安装 Ollama(AI 后端)

# 下载并安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh

# 启动 Ollama 服务
sudo systemctl enable ollama
sudo systemctl start ollama

4. 克隆 Open WebUI 仓库

# 创建安装目录
mkdir -p ~/open-webui
cd ~/open-webui

# 克隆仓库
git clone https://github.com/open-webui/open-webui.git
cd open-webui

5. 设置 Python 虚拟环境

# 创建虚拟环境
python3 -m venv venv

# 激活虚拟环境
source venv/bin/activate

# 安装 Python 依赖
pip install -r backend/requirements.txt

6. 安装前端依赖

# 安装 Node.js 依赖
npm install

# 构建前端
npm run build

7. 配置环境变量

# 创建 .env 文件
cp .env.example .env

# 编辑 .env 文件
nano .env

.env 文件中,至少配置以下关键参数:

OLLAMA_BASE_URL=http://localhost:11434
WEBUI_SECRET_KEY=your_unique_secret_key

8. 启动 Open WebUI

开发模式
# 启动后端
cd backend
python3 -m uvicorn main:app --host 0.0.0.0 --port 8080

# 在另一个终端启动前端
cd frontend
npm run dev
生产模式
# 使用 Gunicorn 启动后端
cd backend
gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app

# 使用 Nginx 托管静态文件

9. 创建系统服务

# 创建后端服务文件
sudo nano /etc/systemd/system/open-webui-backend.service

添加以下内容:

[Unit]
Description=Open WebUI Backend
After=network.target

[Service]
Type=simple
User=your_username
WorkingDirectory=/home/your_username/open-webui/open-webui/backend
ExecStart=/home/your_username/open-webui/open-webui/venv/bin/gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app
Restart=on-failure

[Install]
WantedBy=multi-user.target
# 启动并启用服务
sudo systemctl daemon-reload
sudo systemctl enable open-webui-backend
sudo systemctl start open-webui-backend

访问 Open WebUI

  • 打开浏览器,访问 http://localhost:8080
  • 首次访问需要创建管理员账户

安全建议

配置防火墙

sudo ufw allow 8080/tcp

其他安全措施

  • 使用 Nginx 反向代理
  • 配置 HTTPS
  • 设置强密码
  • 定期更新

故障排除

常见问题

  • 依赖冲突:使用虚拟环境
  • 端口被占用:更改 .env 中的端口配置
  • 权限问题:检查文件权限

查看日志

# 查看后端服务日志
journalctl -u open-webui-backend

更新

cd ~/open-webui/open-webui

# 拉取最新代码
git pull

# 更新依赖
source venv/bin/activate
pip install -r backend/requirements.txt
npm install

# 重新构建
npm run build

# 重启服务
sudo systemctl restart open-webui-backend

卸载

# 停止服务
sudo systemctl stop open-webui-backend
sudo systemctl disable open-webui-backend

# 删除服务文件
sudo rm /etc/systemd/system/open-webui-backend.service

# 删除安装目录
rm -rf ~/open-webui

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2289104.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Oracle篇】使用Hint对优化器的执行计划进行干预(含单表、多表、查询块、声明四大类Hint干预)

💫《博主介绍》:✨又是一天没白过,我是奈斯,从事IT领域✨ 💫《擅长领域》:✌️擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控;并对SQLserver、NoSQL(…

论文阅读(九):通过概率图模型建立连锁不平衡模型和进行关联研究:最新进展访问之旅

1.论文链接:Modeling Linkage Disequilibrium and Performing Association Studies through Probabilistic Graphical Models: a Visiting Tour of Recent Advances 摘要: 本章对概率图模型(PGMs)的最新进展进行了深入的回顾&…

【Matlab高端绘图SCI绘图模板】第006期 对比绘柱状图 (只需替换数据)

1. 简介 柱状图作为科研论文中常用的实验结果对比图,本文采用了3组实验对比的效果展示图,代码已调试好,只需替换数据即可生成相关柱状图,为科研加分。通过获得Nature配色的柱状图,让你的论文看起来档次更高&#xff0…

YOLOv8源码修改(4)- 实现YOLOv8模型剪枝(任意YOLO模型的简单剪枝)

目录 前言 1. 需修改的源码文件 1.1添加C2f_v2模块 1.2 修改模型读取方式 1.3 增加 L1 正则约束化训练 1.4 在tensorboard上增加BN层权重和偏置参数分布的可视化 1.5 增加剪枝处理文件 2. 工程目录结构 3. 源码文件修改 3.1 添加C2f_v2模块和模型读取 3.2 添加L1正则…

后端token校验流程

获取用户信息 前端中只有 await userStore.getInfo() 表示从后端获取数据 在页面中找到info对应的url地址,在IDEA中查找 这里是getInfo函数的声明,我们要找到这个函数的使用,所以点getInfo() Override public JSONObject getInfo() {JSO…

Ansible自动化运维实战--通过role远程部署nginx并配置(8/8)

文章目录 1、准备工作2、创建角色结构3、编写任务4、准备配置文件(金甲模板)5、编写变量6、编写处理程序7、编写剧本8、执行剧本Playbook9、验证-游览器访问每台主机的nginx页面 在 Ansible 中,使用角色(Role)来远程部…

C语言自定义数据类型详解(二)——结构体类型(下)

书接上回,前面我们已经给大家介绍了如何去声明和创建一个结构体,如何初始化结构体变量等这些关于结构体的基础知识。下面我们将继续给大家介绍和结构体有关的知识: 今天的主题是:结构体大小的计算并简单了解一下位段的相关知识。…

Maven的单元测试

1. 单元测试的基本概念 单元测试(Unit Testing) 是一种软件测试方法,专注于测试程序中的最小可测试单元——通常是单个类或方法。通过单元测试,可以确保每个模块按预期工作,从而提高代码的质量和可靠性。 2.安装和配…

Jetson Xavier NX 安装 CUDA 支持的 PyTorch 指南

本指南将帮助开发者完成在 Jetson Xavier NX 上安装 CUDA 支持的 PyTorch。 安装方法 在 Jetson 上安装 Pytorch 只有两种方法。 一种是直接安装他人已经编译好的 PyTorch 轮子;一种是自己从头开始开始构建 PyTorch 轮子并且安装。 使用轮子安装 可以从我的 Gi…

GWO优化GRNN回归预测matlab

灰狼优化算法(Grey Wolf Optimizer,简称 GWO),是一种群智能优化算法,由澳大利亚格里菲斯大学的 Mirjalii 等人于 2014 年提出。该算法的设计灵感源自灰狼群体的捕食行为,核心思想在于模拟灰狼社会的结构与行…

Unity 粒子特效在UI中使用裁剪效果

1.使用Sprite Mask 首先建立一个粒子特效在UI中显示 新建一个在场景下新建一个空物体,添加Sprite Mask组件,将其的Layer设置为UI相机渲染的UI层, 并将其添加到Canvas子物体中,调整好大小,并选择合适的Sprite&#xff…

【大厂AI实践】OPPO:大规模知识图谱及其在小布助手中的应用

导读:OPPO知识图谱是OPPO数智工程系统小布助手团队主导、多团队协作建设的自研大规模通用知识图谱,目前已达到数亿实体和数十亿三元组的规模,主要落地在小布助手知识问答、电商搜索等场景。 本文主要分享OPPO知识图谱建设过程中算法相关的技…

C# 添加、替换、提取、或删除Excel中的图片

在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观。此外,对于已有图片,你有事可能需要更新图片以确保信息的准确性,或者将Excel 中的图片单独保存,用于资料归档、备…

赛博算卦之周易六十四卦JAVA实现:六幺算尽天下事,梅花化解天下苦。

佬们过年好呀~新年第一篇博客让我们来场赛博算命吧! 更多文章:个人主页 系列文章:JAVA专栏 欢迎各位大佬来访哦~互三必回!!! 文章目录 #一、文化背景概述1.文化起源2.起卦步骤 #二、卦象解读#三、just do i…

iperf 测 TCP 和 UDP 网络吞吐量

注:本文为 “iperf 测网络吞吐量” 相关文章合辑。 未整理去重。 使用 iperf3 监测网络吞吐量 Tom 王 2019-12-21 22:23:52 一 iperf3 介绍 (1.1) iperf3 是一个网络带宽测试工具,iperf3 可以擦拭 TCP 和 UDP 带宽质量。iperf3 可以测量最大 TCP 带宽…

内外网文件摆渡企业常见应用场景和对应方案

在如今的企业环境中,内外网文件摆渡的需求越来越常见,也变得越来越重要。随着信息化的不断推进,企业内部和外部之间的数据交换越来越频繁,如何安全、高效地进行文件传输成了一个关键问题。今天,咱就来聊聊内外网文件摆…

论文阅读(十五):DNA甲基化水平分析的潜变量模型

1.论文链接:Latent Variable Models for Analyzing DNA Methylation 摘要: 脱氧核糖核酸(DNA)甲基化与细胞分化密切相关。例如,已经观察到肿瘤细胞中的DNA甲基化编码关于肿瘤的表型信息。因此,通过研究DNA…

Android View 的事件分发机制解析

前言:当一个事件发生时(例如触摸屏幕),事件会从根View(通常是Activity的布局中的最顶层View)开始,通过一个特定的路径传递到具体的View,这个过程涉及到三个关键的阶段:事…

内容检索(2025.01.30)

随着创作数量的增加,博客文章所涉及的内容越来越庞杂,为了更为方便地阅读,后续更新发布的文章将陆续在此汇总并附上原文链接,感兴趣的小伙伴们可持续关注文章发布动态! 博客域名:http://my-signal.blog.cs…

【25美赛A题-F题全题目解析】2025年美国大学生数学建模竞赛(MCM/ICM)解题思路|完整代码论文集合

我是Tina表姐,毕业于中国人民大学,对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在,我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合…