2026年9月11日
如何用Klipper和Moonraker搭建Spoolman(Mainsail/Fluidd)
如果你用的是 Klipper,Spoolman 是告别猜测线轴剩余耗材量的标准做法——它是一个免费、自建的线轴数据库,而且 Moonraker 原生支持它,一旦接好之后,Mainsail 和 Fluidd 都会显示线轴选择器,并在打印过程中自动更新剩余重量。下面是完整的搭建步骤。
开始之前
- Klipper 和 Moonraker 已经安装并正常运行——Spoolman 是接入 Moonraker 的插件,不会替换你现有配置的任何部分。
- 需要一个地方运行 Spoolman 服务本身:可以是和 Moonraker 同一台 Raspberry Pi/单板机上的 Docker 容器,也可以是网络里另一台常开的机器(NAS、家庭服务器,任何一直在线的设备)。
- 如果不打算用 Docker 运行 Spoolman,需要 Python 3.9+,不过大多数人还是会选择 Docker,因为 Spoolman 官方提供了现成的镜像。
1. 运行 Spoolman 服务
官方推荐用 Docker Compose——拉取 spoolman 镜像,给它的数据库挂一个持久化卷,并暴露一个端口(默认 7912)。容器启动后,应该可以在浏览器里打开 http://<spoolman-host>:7912,看到它的网页界面,暂时是空的。
2. 让 Moonraker 指向它
打开打印机主机上的 moonraker.conf,添加一个 [spoolman] 配置段:
[spoolman]
server: http://<spoolman-host>:7912
把 <spoolman-host> 替换成运行 Spoolman 容器的 IP 地址或主机名——如果和 Moonraker 在同一台机器上就填 localhost,否则填局域网 IP。
3. 重启 Moonraker
sudo systemctl restart moonraker
查看 Moonraker 的日志,确认出现 Spoolman 连接成功、没有报错的记录。如果连接不上,检查一下地址是否正确,以及从打印机主机能否实际访问到那个端口(在那台机器上用 curl http://<spoolman-host>:7912 快速测试一下是最快的确认方法)。
4. 确认 Mainsail 或 Fluidd 里已经显示
只要 Moonraker 上报了 Spoolman 集成,Mainsail 和 Fluidd 这两个界面都会自动识别,不需要单独安装插件。打印状态面板里应该会出现线轴选择器。如果还没出现,通常刷新一下浏览器标签页就够了,不需要再重启一次 Moonraker。
5. 添加你的线轴
在 Spoolman 的网页界面里,先添加一种耗材类型(品牌、材料、直径、密度),然后为这种耗材添加一卷线轴,填上起始重量。把当前在用的每一卷线轴都这样录入一遍——这是整个搭建过程里唯一需要手动操作的步骤,之后一切都会自动更新。
6. 打印前指定线轴
在开始打印之前,从 Mainsail/Fluidd 现在显示的选择器里选出正在使用的线轴。从这一步开始,Moonraker 会在打印过程中把估算用量实时上报给 Spoolman,那卷线轴的剩余重量会自动减少——不需要秤,也不需要手动做减法。
这套方案覆盖不到的部分
现在 Spoolman 知道每卷线轴物理上还剩多少,但它不会告诉你一次打印实际花了多少钱,因为这从来都不是它的分内事——要算清楚这个,你需要把每公斤耗材的采购价、打印时长和电费都汇总到一处。如果这是你接下来要解决的问题,可以看看Spoolman 和订单成本核算要怎么配合使用,而不是重复造轮子。