Ubuntu 手动安装 Open WebUI 完整指南

Ubuntu 手动安装 Open WebUI 完整指南

前提条件

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

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

安装步骤

1. 更新系统包

bash 复制代码
sudo apt update
sudo apt upgrade -y

2. 安装必要的依赖

bash 复制代码
# 安装 Python 和 Node.js
sudo apt install -y python3 python3-pip nodejs npm git curl

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

3. 安装 Ollama(AI 后端)

bash 复制代码
# 下载并安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh

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

4. 克隆 Open WebUI 仓库

bash 复制代码
# 创建安装目录
mkdir -p ~/open-webui
cd ~/open-webui

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

5. 设置 Python 虚拟环境

bash 复制代码
# 创建虚拟环境
python3 -m venv venv

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

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

6. 安装前端依赖

bash 复制代码
# 安装 Node.js 依赖
npm install

# 构建前端
npm run build

7. 配置环境变量

bash 复制代码
# 创建 .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

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

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

# 使用 Nginx 托管静态文件

9. 创建系统服务

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

添加以下内容:

ini 复制代码
[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
bash 复制代码
# 启动并启用服务
sudo systemctl daemon-reload
sudo systemctl enable open-webui-backend
sudo systemctl start open-webui-backend

访问 Open WebUI

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

安全建议

  1. 配置防火墙
bash 复制代码
sudo ufw allow 8080/tcp
  1. 使用 Nginx 反向代理
  2. 配置 HTTPS
  3. 设置强密码
  4. 定期更新

故障排除

常见问题

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

查看日志

bash 复制代码
# 查看后端服务日志
journalctl -u open-webui-backend

更新

bash 复制代码
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

卸载

bash 复制代码
# 停止服务
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

许可证

Open WebUI 遵循开源许可证。请查看官方仓库了解详细信息。

贡献和支持

注意事项

  • 建议在生产环境中进行额外的安全配置
  • 定期备份重要数据
  • 关注官方更新和安全公告
相关推荐
weixin_307779132 分钟前
Jenkins Pipeline: Multibranch 插件详解:现代CI/CD的多分支管理利器
运维·开发语言·自动化·jenkins·etl
福尔摩斯张2 分钟前
TCP协议深度解析:从报文格式到连接管理(超详细)
linux·c语言·网络·c++·笔记·网络协议·tcp/ip
刀刀是个萌妹子3 分钟前
使用CloneZilla还原操作系统
linux·运维·服务器
列逍5 分钟前
Linux文件(二)
linux·磁盘·文件系统·挂载·软硬链接·缓冲区
一个平凡而乐于分享的小比特13 分钟前
U-Boot 和 Linux 内核的关系及设备树详解
linux·设备树·uboot
代码不行的搬运工13 分钟前
交换机和网卡的 PFC 机制工作原理与实例解析
运维·服务器·网络·算力网络
二狗哈17 分钟前
Cesium快速入门22:fabric自定义着色器
运维·开发语言·前端·webgl·fabric·cesium·着色器
Kristen_YXQDN20 分钟前
PyCharm 中 pytest 运行 python 测试文件报错:D:\Python_file\.venv\Scripts\python.exe: No module named pytest
运维·开发语言·python·pycharm·pytest
eddy-原29 分钟前
全链路 DevOps 实战:基于 Jenkins、GitLab、Prometheus 与 SonarQube 的持续集成、部署、监控与优化
运维·jenkins
Sleepy MargulisItG32 分钟前
【Linux网络编程】UDP Socket
linux·网络·udp