Ubuntu22.04 Deepseek-R1本地容器化部署/内网穿透/OPENWEBUI,打造个人AI助手!


1. 前言

本地部署DeepSeek并实现内网穿透,为家庭成员提供强大的AI支持。通过使用Ollama、Docker、OpenWebUI和Nginx,内网穿透,我们可以轻松实现快速响应和实时搜索功能。


2.软硬件环境

  1. 系统:ubuntu22.04, cuda12
  2. GPU: RTX2080Ti

3. Ollama的作用

什么是Ollama?

Ollama 是一个用于 AI 模型推理的后端框架,专为高性能和实时性设计。它允许我们将AI模型部署到各种语言(如JavaScript、Python)中,从而实现快速响应和实时搜索功能。
### 如何利用Ollama进行本地部署?

  1. ubuntu22.04 安装ollama
bash 复制代码
curl -fsSL https://ollama.com/install.sh | sh

安装完成后,在命令行验证 2. 下载deepseek模型

bash 复制代码
ollama run deepseek-r1:7b

---

3.运行deepseek模型
4.开启ollama服务

设置Ollama服务配置

设置OLLAMA_HOST=0.0.0.0环境变量,从而允许远程访问。

命令语法:sudo vim /etc/systemd/system/ollama.service

bash 复制代码
sudo systemctl daemon-reload && sudo systemctl restart ollama

4. Docker的部署优势

什么是Docker?

Docker 是一个容器化平台,允许我们将应用程序和其依赖项打包成易于迁移和部署的独立实体。对于DeepSeek本地部署来说,Docker提供了高度一致性和稳定性。

使用docker部署openwebui和nginx服务

  1. 镜像拉取与运行
bash 复制代码
sudo docker pull nginx
sudo docker network create ds-net(要将openwebui,nginx服务放在一个docker网络中)
sudo docker run --networks ds-net -d -p xxxx:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.nju.edu.cn/open-webui/open-webui:main
sudo docker run -d --name nginx-ds --network ds-net -v /your/path/nginx.conf:/etc/nginx/nginx.conf -v /your/ssl_ca/path:/certs -p 5002:443 nginx
  1. 服务运行
    • 这里需要一些后端的基础知识,docker容器端口和宿主机端口,根据个人需求来设定。

5. OpenWebUI的用户界面

什么是OpenWebUI?

OpenWebUI 是一个开源的AI交互界面,支持自然语言交互(NLU)和知识图谱检索。它为用户提供直观的搜索和问题回答功能。

如何利用OpenWebUI进行本地部署?

  1. 通过openwebui使用deepseek
    第一次登录openwebui需要注册,且第一次注册账号默认为管理员账号。
    在这里就部署好本地deepseek服务啦,但是这只能在本地使用,或提供给局域网下的用户使用。如果要想随时随地使用怎么办呢?那就还需要设置内网穿透和反向代理了,这里需要一些更专业的知识了。

6. 内网穿透

内网穿透需要你有公网ip,公网ip 请向运营商申请。有公网ip后,注册一个域名,将域名解析到你的公网ip。公网ip可能是动态变化的,所以需要使用一个脚本将你的公网ip动态解析到域名上。可以参考aliyun,dns解析。此处涉及知识较专业,如有不明请找专业人员协助。


7. Nginx的负载均衡功能

什么是Nginx?

Nginx 是一个高可用性和负载均衡的Web服务器。对于DeepSeek本地部署来说,Nginx确保了服务的稳定性和扩展性。

如何利用Nginx进行部署?

  1. 配置Nginx
    • 配置Nginx来代理openwebui,对外网提供访问能力。
    • 我这里有两个docker容器服务,一个是openwebui,另一个是searxng搜索引擎服务。
bash 复制代码
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    # include /etc/nginx/conf.d/*.conf
    server {
        listen 443 ssl;
        server_name xxx.xxxxx.cn;(你的域名,需要申请域名并备案)
        ssl_certificate /ssl_ca/path.pem;(要将域名的nginx证书上传到nginx容器的/etc/certs目录下)
        ssl_certificate_key /ssl_ca/path.key;
        ssl_protocols TLSv1.2 TLSv1.3;
        location / {  
            proxy_pass http://open-webui:8080/;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme; 
        }
    }

    server {
        listen 8001 ssl;
        server_name xxx.xxxxx.cn;(你的域名,需要申请域名并备案)
        ssl_certificate /ssl_ca/path.pem;(要将域名的nginx证书上传到nginx容器的/etc/certs目录下)
        ssl_certificate_key /ssl_ca/path.key;
        ssl_protocols TLSv1.2 TLSv1.3;
        location / {  
            proxy_pass http://searxng:8080/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
}
  1. 外网访问
  • 这样外网可以通过https://xxx.xx.cn:your-port来访问你的deepseek服务啦。

8. 总结

通过使用Ollama实现快速响应,Docker提供容器化部署的优势,OpenWebUI简化了用户交互界面,以及Nginx实现高可用性和负载均衡,我们可以轻松完成DeepSeek本地部署。这一技术不仅提升了家庭AI支持的效率,也为未来的扩展性奠定了基础。


相关推荐
神马行空18 分钟前
一文解读DeepSeek大模型在政府工作中具体的场景应用
人工智能·大模型·数字化转型·deepseek·政务应用
合合技术团队21 分钟前
实测对比|法国 AI 独角兽公司发布的“最强 OCR”,实测效果如何?
大数据·人工智能·图像识别
蒹葭苍苍87328 分钟前
LoRA、QLoRA微调与Lama Factory
人工智能·笔记
蹦蹦跳跳真可爱58928 分钟前
Python----机器学习(基于PyTorch的线性回归)
人工智能·pytorch·python·机器学习·线性回归
mosquito_lover11 小时前
矿山边坡监测预警系统设计
人工智能·python·深度学习·神经网络·视觉检测
契合qht53_shine1 小时前
OpenCV 从入门到精通(day_03)
人工智能·opencv·计算机视觉
Naomi5212 小时前
Trustworthy Machine Learning
人工智能·机器学习
刘 怼怼2 小时前
使用 Vue 重构 RAGFlow 实现聊天功能
前端·vue.js·人工智能·重构
程序员安仔2 小时前
每天学新 AI 工具好累?我终于发现了“一键全能且免费不限量”的国产终极解决方案
人工智能
闭月之泪舞2 小时前
OpenCv(五)——边缘检测
人工智能·计算机视觉