maziggy/bambuddy

GitHub: maziggy/bambuddy

面向拓竹 Bambu Lab 打印机的开源自托管控制中心,摆脱云端依赖,支持单机到四十台打印机的集中监控、调度与自动化管理。

Stars: 1882 | Forks: 239

Bambuddy Logo

Bambuddy

你的打印机。无需云端。你做主。
拓竹(Bambu Lab)的自托管控制中心 — 从单台 A1 到拥有 40 台打印机的农场。

Release License Stars Issues Discord Forum GitHub Sponsors Sponsors Portal Ko-fi

🎮 体验在线演示功能特性应用截图快速开始官方文档论坛Discord参与贡献

Live Demo
Spin up your own private Bambuddy in ~10 seconds — no install, no signup, 30-minute session.

## 📰 媒体报道

XDA-Developers How-To Geek Fabbaloo Igor's Lab 3Druck FastBlinker

两家领先的 3D 打印媒体在独立评测后一致认为,Bambuddy 的功能集**已经超越了 Bambu 自家的云服务**: 📄 **[查看所有媒体报道 →](https://bambuddy.cool/press.html)** ## 📣 招募贡献者 — 共建 Bambuddy Bambuddy 是一个社区驱动的项目,我**正在积极寻找贡献者** — 尤其是我个人无法独立承担的两个领域: - 📝 **文档编写者** — 协助改进 wiki、指南和功能文档,帮助新用户顺利上手 - ⚙️ **Discourse 管理员** — 我们的 **Discourse 论坛**已在 [forum.bambuddy.cool](https://forum.bambuddy.cool) 上线,但仍需进行配置、主题调整和优化(分类、权限、SSO、邮件、插件、备份)。如果您熟悉 Discourse 或愿意深入研究,我非常希望能得到您的帮助。 - 💬 **论坛版主** — 协助欢迎新人、解答问题,并在新论坛上维护健康的讨论氛围 文档编写和版主角色无需您具备开发能力。只要您热衷于写作、乐于助人或维护友好的社区氛围,您正是我们要找的人。 **联系方式:** - 🗣️ [论坛](https://forum.bambuddy.cool) — 交流、深入探讨、指南和社区问答 - 💬 [Discord](https://discord.gg/aFS3ZfScHM) — 最快的交流方式 - 🐙 [GitHub Discussions](https://github.com/maziggy/bambuddy/discussions) — 开个新帖 - 📧 **martin@bambuddy.cool** — 直接发邮件给 Martin(无需 GitHub 或 Discord) ## 🌐 新功能:通过 Proxy Mode(代理模式)进行远程打印

Proxy Mode Architecture

**在世界任何地方打印** — Bambuddy 全新的 Proxy Mode 可作为您的切片软件和打印机之间的安全中继: - 🔒 **端到端 TLS 加密** — FTP、文件传输和摄像头均使用打印机的真实 TLS 证书进行透明代理 - 🛡️ **可选 Tailscale 集成** — 每 VP(虚拟打印机)独立切换 + Docker socket 挂载,在 VP 卡片上显示主机的 Tailscale IP,因此当您希望通过 tailnet 访问虚拟打印机时,可以明确将 `100.x.x.x` 粘贴到切片软件中([设置指南](https://wiki.bambuddy.cool/features/virtual-printer/))。切片软件端仍需导入 Bambuddy 的自签名 CA — Bambu Studio / OrcaSlicer 的打印机 MQTT 信任路径使用内置的 BBL CA,而不是系统信任库,因此即使使用公开信任的证书也无济于事。Tailscale 的作用是提供私有隧道(在任何地方均可访问,无需端口转发),而不是为了免除证书导入。 - 🌍 **无云端依赖** — 通过您自己的 Bambuddy 服务器进行直接连接 - 🔑 **使用打印机的访问码** — 无需额外的凭证 - ⚡ **全速打印** — 透明 TCP 代理,仅对 MQTT 进行解密以用于 IP 重写 非常适合远程打印农场、出行的创客,或者从工作场所访问家里的打印机。 👉 **[设置指南 →](https://wiki.bambuddy.cool/features/virtual-printer/#proxy-mode-new-in-017)** ## 🍰 新功能:集成切片 — 切片与打印,合二为一 **无需桌面端切片软件。** 将 STL 或 3MF 文件拖放到 Bambuddy 的文件管理器中,点击 **Slice**,结果将作为可直接打印的 `.gcode.3mf` 文件保存在同一文件夹中 — 全程无需打开 Bambu Studio 或 Orca Slicer。 - 🍰 **一键切片** — 从任何浏览器进行切片。任务在服务器端的[微型边车容器](slicer-api/README.md)中运行,进度通过 toast 消息实时回传,切片完成后文件会自动出现在您的库中。 - 📱 **从手机或平板进行切片** — Bambuddy 的 PWA + 全新的服务器端切片器意味着您可以从移动端拖入 STL 文件并加入打印队列,全程无需碰桌面电脑。 - 🎒 **导入您的自定义配置** — 导入从 Bambu Studio 导出的 `Printer Preset Bundle` (`.bbscfg`):在 Slice 对话框的下拉菜单中挑选精心搭配的 **打印机 + 工艺 + 耗材** 组合,不再需要繁琐地调整 JSON 文件。 - 🔁 **与 Bambuddy 其余调度逻辑一致** — 切片输出的文件会进入现有的队列 / 构建板选择器 / AMS 映射流程,因此所有常规便利功能(多打印机调度、AMS 路由、计划打印)都能正常运行。 可选但强烈推荐 — 将 [`slicer-api/` Compose stack](slicer-api/README.md) 放在您的 Bambuddy 安装目录旁,各处的 **Slice** 按钮将会被激活。 👉 **[切片集成指南 →](https://wiki.bambuddy.cool/features/slicer-api/)** ## 为什么选择 Bambuddy? - **数据自主掌控** — 所有打印历史记录保存在本地,无云端依赖 - **离线可用** — 使用开发者模式通过局域网直接控制打印机 - **完全自动化** — 计划打印任务、自动关机、完成后通知 - **多打印机支持** — 在一个界面管理您的整个打印农场 ## ✨ 功能特性
### 📦 打印归档 - 自动归档带有元数据的 3MF 文件 - 3D 模型预览 (Three.js) - 重复检测与全文搜索 - 照片附件与失败分析 - 延时摄影编辑器(修剪、加速、配乐),支持 P1 系列打印机的自动 AVI 转 MP4,可手动上传与删除 - 使用 AMS 映射重新打印到任何已连接的打印机(自动匹配或手动选择槽位,多打印板支持,针对双喷嘴 H2D/H2D Pro 的喷嘴感知匹配,**支持耗材轨道切换 (FTS)** — 当安装了 FTS 附件时,每个喷嘴的过滤器会被禁用,因为 FTS 可以将任何 AMS 槽位路由到任一挤出机) - 多打印板归档的打印板缩略图浏览(鼠标悬停可在不同打印板之间导航) - 归档对比(并排差异对比) - 标签管理(在所有归档中重命名/删除) - **打印日志** — 所有打印活动的按时间顺序表视图,包含日期/时间、打印名称、打印机、用户、状态、时长和耗材列。支持按搜索内容、打印机、用户、状态和日期范围进行过滤。带有可配置页面大小的分页功能。清除按钮可删除日志条目而不影响归档。 ### 📊 监控与控制 - 通过 WebSocket 实时获取打印机状态 - 实时摄像头流 (MJPEG) 和快照,支持多查看者 — 大多数 Bambu 打印机只允许一个上游连接,因此 Bambuddy 将单一的共享流分发到所有浏览器标签页 / 卡片 / 覆盖层 - **长效摄像头令牌**,适用于 Home Assistant / Frigate / 信息亭 — 从 Settings → API Keys 铸造令牌,一次粘贴,有效期最长 365 天,随时可撤销(没有无限期令牌 — 泄露的永久令牌在设计上是不安全的) - **用于 OBS 的流媒体覆盖层** - 嵌入式页面,包含用于直播的摄像头和状态 (`/overlay/:printerId`),可配置 FPS (`?fps=30`),仅状态模式 (`?camera=false`) - 外部摄像头支持 (MJPEG, RTSP, HTTP 快照, USB/V4L2),支持基于层的延时摄影 - **空打印板检测** - 如果在打印板上检测到物体则自动暂停打印(多参考校准,ROI 调整) - 风扇状态监控(部件冷却、辅助、舱室) - 打印机控制(停止、暂停、恢复、舱室灯、打印速度、适用于 P2S/H2* 的**风道模式**、**打印板 Z 轴微调**,带有 Studio 风格的未回原点警告) - **打印机卡片上的状态徽章**:SD 卡(绿色/红色)、外壳门(绿色/黄色 — X1/P1S/P2S/H2*)、风道模式(冷却/加热) - **强制刷新** 菜单项 — 请求打印机推送完整状态而无需重新连接 - 批量打印机操作(多选卡片,然后全部停止/暂停/恢复/清除 — 按状态或位置选择) - 打印机搜索和过滤器 — 按名称/型号/位置/序列号实时搜索,以及状态和位置的下拉过滤器(WebSocket 响应式,对移动端友好) - 可调整大小的打印机卡片 (S/M/L/XL) - 在打印过程中跳过对象 - AMS 槽位 RFID 重新读取 - **从打印机卡片进行 AMS 槽位 Load / Unload** — 鼠标悬停在任何 AMS 槽位或外部料盘上,点击菜单按钮,即可加载该托盘或卸载当前已加载的料盘,无需去操作触摸屏;支持双挤出机 H2D(Ext-L / Ext-R 驱动各自的喷嘴) - AMS 槽位配置(按型号过滤的预设,K profiles,颜色选择器,为已配置的槽位预填充) - AMS 信息卡(鼠标悬停查看序列号、固件版本),带有可在不同打印机间保留的自定义友好名称 - **AMS 远程烘干** — 直接从打印机页面为 AMS 2 Pro 和 AMS-HT 启动、监控和停止烘干会话,提供基于耗材的温度/时长预设,可选料盘旋转;自动 PSU 检测和 HMS 电源错误报告 - **队列自动烘干** — 当湿度超过阈值时,在计划打印之间自动烘干耗材;每种耗材类型均可配置预设,可选阻塞模式 - **环境烘干** — 无论是否排队打印,根据湿度在空闲打印机上自动保持耗材干燥 - 每种耗材类型可配置的烘干预设(适用于 AMS 2 Pro 和 AMS-HT 的温度和时长) - H2D 的双外部料盘支持 (Ext-L / Ext-R) - HMS 错误监控,带有历史记录和一键清除错误功能 - 打印成功率与趋势 - 耗材使用量追踪 - 成本分析与失败分析 - **AI 打印失败检测** — 可选集成自托管的 [Obico](https://github.com/TheSpaghettiDetective/obico-server) ML API:监控每个正在运行的打印任务的摄像头画面,随时间平滑评分(30 帧预热 + EWM + 滚动平均),并在每次打印中触发一次可配置的操作(通知 / 暂停 / 暂停并关机) - 按用户过滤统计数据(需管理员权限) - 导出 CSV/Excel ### ⏰ 调度与自动化 - **后台打印调度** — FTP 上传和打印启动命令在后台运行,带有实时 WebSocket 进度 toast 提示(每个任务的上传进度条、状态徽章、取消按钮) - 支持拖拽的打印队列和时间轴计划视图 - 多打印机选择(同时发送到多台打印机) - 批量打印数量(打印多份 — 在打印/计划对话框中设置数量,第一份立即打印,其余加入队列) - 交错批量启动(按组启动打印机,具有可配置的间隔以避免功耗激增 — 在打印和队列对话框中均可使用) - 在 Settings → Workflow 中可配置的默认打印选项(热床调平、流量/振动校准、首层检测、延时摄影) - 基于型号的队列分配(发送至“任意 X1C”以实现负载均衡),支持位置过滤 - 基于型号的队列耗材覆盖(在计划前交换耗材颜色/类型) - 耗材验证(仅分配给具有所需耗材的打印机) - 优先使用剩余量最少的耗材(在多个匹配时优先消耗部分使用的料盘) - 每台打印机的 AMS 映射(针对打印农场的独立槽位配置) - 计划打印(/时间) - 最短作业优先调度(在队列页面开启 SJF 开关 — 调度器优先选择较短的打印,带有防止饿死机制) - 仅队列模式(暂存而不自动开始) - 排队打印之间的清理打印板确认(可在设置中禁用,以适应农场工作流) - 自动打印 G-code 注入(每种型号的起始/结束代码片段,适用于 Farmloop、SwapMod、AutoClear、Printflow 3D — 按队列项目切换) - 智能插座集成 (Tasmota, Home Assistant, MQTT, REST/Webhook) - REST 智能插座:通过 HTTP API 控制任何设备 (openHAB, ioBroker, FHEM, Node-RED),具有独立的电源/能耗 URL 和单位乘数 - MQTT 智能插座:订阅 Zigbee2MQTT、Shelly 或任何 MQTT 主题以进行能耗监控 - 能耗追踪(每次打印的 kWh 和成本) — 重启弹性:打印过程中的后端重启不再丢失单次打印的能耗数据 - 按日期范围统计能耗(今天 / 本周 / 本月 / …),通过每小时生命周期计数器快照在总消耗模式下显示 - 支持 HA 能耗传感器(适用于带有独立电源/能耗传感器的插座) - 打印前自动开机 - 冷却后自动关机 ### 📁 文件管理器 (库) - 上传并组织切片文件 (3MF, gcode, STL) - **挂载外部文件夹** - 挂载主机目录(NAS、USB、网络共享)而无需复制文件 - **STL 缩略图生成** - 上传时自动生成 STL 文件的预览,或为现有文件批量生成 - ZIP 文件解压,保留文件夹结构 - 提供从 ZIP 文件名创建文件夹的选项 - 支持拖拽的文件夹结构 - 通过上下文菜单重命名文件和文件夹 - 带有完整选项的直接打印到任何打印机 - 无需预先创建归档即可加入队列 - 多打印板 3MF 文件的打印板选择 - 通过文件哈希检测重复项 - 对移动端友好,带有始终可见的操作按钮 - **服务器端 Slice 按钮**(可选) — 当 [`slicer-api/` Compose stack](slicer-api/README.md) 运行时,无需桌面切片软件即可切片 STL/3MF;结果将作为新的 `.gcode.3mf` 文件保存在同一文件夹中,并通过跟踪任务直至完成的 toast 提示显示进度。支持导入 **Bambu Studio Printer Preset Bundles** (`.bbscfg`),从而可以在 Slice 对话框中挑选精心搭配的打印机 + 工艺 + 耗材组合,无需重新上传 JSON 配置文件([详情](https://wiki.bambuddy.cool/features/slicer-api/#slicer-bundles-bbscfg)) ### 🌍 MakerWorld 集成 - 粘贴任何 `makerworld.com/models/…` URL → 预览、打印板选择器,并在不离开 Bambuddy 的情况下导入 - 每个打印板可独立 **保存** 或 **在 Bambu Studio / OrcaSlicer 中保存并切片**(从设置中选择您偏好的切片软件) - 用于多打印板模型的 **导入所有打印板** 按钮 - 在文件管理器中自动创建“MakerWorld”文件夹;可通过选择器覆盖为任何现有文件夹 - 带有键盘导航灯箱效果的按打印板图像画廊 - 最近导入侧边栏 — 最近 10 次 MakerWorld 导入,可一键跳转到文件管理器或切片软件 - 针对已导入打印板的从库中删除功能,带有确认模态框(无需粘贴局域网 Cookie,无需浏览器扩展) - 复用您现有的 Bambu Cloud 登录 — 无需单独的 OAuth 流程或安装浏览器扩展 ### 📁 项目 - 将相关打印分组(例如,“Voron Build”) - 分别追踪打印板(打印任务)和部件 - 从 3MF 文件自动检测部件数量 - 带有颜色编码的项目徽章 - **项目 URL + 封面图片** — 粘贴 MakerWorld/Printables/Thingiverse 链接并上传一张主视觉图,让每张卡片一目了然;URL 渲染为项目名称旁的一键链接 - 通过多选工具栏批量分配归档 - 将项目导出/导入为 ZIP(包含文件)或 JSON - 直接在项目视图中从关联的库文件夹打印或排队文件(生成的归档会自动链接到该项目) ### 🔔 通知 - WhatsApp, Telegram, Discord - Email, Pushover, ntfy(带有按事件设置的优先级 — Min / Low / Default / High / Urgent) - Home Assistant 持久通知 - 自定义 Webhooks - 免打扰时段与每日摘要 - 可自定义的消息模板,带有每种耗材的详细使用量 - 通知中包含打印完成照片 URL - 在打印失败/取消通知中包含耗材使用量和进度 - **料盘分配缺失警告** — 当使用未分配的 AMS 托盘开始打印时,弹出 Toast 和推送通知 - HMS 错误警报(AMS、喷嘴等) - 打印板检测警报 - 首层完成警报(附带摄像头快照) - 热床冷却警报(可配置阈值) - 队列事件(等待、跳过、失败) ### 🧵 耗材库存 - 内置料盘库存,带有 AMS 槽位分配、使用量追踪和剩余重量管理 - 自动耗材消耗追踪:所有料盘主要使用 3MF 切片估算,AMS 剩余百分比 delta 作为后备 - 支持打印中途重新分配料盘:如果在打印过程中更改,则使用实时分配,否则使用快照 - 针对部分打印(失败/取消)的逐层 gcode 精度,并带有线性缩放后备方案 - **每盘料成本追踪** — 在每个料盘上设置成本/kg;成本在打印完成时自动计算并汇总到归档中。打印模态框显示实时成本预览。可在设置中配置默认成本和货币。 - **批量添加料盘** — 通过单次表单提交一次添加多个相同的料盘(数量 1-100)。快速添加模式适用于只需要材料、颜色和重量的库存料盘。 - 料盘目录、颜色目录、PA profile 匹配和低库存警报 - **多色渐变、透明度和视觉效果** — 粘贴以逗号分隔的十六进制颜色列表(例如,来自 3dfilamentprofiles.com)以将料盘渲染为渐变或锥形色轮;透明度通过棋盘格背景显示,您设置的透明度即为所见即所得;为色块叠加层挑选视觉效果(闪光、木纹、大理石、夜光、哑光)。相同的字段可在颜色目录中编辑,因此组合可以在不同料盘中重用。 - **可打印的料盘标签** — 为任何选定的料盘生成四种预置尺寸的 PDF 标签:AMS 支架 (30×15 mm)、盒子标签 (62×29 mm)、Avery L7160 标签纸 (A4,每页 21 张) 和 Avery 5160 标签纸 (US Letter,每页 30 张)。每个标签显示颜色样块、品牌、材料、名称、**料盘 ID**(方便在许多相似料盘中一目了然地识别)以及一个二维码,用手机扫描后可直接深度链接回 Bambuddy 中的料盘行。从库存页面选择 — 搜索、按材料过滤、多选料盘,然后打印或保存为 PDF。 ### 🔧 集成 - [Spoolman](https://github.com/Donkie/Spoolman) 耗材同步,带有每种耗材的使用量追踪和填充水平显示 - 为 Home Assistant、Node-RED 等发布 MQTT - **Prometheus 指标** - 导出打印机遥测数据以用于 Grafana 仪表板 - Bambu Cloud 配置文件管理 - **本地配置** - 导入 OrcaSlicer 预设 (`.orca_filament`, `.bbscfg`, `.bbsflmt`, `.zip`, `.json`),无需 Bambu Cloud - K-profiles (压力提前量) - **GitHub 备份** - 计划自动将云配置文件、k profiles 和设置备份到 GitHub - **计划的本地备份** - 按每小时/每天/每周计划自动备份快照,带有保留期管理和可挂载 NAS 的输出 - 外部侧边栏链接 - Webhooks 和 API 密钥 - 按用户划分所有权 — 每个密钥代表其创建者行事 - 可选的 **cloud-access 范围** — 选择加入以允许 API 密钥读取其所有者的 Bambu Cloud 预设 / 耗材目录 / 设备列表(默认关闭) - 带有实时测试的交互式 API 浏览器 ### 🖨️ 虚拟打印机与远程打印 - **🌐 Proxy Mode(代理模式)** — 通过安全的 TLS 中继从任何地方进行远程打印 - **🪞 非 Proxy Mode 下的实时目标打印机镜像(全新!)** — Immediate / Review / Queue 虚拟打印机现在将其目标打印机的实时状态镜像到切片软件:AMS 槽位内容、FTS / 双挤出机路由、k-profiles、AMS 加载/烘干/校准命令以及摄像头流均通过虚拟打印机传输。将切片软件作为虚拟打印机背后打印机的全功能远程控制器使用,同时不放弃 Bambuddy 的队列 / 归档 / 调度功能。 - 在您的网络上模拟 Bambu Lab 打印机 - 直接从 Bambu Studio/Orca Slicer 发送打印任务 - 可配置的打印机型号 (X1C, P1S, A1, H2D 等) - 归档模式、审核模式、队列模式或 Proxy Mode - 队列模式:可选的**强制颜色匹配**,以便调度器拒绝将任务分配给装载了错误耗材的打印机 - SSDP 发现(同一局域网)或手动输入 IP(VPN/远程) - 针对多网卡/Docker/VPN 设置的网络接口覆盖 - 安全的 TLS/MQTT/FTP 通信 ### 🛠️ 维护与支持 - 维护计划与追踪 - 间隔提醒(小时/天) - 打印时间准确度统计 - 用于打印机存储的文件管理器 - 带有版本徽章的固件更新助手(仅限局域网打印机) — 列出所有已发布的版本,带有可用/不可用/已安装徽章,并支持回退到较旧的固件 - 带有实时指示器的调试日志开关 - 带有过滤功能的实时应用日志查看器 - 支持包生成器,带有全面的诊断信息(经隐私过滤) - **应用内错误报告** — 直接从 UI 提交错误报告,支持可选的屏幕截图(上传、粘贴或拖放)、交互式调试日志捕获(开始记录、按自己的节奏重现、停止并提交)以及系统信息。报告通过安全中继创建 GitHub Issues。隐私优先:所有日志均经过脱敏处理,绝不包含敏感数据(IP、序列号、凭证)。 ### 🔒 可选的身份验证 - 随时启用/禁用身份验证 - 基于组的权限(80 多项精细权限) - 默认组:管理员、操作员、查看者 - JWT 令牌与安全的密码哈希 - 全面的 API 保护(200 多个端点受保护) - 用户管理(创建、编辑、删除、分组) - 用户活动追踪(谁上传了归档、库文件、排队打印、开始打印) - **按用户划分的 Bambu Cloud 账户** — 每个用户都有自己独立的云登录以获取配置文件 - **通过电子邮件进行高级身份验证** — SMTP 集成,用于自动化用户引导和自助密码重置 - 管理员使用电子邮件创建用户 — 系统自动发送安全的随机密码 - 用户可以从登录屏幕重置自己的密码(无需管理员介入) - 可自定义的电子邮件模板(欢迎电子邮件、密码重置) - **双重身份验证 (TOTP + Email OTP)** — 按用户选择开启的 2FA,兼容 Google Authenticator、Authy、2FAS 和任何标准的 TOTP 应用,或通过电子邮件发送的 6 位数字代码。每个用户获得 10 个一次性备用代码。防暴力破解保护(按用户 + 按 IP 速率限制)、防重放攻击保护(同一代码不能在同一个 30 秒窗口内被接受两次),且预认证令牌为基于数据库的一次性质询,通过 HttpOnly cookie 绑定到浏览器会话。 - **单点登录 (OIDC / SSO)** — 通过 PocketID、Authentik、Keycloak 或任何符合标准的 OIDC 提供商登录。针对公共客户端的 PKCE (S256)、`email_verified` 门控、签发者与 `aud`/`nonce` 验证、通过已验证电子邮件的可选账户关联、BamBuddy 新账户的可选自动开通,以及对从 OIDC 发现文档中提取的每个 URL 的严格 SSRF固(协议 + 私有/环回/链路本地 IP 检查)。 - **按用户发送电子邮件通知** — 用户接收其自己打印任务的电子邮件警报(开始、完成、失败、停止),带有独立的切换控制
**此外:** 可配置切片软件 (Bambu Studio / OrcaSlicer) • 可自定义主题(样式、背景、强调色) • 响应式移动端 • 键盘快捷键 • 多语言 (EN/DE/JA/IT) • 自动更新 • 数据库备份/还原 • 系统信息仪表板 ## 🎬 演示

Live Demo
Spin up your own private Bambuddy with simulated printers and pre-loaded print history. Click around freely — it's your sandbox. ~10 seconds to spawn, 30-minute session, no signup.

更喜欢视频演示?

Bambuddy Demo Video
Click to watch the demo on YouTube

## 📸 应用截图
点击展开截图

Printers
Real-time printer monitoring with AMS status

Archives
Print archive with 3D preview and project assignment

Reprint AMS Mapping
Re-print with AMS filament mapping preview

Timelapse Editor
Built-in timelapse editor with trim, speed, and music

Projects
Group related prints into projects

Project Detail
Project detail view with assigned archives

Project Detail Timeline
Project timeline and print history

Queue
Print scheduling and queue management

Schedule Print
Schedule prints for specific date and time

Statistics
Customizable statistics dashboard

Maintenance
Maintenance tracking per printer

Maintenance Settings
Configure maintenance types and intervals

Cloud Profiles
Bambu Cloud filament profiles

Cloud Profiles Edit
Edit filament preset settings

K-Profiles
Pressure advance (K-factor) profiles

K-Profiles Edit
Edit K-factor profile settings

Settings
General configuration and integrations

Smart Plugs
Smart plug control and energy monitoring

Notifications
Multi-provider notification system

API Keys
API keys and webhook endpoints

Virtual Printer Settings
Virtual printer configuration

Slicer Virtual Printer
Virtual printer appears in Bambu Studio/Orca Slicer

MQTT Debug Log
MQTT debug logging for troubleshooting

Quick Power Plug
Quick power plug control in sidebar

## 🚀 快速开始 ### 系统要求 - Python 3.10+(推荐 3.11/3.12) - 已启用**开发者模式**的 Bambu Lab 打印机(见下文) - 已在 Bambu Studio/OrcaSlicer 中启用**“将发送的文件存储在外部存储上”** - 与打印机在同一局域网内 ### 安装说明 #### Docker(推荐) **选项 A:预构建镜像(最快)** ``` mkdir bambuddy && cd bambuddy curl -O https://raw.githubusercontent.com/maziggy/bambuddy/main/docker-compose.yml docker compose up -d ``` **选项 B:从源代码构建** ``` git clone https://github.com/maziggy/bambuddy.git cd bambuddy docker compose up -d --build ``` 在浏览器中打开 **http://localhost:8000**。
Docker 配置与命令 **环境变量:** | Variable | Default | Description | |----------|---------|-------------| | `TZ` | `UTC` | 您的时区(例如,`America/New_York`,`Europe/Berlin`) | | `PORT` | `8000` | Bambuddy 运行的端口(使用主机网络模式时) | | `DEBUG` | `false` | 启用调试日志 | | `LOG_LEVEL` | `INFO` | 日志级别:`DEBUG`、`INFO`、`WARNING`、`ERROR` | **数据持久化:** | Volume | Purpose | |--------|---------| | `bambuddy.db` | 包含所有打印数据的 SQLite 数据库(使用 PostgreSQL 时无效) | | `archive/` | 归档的 3MF 文件和缩略图 | | `logs/` | 应用程序日志 | **更新:** ``` # 预构建镜像: 仅拉取最新版本 docker compose pull && docker compose up -d # 从源码构建: 拉取更改后重新构建 cd bambuddy && git pull && docker compose up -d --build ``` **每日 Beta 版本:** 带有最新修复的 Beta 版本会定期推送到相同的 beta 版本标签: ``` # 拉取当前 beta 版本 docker pull ghcr.io/maziggy/bambuddy:0.2.2b1 # 或从 Docker Hub docker pull maziggy/bambuddy:0.2.2b1 ``` 使用 [Watchtower](https://containrrr.dev/watchtower/) 在推送新的每日构建版本时自动更新。 **实用命令:** ``` # 查看日志 docker compose logs -f # 停止/启动 docker compose down docker compose up -d # Shell 访问 docker compose exec bambuddy /bin/bash ``` **自定义端口:** ``` ports: - "3000:8000" # Access on port 3000 ``` **反向代理 (Nginx):** ``` server { listen 443 ssl http2; server_name bambuddy.yourdomain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://localhost:8000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; 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; proxy_read_timeout 86400; } } ``` **主机网络模式**(打印机发现和摄像头流所需): ``` services: bambuddy: build: . network_mode: host ```
#### 手动安装 (Linux/macOS) ``` # Clone 与 setup git clone https://github.com/maziggy/bambuddy.git cd bambuddy python3 -m venv venv source venv/bin/activate pip install -r requirements.txt # 运行 uvicorn backend.app.main:app --host 0.0.0.0 --port 8000 ``` 打开 **http://localhost:8000** 并添加您的打印机! ### 启用开发者模式 开发者模式允许像 Bambuddy 这样的第三方软件通过局域网控制您的打印机。 1. 在打印机上:**设置** → **网络** → **LAN Only Mode(仅局域网模式)** → 启用 2. 启用**开发者模式**(在启用 LAN Only Mode 后出现) 3. 记下显示的**访问码** 4. 在网络设置中找到 IP 地址 5. 在设备信息中找到序列号 ### 切片软件设置 在 Bambu Studio 或 OrcaSlicer 中,启用**“将发送的文件存储在外部存储上”**,以便将打印文件 (3MF) 保存到打印机的 SD 卡中。Bambuddy 需要这些文件来提取缩略图和 3D 模型预览。 1. 打开 **Bambu Studio** 或 **OrcaSlicer** 2. 转到您打印机的 **设备** 选项卡 3. 在**打印选项**中,启用**将发送的文件存储在外部存储上** ## 📚 官方文档 完整文档可在 **[wiki.bambuddy.cool](http://wiki.bambuddy.cool)** 获取: - [安装说明](http://wiki.bambuddy.cool/getting-started/installation/) — 所有安装方法 - [入门指南](http://wiki.bambuddy.cool/getting-started/) — 首台打印机设置 - [功能特性](http://wiki.bambuddy.cool/features/) — 详细功能指南 - [故障排除](http://wiki.bambuddy.cool/reference/troubleshooting/) — 常见问题与解决方案 - [API 参考](http://wiki.bambuddy.cool/reference/api/) — REST API 文档 ## 🖨️ 支持的打印机 | 系列 | 型号 | |--------|--------| | X1 | X1, X1 Carbon, X1E | | X2 | X2D | | H2 | H2D, H2D Pro, H2C, H2S | | P1 | P1P, P1S | | P2 | P2S | | A1 | A1, A1 Mini | ## 🛠️ 技术栈 | 组件 | 技术 | |-----------|------------| | 后端 | Python, FastAPI, SQLAlchemy | | 前端 | React, TypeScript, Tailwind CSS | | 数据库 | SQLite (默认) 或 PostgreSQL | | 3D 查看器 | Three.js | | 通信 | MQTT (TLS), FTPS | ## 🤝 参与贡献 欢迎贡献!**我特别需要在文档和我们全新的 [Discourse 论坛](https://forum.bambuddy.cool) 方面的帮助** — 请参阅上面的[招募贡献者](#-contributors-wanted--help-shape-bambuddy)部分。其他帮助方式: 1. **📝 编写文档** — 改进 wiki 和指南*(急需!)* 2. **⚙️ 管理 Discourse** — 帮助配置和调整[论坛](https://forum.bambuddy.cool) *(急需!)* 3. **💬 担任版主** — 欢迎新人并维护[论坛](https://forum.bambuddy.cool)健康的讨论氛围 *(急需!)* 4. **测试** — 报告您的打印机型号的问题 5. **翻译** — 添加新语言 6. **编写代码** — 提交修复 Bug 或新功能的 PR 不确定从何开始?通过 [Discord](https://discord.gg/aFS3ZfScHM) 联系,在[论坛](https://forum.bambuddy.cool)上发帖,或者发送电子邮件至 **martin@bambuddy.cool** — 我会帮您找到适合的任务。 ``` # 开发设置 git clone https://github.com/maziggy/bambuddy.git cd bambuddy # Backend python3 -m venv venv && source venv/bin/activate pip install -r requirements.txt DEBUG=true uvicorn backend.app.main:app --reload # Frontend (单独终端) cd frontend && npm install && npm run dev ``` 有关指南,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 📄 许可证 AGPL-3.0 许可证 — 详见 [LICENSE](LICENSE)。 ## 🙏 致谢 - yanshay 开发的 [SpoolEase](https://github.com/yanshay/SpoolEase) — 基于 NFC 的料盘追踪和 AMS 库存概念的早期灵感 - [Bambu Lab](https://bambulab.com/) 制造了如此出色的打印机 - 逆向工程社区提供的协议文档 - 所有的测试人员和贡献者 ## 💖 支持 Bambuddy Bambuddy 之所以能保持独立,是因为有真实用户的直接支持。如果 Bambuddy 让您的打印机变得更加实用,请考虑支持我们: - **[GitHub Sponsors](https://github.com/sponsors/maziggy)** — 从 $5/月(Backer)到 $500/月(Corporate)的五个经常性赞助等级。Supporter+ ($15/月) 可访问包含每月通讯和早期发布说明的私人赞助者空间。Patron+ ($35/月) 可对季度路线图进行投票。Sustaining Sponsor+ ($150/月) 获得直接异步电子邮件技术支持专线(约 2-3 个工作日回复)。Corporate ($500/月) 获得优先电子邮件响应(下一个工作日)、README 页眉 Logo、[bambuddy.cool](https://bambuddy.cool) 全站页脚 Logo 以及[新闻页面](https://bambuddy.cool/press.html)展示。 - **[Ko-fi](https://ko-fi.com/maziggy)** — 一次性打赏或按月定期赞助。 赞助商名单列在 [BACKERS.md](BACKERS.md) 中。需要商业支持(SLA、多打印机咨询)?请发送电子邮件至 `martin@bambuddy.cool`。

用 ❤️ 为 3D 打印社区打造

论坛加入我们的 Discord报告 Bug功能建议官方文档

标签:3D打印, 3D打印机农场, Bambu A1, Bambu Lab, IoT管理, 仪表盘, 前端界面, 命令中心, 局域网管理, 开源, 打印机集群, 控制面板, 无云, 本地化控制, 测试用例, 物联网, 私有云, 私有化部署, 自助托管, 自托管, 设备管理, 请求拦截, 逆向工具, 防御规避