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 容器跑 ManyfoldWeb 端口映射到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_HOST127.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:3214cpolar http 3214cpolar 会分配一个临时公网 URL形如https://xxxx.cpolar.cn。把这条链接发给设计同事或客户对方点开就能看到 Manyfold 的模型分类和 3D 预览页。因为数据一直留在你的本机容器里分享出去的只是一个短时入口不需要把 STL 挨个打包发一遍。你把整理好的项目链接、几个关键标签的解释一起发过去配合预览页对方基本不用打字问这到底是哪个文件。提醒公网 URL 一次生成后别截图发去公共渠道到处贴发给需要看的人就够了。看完就关隧道。临时开放后的收尾清单验收结束后不只是点一下浏览器的新标签页就算完。清理动作逐条过关闭 cpolar 隧道。在运行 cpolar 的终端按CtrlC或cpolar管理界面停掉该隧道。停掉后验证公网 URL 已返回不可用确认外界不再能访问。删除或确认脱敏演示模型。如果这些 STL/3MF 本来就是可随时再造的公开演示件删掉最省心如果后面还要复用就放进明确的演示素材库目录并在库里标注确保不含任何真实生产、客户或涉密数据。改演示账号密码或直接弃用。公网入口开过之后即便只开了几分钟也建议把那个管理员账号的密码重置一次或者干脆把整个演示库连同账号一起清掉。清理容器或保留本地自用边界要清晰。演示结束不外放后你可以二选一docker compose down -v把容器和演示数据卷一并删掉得到一台干净的机器或保留容器继续当本地浏览工具自用——但保留的前提是它只在127.0.0.1上、不再开任何隧道且不再被当临时分享入口。选定之后明明白白告诉自己这条入口现在是自用不是外发。到这里从本机部署、导入公开演示件、标签与项目整理、封面与 3D 预览验收到用 cpolar 做一次短时公开查看再安全收尾整个闭环就完整了。下次设计同事再问那个齿轮长啥样、能不能打你直接给一条体验良好的预览链接就好——不过记得看完就关。