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支持的效率,也为未来的扩展性奠定了基础。


相关推荐
@心都19 分钟前
机器学习数学基础:29.t检验
人工智能·机器学习
9命怪猫22 分钟前
DeepSeek底层揭秘——微调
人工智能·深度学习·神经网络·ai·大模型
kcarly2 小时前
KTransformers如何通过内核级优化、多GPU并行策略和稀疏注意力等技术显著加速大语言模型的推理速度?
人工智能·语言模型·自然语言处理
MinIO官方账号3 小时前
使用 AIStor 和 OpenSearch 增强搜索功能
人工智能
江江江江江江江江江4 小时前
深度神经网络终极指南:从数学本质到工业级实现(附Keras版本代码)
人工智能·keras·dnn
Fansv5874 小时前
深度学习-2.机械学习基础
人工智能·经验分享·python·深度学习·算法·机器学习
小怪兽会微笑4 小时前
PyTorch Tensor 形状变化操作详解
人工智能·pytorch·python
Erekys5 小时前
视觉分析之边缘检测算法
人工智能·计算机视觉·音视频
livefan5 小时前
我国首条大型无人机城际低空物流航线成功首航
人工智能·无人机
唔皇万睡万万睡5 小时前
数字水印嵌入及提取系统——基于小波变换GUI
人工智能·计算机视觉