Skip to content

Commit 3000990

Browse files
committed
chore: mask all sensitive info in deploy directory (paths, usernames, hosts, etc.)
1 parent 3de0baa commit 3000990

8 files changed

Lines changed: 835 additions & 184 deletions

deploy/DEPLOY_WSL2_TO_H100_EN.md

Lines changed: 720 additions & 69 deletions
Large diffs are not rendered by default.

deploy/DEPLOY_WSL2_TO_H100_ZH.md

Lines changed: 47 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# MiniCPM-o 4.5 离线部署实战指南(WSL2 构建镜像 → 上传内网 H100 服务器 → 本地 + 手机访问)
22

3-
> 目标:你在本地 Win10 + WSL2 构建 Docker 镜像,把镜像和模型传到无公网的公司 H100 服务器,启动服务后在本地浏览器和手机上测试全双工视频通话
3+
> 目标:你在本地 Windows系统PC + WSL2 构建 Docker 镜像,把镜像和模型传到无公网的公司 H100 服务器,启动服务后在本地浏览器和Android系统手机上测试全双工视频通话
44
55
**你的环境速查:**
66

@@ -14,24 +14,24 @@
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

2222
PowerShell 等价写法(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)
3737
Start-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>"
4747
Restart-MiniCPMMobile
4848
```
4949

5050
PowerShell 中引用变量时,`ssh/scp` 建议写成:
5151

5252
```powershell
5353
ssh -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>"
8080
ssh -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
281281
sudo 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
307307
python3 - << 'PY'
308308
from huggingface_hub import snapshot_download
309309
snapshot_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
)
@@ -318,8 +318,8 @@ PY
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
# 后端镜像
335335
docker 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
368368
gzip -1 minicpmo-backend_latest.tar
369369
gzip -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 包
394394
scp -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

407407
scp -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
489489
export CERTS_PATH=./certs
490490
export 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

740740
docker load -i minicpmo-backend_latest.tar
741741
docker 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
749749
export CERTS_PATH=./certs
750750
export BACKEND_PORT=32550
751751
if 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
780780
ssh -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`

deploy/Dockerfile.backend

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
# ============================================
2-
# MiniCPM-o 4.5 后端推理服务 Dockerfile
3-
# 基础镜像: NVIDIA CUDA 12.8 + Ubuntu 22.04
2+
# MiniCPM-o 4.5 Backend Inference Service Dockerfile
3+
# Base image: NVIDIA CUDA 12.8 + Ubuntu 22.04
44
# ============================================
55
FROM nvidia/cuda:12.8.1-devel-ubuntu22.04
66

7-
# 避免交互式提示
7+
# Avoid interactive prompts
88
ENV DEBIAN_FRONTEND=noninteractive
99
ENV PYTHONUNBUFFERED=1
1010

11-
# ---- 系统依赖 ----
11+
# ---- System dependencies ----
1212
RUN apt-get update && apt-get install -y \
1313
python3.10 \
1414
python3.10-dev \
@@ -21,7 +21,7 @@ RUN apt-get update && apt-get install -y \
2121
curl \
2222
&& rm -rf /var/lib/apt/lists/*
2323

24-
# 设置 python3.10 为默认
24+
# Set python3.10 as default
2525
RUN ln -sf /usr/bin/python3.10 /usr/bin/python3 && \
2626
ln -sf /usr/bin/python3 /usr/bin/python && \
2727
python3 -m pip install --upgrade pip setuptools wheel
@@ -32,7 +32,7 @@ RUN pip install --no-cache-dir \
3232
"torchaudio<=2.8.0" \
3333
--index-url https://download.pytorch.org/whl/cu124
3434

35-
# ---- MiniCPM-o 核心依赖 ----
35+
# ---- MiniCPM-o core dependencies ----
3636
RUN pip install --no-cache-dir \
3737
"transformers==4.51.0" \
3838
accelerate \
@@ -44,28 +44,28 @@ RUN pip install --no-cache-dir \
4444
Pillow \
4545
numpy
4646

47-
# ---- Web 服务依赖 ----
47+
# ---- Web service dependencies ----
4848
RUN pip install --no-cache-dir \
4949
fastapi \
5050
uvicorn \
5151
aiofiles \
5252
pydantic
5353

54-
# ---- 工作目录 ----
54+
# ---- Working directory ----
5555
WORKDIR /app
5656

57-
# ---- 复制后端代码 ----
57+
# ---- Copy backend code ----
5858
COPY web_demos/minicpm-o_2.6/model_server.py /app/
5959
COPY web_demos/minicpm-o_2.6/vad_utils.py /app/
6060
COPY web_demos/minicpm-o_2.6/silero_vad.onnx /app/
6161

62-
# ---- 复制 TTS 参考音频 ----
62+
# ---- Copy TTS reference audios ----
6363
COPY assets/ref_audios/ /app/assets/ref_audios/
6464

65-
# ---- 暴露端口 ----
65+
# ---- Expose port ----
6666
EXPOSE 32550
6767

68-
# ---- 启动命令 ----
69-
# 模型路径通过 volume 挂载到 /models/MiniCPM-o-4_5
68+
# ---- Startup command ----
69+
# Model path is mounted to /models/MiniCPM-o-4_5 via volume
7070
ENV BACKEND_PORT=32550
7171
CMD ["sh", "-lc", "python3 model_server.py --model /models/MiniCPM-o-4_5 --port ${BACKEND_PORT}"]

deploy/Dockerfile.frontend

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,34 @@
11
# ============================================
2-
# MiniCPM-o 4.5 前端 Web 服务 Dockerfile
3-
# 多阶段构建: Node.js 构建 + Nginx 部署
2+
# MiniCPM-o 4.5 Frontend Web Service Dockerfile
3+
# Multi-stage build: Node.js build + Nginx deployment
44
# ============================================
55

6-
# ---- 第一阶段:构建 Vue 项目 ----
6+
# ---- Stage 1: Build Vue project ----
77
FROM node:20-alpine AS build-stage
88

99
WORKDIR /build
1010
COPY web_demos/minicpm-o_2.6/web_server/ /build/
1111

12-
# 安装 pnpm 并构建
13-
# 生成占位证书文件(vite.config.js server.https 在 build 时也会被解析)
12+
# Install pnpm and build
13+
# Generate placeholder certificate files (vite.config.js server.https is also parsed during build)
1414
RUN npm install -g pnpm && \
1515
touch key.pem cert.pem && \
1616
pnpm install && \
1717
pnpm run build
1818

19-
# ---- 第二阶段:Nginx 静态服务 ----
19+
# ---- Stage 2: Nginx static service ----
2020
FROM nginx:alpine AS production-stage
2121

22-
# envsubst 用于在容器启动时渲染 nginx 配置模板
22+
# envsubst is used to render nginx config template at container startup
2323
RUN apk add --no-cache gettext
2424

25-
# 复制构建产物
25+
# Copy build artifacts
2626
COPY --from=build-stage /build/dist /usr/share/nginx/html
2727

28-
# 复制自定义 nginx 配置模板(Docker 网络版本)
28+
# Copy custom nginx config template (Docker network version)
2929
COPY deploy/nginx.docker.conf /etc/nginx/nginx.conf.template
3030

31-
# 启动时按 BACKEND_PORT 渲染 nginx 配置
31+
# Render nginx config with BACKEND_PORT at startup
3232
ENV BACKEND_PORT=32550
3333

3434
EXPOSE 3000 3443

0 commit comments

Comments
 (0)