11# MiniCPM-o 4.5 离线部署实战指南(WSL2 构建镜像 → 上传内网 H100 服务器 → 本地 + 手机访问)
22
3- > 目标:你在本地 Win10 + WSL2 构建 Docker 镜像,把镜像和模型传到无公网的公司 H100 服务器,启动服务后在本地浏览器和手机上测试全双工视频通话 。
3+ > 目标:你在本地 Windows系统PC + WSL2 构建 Docker 镜像,把镜像和模型传到无公网的公司 H100 服务器,启动服务后在本地浏览器和Android系统手机上测试全双工视频通话 。
44
55** 你的环境速查:**
66
1414** 每次执行前先设置 SSH 变量(只改这里即可):**
1515
1616``` bash
17- export SSH_HOST=127.0.0.1
18- export SSH_PORT=54062
19- export SSH_USER=your_user
17+ export SSH_HOST=< YOUR_HOST >
18+ export SSH_PORT=< YOUR_PORT >
19+ export SSH_USER=< YOUR_USER >
2020```
2121
2222PowerShell 等价写法(Windows 终端直接用):
2323
2424``` powershell
25- $env:SSH_HOST = "127.0.0.1 "
26- $env:SSH_PORT = "54062 "
27- $env:SSH_USER = "your_user "
25+ $env:SSH_HOST = "<YOUR_HOST> "
26+ $env:SSH_PORT = "<YOUR_PORT> "
27+ $env:SSH_USER = "<YOUR_USER> "
2828```
2929
3030## PowerShell 日常三命令速查(推荐)
3131
3232``` powershell
3333# 1) 端口变化时先更新 SSH 参数
34- Set-MiniCPMSSH -Port "54062 " -User "your_user "
34+ Set-MiniCPMSSH -Port "<YOUR_PORT> " -User "<YOUR_USER> "
3535
3636# 2) 启动手机模式(开隧道 + 打印可访问 URL)
3737Start-MiniCPMMobile
@@ -43,15 +43,15 @@ Stop-MiniCPMMobile
4343端口变化后的快速恢复:
4444
4545``` powershell
46- Set-MiniCPMSSH -Port "新端口 " -User "your_user "
46+ Set-MiniCPMSSH -Port "<YOUR_PORT> " -User "<YOUR_USER> "
4747Restart-MiniCPMMobile
4848```
4949
5050PowerShell 中引用变量时,` ssh/scp ` 建议写成:
5151
5252``` powershell
5353ssh -p $env:SSH_PORT "$env:SSH_USER@$env:SSH_HOST"
54- scp -P $env:SSH_PORT .\file.tar.gz "$env:SSH_USER@$env:SSH_HOST:/data/minicpmo /deploy_pkg/"
54+ scp -P $env:SSH_PORT .\file.tar.gz "$env:SSH_USER@$env:SSH_HOST:<YOUR_PATH> /deploy_pkg/"
5555```
5656
5757可选:定义一个一键函数(以后只改端口即可)
@@ -61,8 +61,8 @@ function Set-MiniCPMSSH {
6161 param(
6262 [Parameter(Mandatory = $true)]
6363 [string]$Port,
64- [string]$Host = "127.0.0.1 ",
65- [string]$User = "your_user "
64+ [string]$Host = "<YOUR_HOST> ",
65+ [string]$User = "<YOUR_USER> "
6666 )
6767
6868 $env:SSH_HOST = $Host
@@ -76,7 +76,7 @@ function Set-MiniCPMSSH {
7676使用示例:
7777
7878``` powershell
79- Set-MiniCPMSSH -Port "54062 " -User "your_user "
79+ Set-MiniCPMSSH -Port "<YOUR_PORT> " -User "<YOUR_USER> "
8080ssh -p $env:SSH_PORT "$env:SSH_USER@$env:SSH_HOST"
8181```
8282
@@ -275,7 +275,7 @@ Stop-MiniCPMMobile
275275在 WSL2 Ubuntu 执行:
276276
277277``` bash
278- cd /mnt/d/九天/codes /MiniCPM-o
278+ cd < YOUR_PATH > /MiniCPM-o
279279
280280# 1) 检查 Docker
281281sudo docker --version
@@ -303,12 +303,12 @@ python3 -m pip install -U huggingface_hub
303303### 2.2 下载 MiniCPM-o 4.5
304304
305305``` bash
306- mkdir -p /mnt/d/九天/codes /MiniCPM-o/models
306+ mkdir -p < YOUR_PATH > /MiniCPM-o/models
307307python3 - << 'PY '
308308from huggingface_hub import snapshot_download
309309snapshot_download(
310310 repo_id='openbmb/MiniCPM-o-4_5',
311- local_dir='/mnt/d/九天/codes /MiniCPM-o/models/MiniCPM-o-4_5',
311+ local_dir='<YOUR_PATH> /MiniCPM-o/models/MiniCPM-o-4_5',
312312 local_dir_use_symlinks=False,
313313 resume_download=True
314314)
318318下载后检查体积和关键文件:
319319
320320``` bash
321- du -sh /mnt/d/九天/codes /MiniCPM-o/models/MiniCPM-o-4_5
322- ls -lh /mnt/d/九天/codes /MiniCPM-o/models/MiniCPM-o-4_5 | head
321+ du -sh < YOUR_PATH > /MiniCPM-o/models/MiniCPM-o-4_5
322+ ls -lh < YOUR_PATH > /MiniCPM-o/models/MiniCPM-o-4_5 | head
323323```
324324
325325---
@@ -329,7 +329,7 @@ ls -lh /mnt/d/九天/codes/MiniCPM-o/models/MiniCPM-o-4_5 | head
329329在仓库根目录执行:
330330
331331``` bash
332- cd /mnt/d/九天/codes /MiniCPM-o
332+ cd < YOUR_PATH > /MiniCPM-o
333333
334334# 后端镜像
335335docker build -f deploy/Dockerfile.backend -t minicpmo-backend:latest .
@@ -351,32 +351,32 @@ docker images | grep minicpmo
351351### 4.1 导出镜像为 tar
352352
353353``` bash
354- mkdir -p /mnt/d/九天 /deploy_pkg
354+ mkdir -p < YOUR_PATH > /deploy_pkg
355355
356- docker save -o /mnt/d/九天 /deploy_pkg/minicpmo-backend_latest.tar minicpmo-backend:latest
357- docker save -o /mnt/d/九天 /deploy_pkg/minicpmo-frontend_latest.tar minicpmo-frontend:latest
356+ docker save -o < YOUR_PATH > /deploy_pkg/minicpmo-backend_latest.tar minicpmo-backend:latest
357+ docker save -o < YOUR_PATH > /deploy_pkg/minicpmo-frontend_latest.tar minicpmo-frontend:latest
358358
359359# 打包 compose 与 nginx 配置
360- cp deploy/docker-compose.yml /mnt/d/九天 /deploy_pkg/
361- cp deploy/nginx.docker.conf /mnt/d/九天 /deploy_pkg/
360+ cp deploy/docker-compose.yml < YOUR_PATH > /deploy_pkg/
361+ cp deploy/nginx.docker.conf < YOUR_PATH > /deploy_pkg/
362362```
363363
364364可选:压缩减少传输体积
365365
366366``` bash
367- cd /mnt/d/九天 /deploy_pkg
367+ cd < YOUR_PATH > /deploy_pkg
368368gzip -1 minicpmo-backend_latest.tar
369369gzip -1 minicpmo-frontend_latest.tar
370370```
371371
372372### 4.2 生成自签名 SSL 证书(手机端 HTTPS 必需)
373373
374374``` bash
375- cd /mnt/d/九天/codes /MiniCPM-o
376- bash deploy/gen_ssl_cert.sh /mnt/d/九天 /deploy_pkg/certs
375+ cd < YOUR_PATH > /MiniCPM-o
376+ bash deploy/gen_ssl_cert.sh < YOUR_PATH > /deploy_pkg/certs
377377```
378378
379- 这会在 ` /mnt/d/九天 /deploy_pkg/certs/` 下生成 ` server.crt ` 和 ` server.key ` 。
379+ 这会在 ` <YOUR_PATH> /deploy_pkg/certs/` 下生成 ` server.crt ` 和 ` server.key ` 。
380380
381381---
382382
@@ -388,32 +388,32 @@ bash deploy/gen_ssl_cert.sh /mnt/d/九天/deploy_pkg/certs
388388
389389``` bash
390390# 先在服务器上创建目标目录
391- ssh -p $SSH_PORT $SSH_USER @$SSH_HOST " mkdir -p /data/minicpmo /deploy_pkg"
391+ ssh -p $SSH_PORT $SSH_USER @$SSH_HOST " mkdir -p <YOUR_PATH> /deploy_pkg"
392392
393393# 上传镜像 tar 包
394394scp -P $SSH_PORT -o ServerAliveInterval=60 \
395- /mnt/d/九天 /deploy_pkg/minicpmo-backend_latest.tar.gz \
396- /mnt/d/九天 /deploy_pkg/minicpmo-frontend_latest.tar.gz \
397- /mnt/d/九天 /deploy_pkg/docker-compose.yml \
398- /mnt/d/九天 /deploy_pkg/nginx.docker.conf \
399- $SSH_USER @$SSH_HOST :/data/minicpmo /deploy_pkg/
395+ < YOUR_PATH > /deploy_pkg/minicpmo-backend_latest.tar.gz \
396+ < YOUR_PATH > /deploy_pkg/minicpmo-frontend_latest.tar.gz \
397+ < YOUR_PATH > /deploy_pkg/docker-compose.yml \
398+ < YOUR_PATH > /deploy_pkg/nginx.docker.conf \
399+ $SSH_USER @$SSH_HOST :< YOUR_PATH > /deploy_pkg/
400400```
401401
402402### 5.2 上传模型权重
403403
404404``` bash
405- ssh -p $SSH_PORT $SSH_USER @$SSH_HOST " mkdir -p /data /models"
405+ ssh -p $SSH_PORT $SSH_USER @$SSH_HOST " mkdir -p <YOUR_PATH> /models"
406406
407407scp -P $SSH_PORT -r -o ServerAliveInterval=60 \
408- /mnt/d/九天/codes /MiniCPM-o/models/MiniCPM-o-4_5 \
409- $SSH_USER @$SSH_HOST :/data /models/
408+ < YOUR_PATH > /MiniCPM-o/models/MiniCPM-o-4_5 \
409+ $SSH_USER @$SSH_HOST :< YOUR_PATH > /models/
410410```
411411
412412### 5.3 上传 SSL 证书(手机端访问需要)
413413
414414``` bash
415- scp -P $SSH_PORT -r /mnt/d/九天 /deploy_pkg/certs \
416- $SSH_USER @$SSH_HOST :/data/minicpmo /deploy_pkg/
415+ scp -P $SSH_PORT -r < YOUR_PATH > /deploy_pkg/certs \
416+ $SSH_USER @$SSH_HOST :< YOUR_PATH > /deploy_pkg/
417417```
418418
419419> 如果端口变更,只需要修改 ` SSH_PORT ` 变量并重试命令。
@@ -485,7 +485,7 @@ cd /data/minicpmo/runtime
485485` docker-compose.yml ` 里用了 ` MODEL_PATH ` 环境变量。你可以直接导出:
486486
487487``` bash
488- export MODEL_PATH=/data /models/MiniCPM-o-4_5
488+ export MODEL_PATH=< YOUR_PATH > /models/MiniCPM-o-4_5
489489export CERTS_PATH=./certs
490490export BACKEND_PORT=32550
491491
@@ -735,17 +735,17 @@ docker logs -f minicpmo-backend
735735### H100 侧(假设文件已上传)
736736
737737``` bash
738- cd /data/minicpmo /deploy_pkg
738+ cd < YOUR_PATH > /deploy_pkg
739739
740740docker load -i minicpmo-backend_latest.tar
741741docker load -i minicpmo-frontend_latest.tar
742742
743- mkdir -p /data/minicpmo /runtime/certs
744- cp docker-compose.yml /data/minicpmo /runtime/
745- cp certs/server.* /data/minicpmo /runtime/certs/
743+ mkdir -p < YOUR_PATH > /runtime/certs
744+ cp docker-compose.yml < YOUR_PATH > /runtime/
745+ cp certs/server.* < YOUR_PATH > /runtime/certs/
746746
747- cd /data/minicpmo /runtime
748- export MODEL_PATH=/data /models/MiniCPM-o-4_5
747+ cd < YOUR_PATH > /runtime
748+ export MODEL_PATH=< YOUR_PATH > /models/MiniCPM-o-4_5
749749export CERTS_PATH=./certs
750750export BACKEND_PORT=32550
751751if docker compose version > /dev/null 2>&1 ; then
@@ -780,4 +780,4 @@ ssh -N -p $env:SSH_PORT -L 3000:127.0.0.1:3000 -L 3443:127.0.0.1:3443 -L 32550:1
780780ssh -N -p $SSH_PORT -L 0.0.0.0:3443:127.0.0.1:3443 $SSH_USER @$SSH_HOST
781781```
782782
783- 手机浏览器打开:` https://笔记本局域IP :3443 `
783+ 手机浏览器打开:` https://<YOUR_LAPTOP_LAN_IP> :3443 `
0 commit comments