DeepSeek-Harness (DSH) 部署说明文档本文档记录了基于 Docker 的 DeepSeek-Harness 生产环境部署流程包括镜像构建、容器管理、反向代理、基本认证及数据持久化配置。1. 环境概览项目详情应用名称DeepSeek-Harness (DSH)源码仓库https://github.com/deepseek-ai/deepseek-harness.git镜像版本deepseek-harness:local基于dsh-v0.1.0-rc.7构建运行模式Docker 容器使用host网络模式容器端口3080监听127.0.0.1:3080主机端口映射无host 网络直接占用主机端口数据持久化/data/dsh/app↔ 容器内/app反向代理Nginx监听 80 端口添加 HTTP 基本认证域名example.com认证用户dsh密码在/etc/nginx/conf.d/.htpasswd2. 部署步骤2.1 获取源代码并构建镜像# 克隆代码gitclone https://github.com/deepseek-ai/deepseek-harness.gitcddeepseek-harness# 切换到稳定版本可选gitcheckout dsh-v0.1.0-rc.7# 构建 Docker 镜像dockerbuild-tdeepseek-harness:local.2.2 准备持久化目录mkdir-p/data/dsh/app如果已有运行中的容器先备份原有程序文件避免挂载后丢失dockercpdsh:/app/. /data/dsh/app/2.3 编写 Docker Compose 配置创建/opt/dsh/docker-compose.ymlversion:3services:dsh:image:deepseek-harness:localcontainer_name:dshnetwork_mode:host# 使用主机网络容器内 127.0.0.1 即宿主机 127.0.0.1restart:unless-stoppedvolumes:-/data/dsh/app:/app# 挂载整个 /app 实现数据持久化# 环境变量如需要可添加# environment:# - DEEPSEEK_API_KEYyour_key 未实际的使用该参数需要等后续ds版本尝试使用变量控制2.4 启动容器cd/opt/dshdocker-composeup-d查看状态docker-composepsdockerlogs dsh验证服务curl-Ihttp://127.0.0.1:3080# 应返回 HTTP/1.1 200 OK3. 配置 Nginx 反向代理与基本认证3.1 安装 Nginx 和 htpasswd 工具# CentOS / RHELyuminstall-ynginx httpd-tools# Ubuntu / Debian# apt install -y nginx apache2-utils3.2 创建密码文件mkdir-p/etc/nginx/conf.d htpasswd-c/etc/nginx/conf.d/.htpasswd dsh# 按提示输入密码3.3 Nginx 虚拟主机配置配置文件路径以宝塔面板为例/www/server/panel/vhost/nginx/example.com.conf关键配置片段已省略通用部分server { listen 80; server_name example.com; # 基本认证 auth_basic Restricted Access; auth_basic_user_file /etc/nginx/conf.d/.htpasswd; location / { proxy_pass http://127.0.0.1:3080; 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; # WebSocket 支持 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; } }注意如果使用宝塔面板可以直接在面板中添加站点并修改配置文件避免路径混淆。3.4 测试并重载 Nginxnginx-tsystemctl reload nginx3.5 放行防火墙firewall-cmd--permanent--add-servicehttp firewall-cmd--reload云服务器安全组需开放 80HTTPS 可选 443端口。4. 验证部署浏览器访问http://example.com弹出认证窗口输入用户名dsh及密码成功进入应用界面即部署完成。5. 日常管理命令所有操作均在/opt/dsh目录下执行cd/opt/dsh操作命令查看运行状态docker-compose ps查看实时日志docker-compose logs -f dsh重启容器docker-compose restart停止容器docker-compose stop启动已停止的容器docker-compose start删除容器保留数据docker-compose down进入容器内部docker exec -it dsh /bin/sh6. 数据持久化说明容器内/app目录已挂载到宿主机/data/dsh/app。所有应用数据包括配置、数据库文件、日志、上传文件等都会写入/data/dsh/app。删除容器或镜像不会影响该目录数据安全。查看数据目录内容ls-la/data/dsh/app7. 备份与恢复7.1 备份数据tar-czfdsh-backup-$(date%Y%m%d).tar.gz /data/dsh/app7.2 恢复数据# 停止容器docker-composedown# 恢复数据tar-xzfdsh-backup-YYYYMMDD.tar.gz-C/# 重新启动docker-composeup-d8. 升级镜像重要注意事项由于当前docker-compose.yml挂载了整个/app直接使用新镜像启动不会更新程序文件因为宿主机目录中的程序文件是旧版本。升级时请按以下步骤操作8.1 构建新镜像cd/path/to/sourcedockerbuild-tdeepseek-harness:new.8.2 停止旧容器cd/opt/dshdocker-composedown8.3 备份当前数据可选cp-r/data/dsh/app /data/dsh/app_backup8.4 将新镜像的程序文件复制到宿主机目录dockerrun--rmdeepseek-harness:newtar-C/app-c.|tar-C/data/dsh/app-x8.5 更新docker-compose.yml中的镜像标签为deepseek-harness:new8.6 重新启动docker-composeup-d优化建议未来可修改挂载策略只挂载数据子目录如/app/data使程序文件完全跟随镜像更新无需上述额外步骤。9. 故障排查现象检查方法容器无法启动docker logs dsh/docker-compose logs dsh端口被占用netstat -tulpn | grep 3080Nginx 返回 502容器是否运行proxy_pass地址是否正确认证不生效Nginx 配置中auth_basic_user_file路径是否正确密码文件是否存在数据未持久化确认挂载目录是否正确检查/data/dsh/app是否有新文件生成10. 联系与维护项目官网https://github.com/deepseek-ai/deepseek-harness本部署文档维护人阿白的旅行更新日期2026-08-19提示1若需启用 HTTPS可使用 Certbot 自动获取 Let’s Encrypt 证书具体命令certbot--nginx-dexample.com提示2本方案的认证方式过于简陋建议开启nginx白名单 / 其他自定义防护措施