Manyfold 本地 3D 模型库整理:打印文件分类跑通后,用 cpolar 给同事临时查看预览

📅 2026/8/3 9:36:01 👁️ 阅读次数 📝 编程学习
Manyfold 本地 3D 模型库整理:打印文件分类跑通后,用 cpolar 给同事临时查看预览

Manyfold 本地 3D 模型库整理:打印文件分类跑通后,用 cpolar 给同事临时查看预览

做 3D 打印和原型协作的人通常都知道:模型文件总是散在一堆地方。STL 在微信里,3MF 在网盘里,某个零件的 V2 改版躺在本机 Downloads,同事一句"你发我那个齿轮的打印参数"要翻十分钟聊天记录。买个文件索引软件解决不了,因为痛点不是"找不到文件",而是"看不到这是个什么模型、能打印成什么样、属不属于当前这个项目"。

这篇文章用Manyfold把这件事跑通。Manyfold 是专门面向 3D 模型资产的开源整理工具:它不把自己包装成通用文件服务器,而是围绕"模型 → 打印件 → 项目的可浏览预览"来组织内容。我会在本机用 Docker 部署它,导入一组公开授权的演示 STL/3MF,做标签、项目集合、封面和预览的整理,再把 Web 端口严格绑到 127.0.0.1 上验证完整个流程。本地验收通过后,用cpolar临时开一条隧道,把模型分类和预览页给设计同事或客户短时看一眼。开完就关,不留后门。

先说清楚边界,避免越线:本文全程只用公开授权或自制演示模型,不涉及任何客户 CAD、生产图纸、含商业秘密的零件,以及带人脸、地址、订单信息的文件;后台账号用强密码;cpolar 只短时开放;不公开数据库端口、不公开 Docker 控制接口;验收结束就关闭隧道并清理演示数据。

为什么是 Manyfold,而不是"再放一个网盘"

如果你只想把 3D 文件甩给别人,Pingvin Share 之类的快传更合适。但 Manyfold 的定位是模型资产库,它有几个对打印为主的工作流很关键的点:

  • 模型是中心对象。一条记录代表一个"可以打印的东西",可以挂多个 STL/3MF 变体和不同的打印参数,而不是一坨无脑堆在一起的文件。
  • 自带 3D 预览。Web 界面里能直接转模型查看尺寸、朝向、封面缩略图,不用先下载到切片软件里才能确认是不是要那个文件。
  • 标签和项目集合。用标签归类"齿轮、夹具、配件",用项目把同一套测试件捆在一起,方便按场景浏览。

这一步先解决的是"整理和浏览",分享是整理好之后才做的动作。顺序不要反:先把本地库组织清楚,再谈临时开放。

部署:本机 Docker 起一个干净的 Manyfold

我不打算把整个宿主机都暴露给这个自托管服务。规划是:用单个 Docker 容器跑 Manyfold,Web 端口映射到127.0.0.1:3214,数据库和模型存储放在容器托管的数据卷里,不把宿主机目录直接挂进容器当模型存储,也不映射数据库或 Docker 控制端口。

先在你的部署机上建一个工作目录和 Compose 文件:

# compose.yaml services: manyfold: image: ghcr.io/manyfold3d/manyfold:latest container_name: manyfold-demo restart: unless-stopped ports: - "127.0.0.1:3214:3214" environment: - SECRET_KEY_BASE=${MANYFOLD_SECRET} # 从中读取强随机值 - MANYFOLD_HOST=127.0.0.1 volumes: - manyfold_data:/data stdin_open: true tty: true volumes: manyfold_data:

注意端口写法127.0.0.1:3214:3214,这一步很关键:它只监听回环地址,任何网卡都不会对局域网或公网暴露 Manyfold,只有跑在宿主机本机、且登录这台机的会话才能访问http://127.0.0.1:3214。数据库由 Manyfold 容器内部管理在数据卷manyfold_data里,不对外映射,也不必知道它的连接地址。

生成一个强随机密钥,用于容器加密会话等,不要写死在文章里演示出来的样子:

MANYFOLD_SECRET=$(openssl rand -hex 32) echo "$MANYFOLD_SECRET" > .manyfold_secret # 别提交到 git export MANYFOLD_SECRET

然后拉镜像、起服务并确认健康:

docker compose up -d docker compose ps # 应显示 manyfold 为 Up curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:3214 # 期望 200 或 3xx

浏览器打开http://127.0.0.1:3214,首次进入走初始化。创建管理员账号时,用一个独立且强的密码——这个账号只在演示期间存在,但不能因为"反正会删"就用弱口令。整理这个库用管理员账号足够,后续如果真要交给同事操作,可以再建一个受限账号,但那不是本文的重点。

封面:Manyfold 整理演示原型套件(齿轮 / 夹具 / 测试方块),Web 端口只绑 127.0.0.1:3214,用 cpolar 临时给设计同事预览,验收后即关闭。

导入演示模型,先把"看得见"解决

本地首页起来后,往库里塞一批公开授权或自制的 STL/3MF。这里不讨论从哪里批量抓取受版权限制的模型——只用明确许可、可自由用于演示的测试件。举例:一个带孔测试方块、一个齿轮、一个夹具体几个小件,够体现"多模型、多种类"就够,不用堆上百个。

导入在 Manyfold 界面里做:新建一个"库"(Library),把 STL/3MF 传进去或放进库的 on-disk 目录里触发扫描。导入后每个模型应能看到基础信息、可下载的原始切片源文件,以及 Web 界面里可旋转查看的 3D 预览。这一步就是验证"导入 → 预览 → 下载原始文件"这一条核心链路是通的。

用公开授权模型跑通后,我在 Web 上逐个打开预览,确认:缩略图能生成、模型能 3D 旋转、下载按钮给出的文件就是当初传进去的那个 STL/3MF。预览页本身也是一个好的演示素材,同事/客户最关心的就是"这个件长什么样、能不能打",这一屏把两个问题都回答了。

图 1:本机 Manyfold 导入公开演示 STL/3MF,缩略图、3D 旋转与下载源文件链路跑通。

用标签和项目集合把库整理出结构

光能上传不叫"整理"。这一步给模型打标签、归到项目里,让同事打开就是一套清晰的分类,而不是挨个猜。

打标签。命名要克制:用"齿轮""夹具""散热件""测试方块"这类按形状和用途的短词,而不是把文件名里的小写改一下就当标签。标签的作用是横向归类——同一批在不同项目里用到的同类件,靠标签能一次性拉出来。

建项目集合。Manyfold 的项目(Project)相当于一个"套件"分组。我把本期要演示的几个模型捆进一个叫"演示原型套件"的项目里,备注写清用途和打印参数建议。同事点进项目,一下就明白"这组是配套的,别只拿出去单打"。

设封面。给每个模型和项目指定一张封面缩略图,Manyfold 会用它作为列表页和项目卡的预览图。封面选能代表这个件外观的角度,比默认缩略图更直观。整理完看一眼列表页:每个卡片有清晰的封面、名字、关键标签,点进去有可旋转的预览。

图 2:标签与项目集合整理完成后,cpolar 把 127.0.0.1:3214 转成临时 HTTPS 给同事预览;数据库、Docker 接口与文件目录不出本机,验收后即关隧道。

这步做完了,本地库就有了"可浏览"的样子。我建议在分享给任何人之前,先自己按"同事视角"完整走一遍:从列表页点进项目 → 看封面 → 旋转预览 → 确认标签对 → 下载一次源文件确认连接正常。这一遍没问题,再谈开放。

边界再收紧一遍,然后才用 cpolar 临时开放

本地验证完成,准备把入口临时开放给设计同事或客户看一眼。正式操作前,把我的安全边界换个角度再念一遍,别跳过

  • 只用公开授权或自制演示模型。不传客户 CAD、生产图纸、含商业秘密的零件,以及任何带人脸、地址、订单信息的文件。哪怕库里只有 5 个公开演示件,也要确认"绝没混进去一个不该出现的文件",最简单的方式是导入时就锁定一个专门存放公开演示件的目录,别把工作素材目录当导入源。
  • Web 端口只绑 127.0.0.1。前面 Compose 里的127.0.0.1:3214:3214不是可选装饰,它是边界变成现实的那条最短路径。调整前凡是把多种映射放到一起的写法,先退回这一份。
  • 不公开数据库端口、不公开 Docker 控制接口。Manyfold 内部用的数据库依赖容器内部网络,不对外给到宿主机,更不转发公网;Docker 容器控制接口在这里完全没有用武之地,一律不开放。
  • 后台账号用强密码。管理员账号用独立强密码,前面已建好。这一步是"临时开放"必须提前就位的,不要先开了隧道再回头补密码。
  • cpolar 只短时开放。隧道开起来给同事验收,验收完立即关闭。

接下来,用 cpolar 开一条隧道,把 Manyfold 的本地端口映射到公网临时地址。先确认 cpolar 已安装并登录:

cpolar version # 应显示版本号 cpolar authtoken <你的authtoken> # 首次配置,写入本机凭证

创建一条临时 HTTP 隧道,目标指向本机的http://127.0.0.1:3214

cpolar http 3214

cpolar 会分配一个临时公网 URL(形如https://xxxx.cpolar.cn)。把这条链接发给设计同事或客户,对方点开就能看到 Manyfold 的模型分类和 3D 预览页。因为数据一直留在你的本机容器里,分享出去的只是一个短时入口,不需要把 STL 挨个打包发一遍。你把整理好的项目链接、几个关键标签的解释一起发过去,配合预览页,对方基本不用打字问"这到底是哪个文件"。

提醒:公网 URL 一次生成后别截图发去公共渠道到处贴,发给需要看的人就够了。看完就关隧道。

临时开放后的收尾清单

验收结束后,不只是点一下浏览器的新标签页就算完。清理动作逐条过:

  1. 关闭 cpolar 隧道。在运行 cpolar 的终端按Ctrl+C,或cpolar管理界面停掉该隧道。停掉后验证公网 URL 已返回不可用,确认外界不再能访问。
  2. 删除或确认脱敏演示模型。如果这些 STL/3MF 本来就是可随时再造的公开演示件,删掉最省心;如果后面还要复用,就放进明确的"演示素材库"目录并在库里标注,确保不含任何真实生产、客户或涉密数据。
  3. 改演示账号密码或直接弃用。公网入口开过之后,即便只开了几分钟,也建议把那个管理员账号的密码重置一次,或者干脆把整个演示库连同账号一起清掉。
  4. 清理容器或保留本地自用,边界要清晰。演示结束不外放后,你可以二选一:docker compose down -v把容器和演示数据卷一并删掉,得到一台干净的机器;或保留容器继续当本地浏览工具自用——但保留的前提是它只在127.0.0.1上、不再开任何隧道,且不再被当"临时分享"入口。选定之后明明白白告诉自己:这条入口现在是自用,不是外发。

到这里,从本机部署、导入公开演示件、标签与项目整理、封面与 3D 预览验收,到用 cpolar 做一次短时公开查看,再安全收尾,整个闭环就完整了。下次设计同事再问"那个齿轮长啥样、能不能打",你直接给一条体验良好的预览链接就好——不过记得,看完就关。