Ollama+OpenWebUI+docker完整版部署,附带软件下载链接,配置+中文汉化+docker源,适合内网部署,可以局域网使用

news2025/5/15 16:18:12

前言:

因为想到有些环境可能没法使用外网的大模型,所以可能需要内网部署,看了一下ollama适合小型的部署,所以就尝试了一下,觉得docker稍微简单一点,就做这个教程的,本文中重要的内容都会给下载链接,方便下载。

下面这两个链接全部是我自己的文章,不是盗窃的!别给我审核不通过了!!!

ollama下载链接在这里,25年5月1号左右的版本

v0.6.7/OllamaSetup.exe下载链接_ollama 0.6.7 下载-CSDN博客

然后ollama的使用下载教程,我以前写过了,可以参照

超简单! 部署本地deepseek r1详细指南 附带安装包_deepseek r1一键包-CSDN博客

ollama到此为止。

OpenWebUI

两种方式,我选择docker形式

按道理先要去docker官网下载软件,我这里给一下官网的地址

Docker官⽹:https://www.docker.com/

中文网: Docker中文网 官网

还有我的百度网盘地址:

通过网盘分享的文件:Docker Desktop Installer.exe
链接: https://pan.baidu.com/s/128BPUTU6GHNOEidXYMGkEg?pwd=zbcf 提取码: zbcf

先下载下来

docker的安装

双击安装

这边要添加路径

重启电脑

接受协议

推荐设置

跳过登陆(最下面continnue without signing in)

skip跳过

顺利进入

docker的汉化

方便起见,直接我给出汉化包

通过网盘分享的文件:app.asar
链接: https://pan.baidu.com/s/1VeXuVCRo4us9aUqKPtT38g?pwd=5q7j 提取码: 5q7j

app.asar 替换原来的就好了,我估计是语言文件

重新打开就汉化成功

docker替换源

打开设置,找到docker引擎

把这里所有复制进去,换成国内源

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://cr.console.aliyun.com",
    "https://mirror.ccs.tencentyun.com"
  ]
}

安装 open-webui

一句命令,复制,然后cmd打开,运行就好了

docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

会下载一段时间

C:\Users\18178>docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
Unable to find image 'ghcr.io/open-webui/open-webui:main' locally
main: Pulling from open-webui/open-webui
254e724d7786: Pull complete
eb0baa05daea: Pull complete
457229a5b852: Pull complete
b658f584ba6e: Pull complete
ef9a42a8925e: Pull complete
4f4fb700ef54: Pull complete
a328afb1a1bf: Pull complete
76dea603ebad: Pull complete
eb609898c965: Downloading [=========>                                         ]  62.66MB/341.1MB
274002cd569b: Download complete
725a63749080: Downloading [==>                                                ]  54.75MB/1.312GB
410e23914911: Downloading [=======================>                           ]  42.91MB/90.9MB
e4b0cd930f1a: Waiting
56dc55632e0c: Waiting
d297a6f5c191: Waiting

下载好了就得到了docker

点击3000:8000就可以访问,或http://127.0.0.1:3000/ 看到界面

随便注册,随便写邮箱,进去就ok

配置ollama+OpenWebUI

添加ollama模型,这里只要添加ollama的地址就好了,不用一个一个模型添加

打开设置    外部连接    添加链接  然后添加ollama的链接   http://localhost:11434 

这里不用密码,但是不写不行,所以随便写一个123都可以

添加之后,就可以看到自己ollama下面的所有模型

可以对话

实现局域网可以连接上webui

由于我不是很懂网络层,所以很多都是教程博客摸索出来的,然后写这一部分的时候我也研究和学习一下

查看ip

首先看一下我们自己的ip win+r cmd 输入ipconfig

以我的电脑为例,这里显示出来两个地址

我电脑主机的ip: 192.168.149.80

我docker的ip: 172.29.128.1

其实我一开始搞不清楚ip,就是因为我不知道要访问主机的ip还是docker的ip

然后很重要的东西是环境变量

 添加这两条环境变量:

OLLAMA_HOST=0.0.0.0:11434

OLLAMA_ORIGINS=*

1. OLLAMA_HOST=0.0.0.0:11434

  • 作用:指定 Ollama 服务监听的 IP地址和端口
    • 0.0.0.0 表示监听所有网络接口(包括本地和外部网络),允许其他设备或容器访问服务。
    • 11434 是 Ollama 的默认端口,可以自定义(如 8080)。
  • 典型场景
    • 需要从其他机器(如局域网内的另一台电脑)访问 Ollama。
    • 在 Docker 容器中运行 Ollama 时,需通过此配置暴露端口。

2. OLLAMA_ORIGINS=*

  • 作用:设置允许的 跨域请求来源(CORS)
    • * 表示允许任何域(Origin)的请求(如浏览器前端应用),但存在安全风险,仅建议在受信任的本地网络中使用。
    • 若需限制域名,可设为 http://example.com,https://example.com
  • 典型场景
    • 通过浏览器前端(如自建的 Web 应用)调用 Ollama 的 API。

前面的事情,按照我的理解就是:让局域网设备可以访问ollama的默认端口11434,允许外网调用ollama,大概就是这样,由于我对网络了解很浅,所以只能这样解释。

ping测试网络

局域网另一个设备,比如说电脑,或者用手机开热点,电脑连接热点,然后手机就是局域网的另一个设备,这里我身边只有手机,所以我拿手机打比方。

手机随便浏览器打开,访问ip(此处是主机的ip,不是docker的ip,原理讲实话,我不懂,希望有大佬可以教教我网络层)这里的ip是我的电脑的ip,本机的ip。

http://192.168.149.80:3000/

测试一下是否可以访问,然后找原来注册过的登录

顺利调用和使用模型

也可以提出自己的问题

整个内网部署到此结束。

结语:

当时也是考虑到,比如体制内单位,小型公司,希望保护隐私,同时避免数据泄露风险,可以搭建这样的解决方案,然后内网使用的话也比较高效率,所以自己做了这个实践,如果有需要可以拿去复现。

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

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

相关文章

ultralytics中tasks.py---parse_model函数解析

一、根据scale获取对应的深度、宽度和最大通道数 具体例如yaml文件内容如下: depth=0.33,那么重复的模块例如C2f原本重复次数是3,6,6,3,那么T对应的模型重复次数就是三分之一即1,1,2,1次。这个在后面定义的: width=0.25,max_channels=1024 原本c2=64,但经过make_div…

2024年业绩增速大幅回退,泸州老窖未能“重回前三”

撰稿|行星 来源|贝多财经 回望过去的2024年,受制于购买力与消费需求的持续疲软,白酒行业的发展面临诸多复杂性与不确定性,“量价齐跌”犹如笼罩在各大企业头顶的一片阴云。 正如巴菲特所言:“当潮水退去时,才知道谁在…

院校机试刷题第二天:1479 01字符串、1701非素数个数

一、1479 01字符串 1.题目描述 2.解题思路 方法一:暴力法 模拟过程,列出几个数据来a[1]1, a[2]2, a[3]3, a[4]5以此类推,这就是斐波那契数列,每一项都等于前两项之和,确定好a[1], a[2]即可。 方法二:动…

制作一款打飞机游戏48:敌人转向

射击功能 有一个重要的功能我们还没实现,那就是射击。目前,敌人还不能射击,这显然是不行的。因此,我们决定添加一个射击命令,暂时用一个显示圆圈的方式来表示射击动作。 编程语言的调试 有趣的是,我们创…

RK3588 串行解串板,支持8路GMSL相机

RK3588 支持的 GMSL 相机接入数量取决于所使用的解串板型号及配置方案: ‌xcDeserializer3.0 解串板‌ 可接入最多 ‌8 路 2M GMSL2 相机‌1。 ‌xcDeserializer4.0 解串板‌ 支持 ‌4 路 2M GMSL2 相机‌1。 ‌边缘计算盒解决方案‌ 部分商用方案可实现 ‌4 或 8…

OracleLinux7.9-ssh问题

有套rac环境,db1主机无法ssh db1和db1-priv,可以ssh登录 db2和db2-priv [rootdb1 ~]# ssh db1 ^C [rootdb1 ~]# ssh db2 Last login: Wed May 14 18:25:19 2025 from db2 [rootdb2 ~]# ssh db2 Last login: Wed May 14 18:25:35 2025 from db1 [rootdb2…

手机换IP真的有用吗?可以干什么?

在当今数字化时代,网络安全和个人隐私保护日益受到重视。手机作为我们日常生活中不可或缺的工具,其网络活动痕迹往往通过IP地址被记录和追踪。那么,手机换IP真的有用吗?它能为我们带来哪些实际好处?本文将为你一一解答…

如何实现一个运动会计分系统?(C语言版)

一、需求分析 设计一个运动会计分系统,计分信息包括参加学校,参与项目,性别,名次个数,各个学校获得名次信息。该系统具有以下功能 数据录入: 链表或结构体数组组织数据数据报表: 依照规定的报表格式对数据打印报表数据排序: 按照要求对数据进行统计,含简单统计及综合统计…

嵌入式学习笔记 - STM32 ADC,多重转换,内部参考电压,过采样,逐次逼近原理,采样时间

一 多个ADC器件,多重转换速率 每个型号MCU通常由多个ADC器件,比如STM32F4有三个ADC器件,每个ADC器件有一个最大转换速率,一般为2.4Mhz,即一个ADC器件每秒最多转换2.4M次,两次转换之间需要有时间间隔&#…

团结引擎 1.5.0 发布,抖音小游戏平台即将开放、Shader Graph功能新增…引擎能力再提升!

「团结引擎 1.5.0」来啦!本次技术更新的内容,涵盖了小游戏、团结引擎车机版、OpenHarmony、Shader Graph、Muse Chat、Hub&License、代码升级、Digital Asset Manager for Tuanjie、团结官方开源车模 Sample 几大方向。 小游戏 在 Tuanjie 1.5.0 版…

如何配置activemq,支持使用wss协议连接。

1、到阿里云申请一个证书&#xff0c;通过后下载jks证书。 2、配置activemq&#xff1a; 打开activemq安装目录中“conf/activemq.xml”&#xff0c;增加以下记录&#xff1a; <transportConnectors> <transportConnector name"wss" uri"…

初学c语言14(指针6)

一.sizeof和strlen的对比 1.sizeof 操作符&#xff0c;计算变量所占空间大小 2.strlen 库函数&#xff0c;函数原型为&#xff1a; 求的是字符串的长度&#xff0c;统计的是“\0”之前的字符个数 二.指针和笔试题解析 补充&#xff1a;数组名的意义 1.sizeof(数组名) 这…

数字化转型-4A架构之技术架构

4A架构系列文章 数字化转型-4A架构&#xff08;业务架构、应用架构、数据架构、技术架构&#xff09; 数字化转型-4A架构之业务架构 数字化转型-4A架构之应用架构 数字化转型-4A架构之数据架构 数字化转型-4A架构之技术架构 一、 技术架构 Technology Architecture 1. 技…

kaggle薅羊毛

参考&#xff1a;https://pytorch-tutorial.readthedocs.io/en/latest/tutorial/chapter05_application/5_1_kaggle/#512-kaggle https://github.com/girls-in-ai/Girls-In-AI/blob/master/machine_learning_diary/data_analysis/kaggle_intro.md 1&#xff0c;code training…

TCP 三次握手建立连接详解

文章目录 一、三次握手流程1、第一次握手2、第二次握手3、第三次握手 二、引申问题1、报文丢失&#xff0c;会发生什么&#xff1f;1.1、第一次握手丢失1.2、第二次握手丢失1.3、第三次握手丢失 2、为什么 ISN(Initial Sequence Number&#xff0c;初始序列号) 不固定3、为什么…

高海拔和远距离的人员识别:面部、体型和步态的融合

大家读完就觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 我们解决了在无约束环境中进行全身人体识别的问题。这个问题出现在诸如IARPA高空和远距离生物识别与身份识别&#xff08;BRIAR&#xff09;计划等监视场景中&#xff0c;其中生物识别数据是在长…

自然语言处理入门级项目——文本分类

文章目录 前言1.数据预处理1.1数据集介绍1.2数据集抽取1.3划分数据集1.4数据清洗1.5数据保存 2.样本的向量化表征2.1词汇表2.2向量化2.3自定义数据集2.4备注 结语 前言 本篇博客主要介绍自然语言处理领域中一个项目案例——文本分类&#xff0c;具体而言就是判断评价属于积极还…

一发入魂:极简解决 SwiftUI 复杂视图未能正确刷新的问题(上)

概述 各位似秃非秃小码农们都知道&#xff0c;在 SwiftUI 中视图是状态的函数&#xff0c;这意味着状态的改变会导致界面被刷新。 但是&#xff0c;对于有些复杂布局的 SwiftUI 视图来说&#xff0c;它们的界面并不能直接映射到对应的状态上去。这就会造成一个问题&#xff1…

软件设计师-下午题-试题4(15分)

目录 1 回溯法 1.1 N皇后问题 1.1.1 非递归求解N皇后问题 1.1.2 递归求解N皇后问题 1.2 真题 2 分治法 2.1 真题 3 动态规划法 3.1 0-1背包问题 3.2 真题 1 回溯法 1.1 N皇后问题 上图Q4与Q2在同一列且与Q1在同一斜线&#xff0c;先回溯到上一个皇后改变Q3皇后的位置…

leetcode二叉树相关题目复习(C语言版)

目录 1.单值二叉树 2.相同的树 3.对称二叉树 4.二叉树的前序遍历 5.另一颗树的子树 1.单值二叉树 思路1&#xff1a; 判断根节点、左节点与右节点的值是否相等&#xff0c;因为正向判断&#xff08;即判断三值相等返回true&#xff09;比较麻烦&#xff08;不能根节点满足…