
在飞牛上部署本地大模型
注意:提前为目标设备提供科学上网环境(基本上配置出现的问题都是网络问题);下面所有操作需要提权 sudo -i
Ollama 安装与配置
方式一:Linux 本地安装
官方文档:https://github.com/ollama/ollama/blob/main/docs/linux.md
使用官方安装脚本
curl -fsSL https://ollama.com/install.sh | sh
(可选)允许远程访问 Ollama
打开配置文件
nano /etc/systemd/system/ollama.service
[Service]
项中添加Environment="OLLAMA_HOST=0.0.0.0:11434"
修改完成后重启服务
systemctl daemon-reload
systemctl restart ollama
方式二(推荐):Docker 安装
官方文档:https://github.com/ollama/ollama/blob/main/docs/docker.md
按照官方文档的步骤进行安装即可,如果 Docker 容器不可启动,考虑重新安装 NVIDIA 驱动和 CUDA Driver。
其他问题
官方 Q&A:https://github.com/ollama/ollama/blob/main/docs/faq.md
沉浸式翻译插件调用出现 403 错误
在 docker-compose.yml 文件或 ollama 所在的 linux 环境中添加一个环境变量 OLLAMA_ORIGINS
值为 *
environment:
OLLAMA_ORIGINS: "*"
Dify 安装与配置
官方安装文档:https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/docker-compose
简单安装
进入 1Panel 应用的目录(便于统一管理 Docker 项目)
cd /vol1/@appdata/1Panel/1panel/apps
拉取 Dify 源码,注意版本号
git clone https://github.com/langgenius/dify.git -b 1.4.3
进入 Dify 源代码的 Docker 目录
cd dify/docker
复制环境配置文件
cp .env.example .env
更改外部访问端口
打开
.env
文件,更改其中的EXPOSE_NGINX_PORT
和EXPOSE_NGINX_SSL_PORT
两个参数的端口,否则无法会因为端口被其他程序占用而无法启动。
启动 Docker 容器
docker compose up -d
(可选)容器复用
Dify 默认的项目中包含如下容器:3 个业务服务 api / worker / web,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox,其中 db 为 PostgreSQL,nginx 作为反代服务器,以及 redis 作为缓存,这三个服务都可以复用 1Panel 中存在的容器以降低性能消耗。
配置参考:https://www.bilibili.com/video/BV1CTPneYEqj
Dify 的项目组成:
创建一个 PostgreSQL 数据库
在 1Panel 面板的 PostgreSQL 中创建一个数据库,名称为 dify、用户名为 postgres、密码默认随机,在同一界面中记下连接信息(数据库容器名和端口)
修改 .env
## PostgreSQL 数据库的相关信息
DB_USERNAME=postgres
DB_PASSWORD=<数据库密码>
DB_HOST=<容器名>
DB_PORT=5432
DB_DATABASE=dify
## Redis 相关配置
REDIS_HOST=<容器名>
REDIS_PORT=6379
REDIS_USERNAME=<可不填,可通过 redis 数据库容器的终端使用 acl list 命令查询,可填 default>
REDIS_PASSWORD=<数据库密码>
REDIS_USE_SSL=false
REDIS_DB=<数据库序号,默认0,如有其他应用使用,则应设置其他值>
## 更改 Celery 组件配置
CELERY_BROKER_URL=redis://:<数据库密码>@<容器名>:6379/<数据库序号,数值应与上方 REDIS_DB 的不相同>
修改 docker-compose-template.yaml
注释组件
db
、redis
、nginx
去除其他组件的相关依赖
# depends_on:
# db:
# condition: service_healthy
# redis:
# condition: service_started
修改网络配置
## 容器内部网络声明(所有启用的容器都应加上此声明)
networks:
- 1panel-network
## 开通外部端口(和其他容器有冲突时注意修改)
# api 组件(这里因为有其他容器占用端口所以另外设置)
ports:
- "4001:5001"
# web组件
ports:
- "4000:3000"
## 加入 1Panel 网络
networks:
1panel-network:
external: true
在 dify 项目下的 docker 目录中,运行 generate_docker_compose 脚本重新生成 docker-compose.yaml
反代设置
启动项目,观察日志输出,并访问反代域名
docker compose up -d
(可选)其他优化
修改 .env 文件(更多环境变量配置需参考官方文档:https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/environments)
## 知识库相关配置优化
# 最大文件大小(单位 M,默认 15)
UPLOAD_FILE_SIZE_LIMIT=100
# 最大单次上传数量(默认 5)
UPLOAD_FILE_BATCH_LIMIT=50
## 多模态相关配置优化
# Upload image file size limit, default 10M.
UPLOAD_IMAGE_FILE_SIZE_LIMIT=10
# Upload video file size limit, default 100M.
UPLOAD_VIDEO_FILE_SIZE_LIMIT=100
# Upload audio file size limit, default 50M.
UPLOAD_AUDIO_FILE_SIZE_LIMIT=50
其他问题
插件安装缓慢及 Ollama 无法添加模型的问题
表现:plugin_daemon 容器日志显示无法安装插件或者初始化超时。
原因:网络故障
解决:
修改 docker-compose-template.yaml 中 plugin_daemon 部分的代码,运行 generate_docker_compose 脚本重新生成 docker-compose.yaml 文件,重启 Dify 项目。
PYTHON_ENV_INIT_TIMEOUT: ${PLUGIN_PYTHON_ENV_INIT_TIMEOUT:-360}
PIP_MIRROR_URL: ${PIP_MIRROR_URL:-https://pypi.tuna.tsinghua.edu.cn/simple}
ComfyUI 安装与配置
ComfyUI 官方文档:https://docs.comfy.org/zh-CN/get_started/introduction
方式一:使用其他项目安装
(推荐)Docker Compose 项目地址:https://github.com/YanWenKun/ComfyUI-Docker
保存以下代码作为 docker-compose.yml
文件内容,保存到工作目录,使用 docker compose up -d
命令即可,访问端口为 8188
services:
comfyui:
init: true
container_name: comfyui
build:
context: .
dockerfile: Dockerfile
image: "yanwk/comfyui-boot:cu124-slim"
network_mode: host
volumes:
- "./storage:/root"
environment:
- CLI_ARGS=
security_opt:
- "label=type:nvidia_container_t"
restart: unless-stopped
deploy:
resources:
reservations:
devices:
- driver: nvidia
device_ids: ['0']
capabilities: [gpu]
方式二:使用 Docker 部署 Ubuntu 再安装ComfyUI
此方法需要一定的动手能力。
部署 Ubuntu 容器
将以下代码保存为 docker-compose.yml
文件并移动到飞牛的某个文件夹下,推荐保存在 /@appdata/1Panel/1panel/apps
下的某个目录中方便管理。之后部署容器 docker compose up -d
,进入容器终端 docker exec -it ubuntu_comfyui /bin/bash
,运行 nvidia-smi
命令观察容器是否能够读取显卡信息。
networks:
1panel-network:
external: true
services:
comfyui:
container_name: ubuntu_comfyui
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
count: 1
driver: nvidia
limits:
memory: 16G
image: ubuntu:24.04
networks:
- 1panel-network
ports:
- 8188:8188
restart: unless-stopped
volumes:
- ./ComfyUI:/opt/ComfyUI
tty: true
部署安装环境
注意:配置时需注意当前输入的命令是运行在容器中的还是运行在宿主机上的,避免混淆!
一、换源
安装文件编辑软件 nano (比 vi 好用,因为可以复制粘贴)与验证 SSL 证书合法性的软件包 ca-certificates(必须安装,不然换源后无法使用)
apt update # 更新软件列表
apt install nano ca-certificates # 安装软件
这里使用 清华镜像站,里面有详细说明。Ubuntu 24.04 以上版本的使用 DEB822 格式而不是传统格式
打开软件源列表,注释原来的两段,并将清华镜像站的两段复制进去,配置完成后更新软件列表
nano /etc/apt/sources.list.d/ubuntu.sources
apt update
二、运行环境配置
apt-get install pip git python3-venv
# 创建并进入 Python 虚拟环境
python3 -m venv comfyui
source ./comfyui/bin/activate
# 使用清华源加速 pip
pip3 config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
# 安装 PyTorch
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
# 将 ComfyUI 安装在容器挂载的持久存储目录下(注意版本号)
cd /opt/ComfyUI
git clone https://github.com/comfyanonymous/ComfyUI.git -b v0.3.41
cd ComfyUI
pip3 install -r requirements.txt
# 安装 ComfyUI-Manager 插件
cd custom_nodes/
git clone https://github.com/ltdrdata/ComfyUI-Manager comfyui-manager
三、运行 ComfyUI
cd /opt/ComfyUI/ComfyUI
python3 main.py --listen 0.0.0.0
首次启动可能需要较长时间,观察终端输出 Device: cuda:0
如显示独立显卡,则可使用独显加速。
四、自启动
echo 'source /comfyui/bin/activate && python3 /opt/ComfyUI/ComfyUI/main.py --listen 0.0.0.0' >> ~/.bashrc
其他问题
插件安装错误
libGL.so.1
缺失问题
影响插件:
ComfyUI_LayerStyle
、ComfyUI-Inspire-Pack
、ComfyUI_LayerStyle_Advance
错误关键:
ImportError: libGL.so.1: cannot open shared object file
根本原因:
OpenGL图形库(
libGL.so.1
)未安装或路径未配置。插件依赖的
opencv-python
(cv2
)需调用OpenGL进行图形渲染,系统缺少底层支持。
解决方案:
# Ubuntu 24.04 以下版本
apt install libgl1-mesa-glx python3-opencv
# Ubuntu 24.04 及以上版本
apt install libglx-mesa0 libgl1 python3-opencv
accelerate
库版本冲突
影响插件:
ComfyUI-BrushNet
错误关键:
ImportError: cannot import name 'clear_device_cache'
根本原因:
问题参考:https://github.com/nullquant/ComfyUI-BrushNet/issues/183
peft 0.15.0 及以上版本有问题,需要降级
解决方案:
# 降级 peft
pip3 install peft==0.14.0