Bambuddy: свой сервер для Bambu Lab — печать без облака и архив заданий
Bambuddy ставится на ваш сервер и управляет принтерами Bambu Lab напрямую, без облака: архив 3MF с поиском, слайсинг на сервере, сушка AMS и proxy-режим для печати откуда угодно. Разбираем установку в Docker, выбор тарифа и реальные ограничения.
Bambuddy — панель управления принтерами Bambu Lab с открытым исходным кодом (лицензия AGPL-3.0), которую вы ставите на свой сервер: она говорит с принтером напрямую по MQTT и FTPS, ведёт архив 3MF с полнотекстовым поиском и умеет печатать откуда угодно без облачного аккаунта Bambu.
Проект молодой и растёт на глазах: репозиторий maziggy/bambuddy создан 28 ноября 2025 года, а на 9 августа 2026-го у него 2 756 звёзд, 361 форк и 124 открытых обращения. Последний стабильный выпуск — v1.2.5.2 от 2 августа 2026-го, плюс ежедневные бета-сборки: на момент проверки свежей была v1.2.6b1-daily.20260808. За восемь месяцев версия прошла путь от 0.1.x до 1.2.x — темп такой, что часть скриншотов в этой статье уже отстаёт от интерфейса на пару релизов.
Ниже — разбор без рекламы: что Bambuddy реально делает, что вы теряете при переходе, как поставить его через Docker, зачем тут нужен сервер с публичным адресом и на какие грабли наступают в первую неделю. Все цифры — из репозитория, документации и обращений в трекере, со ссылками.
Зачем свой сервер, если у Bambu Lab есть облако
Первая причина сугубо практическая. Облако Bambu Lab из России работает нестабильно: типовая история — принтер в списке есть, а команды не доходят, приложение отдаёт ошибку вида 0500-400B. Официальный дилер в РФ, 3D-Outlet, в такой ситуации сам рекомендует переводить принтер в LAN-режим и ставить европейскую прошивку. То есть от облака многие владельцы уже отказались — просто взамен не получили ничего, кроме голого локального управления из слайсера.
Вторая причина — идеологическая, и именно она подтолкнула сообщество. В мае 2026 года организация Software Freedom Conservancy публично разобрала претензии к Bambu Lab по нарушениям лицензии AGPLv3, и Hackaday в материале от 13 июня 2026 года прямо связывает это с мотивацией проекта: закрытая архитектура плюс жёсткое юридическое поведение производителя подталкивают людей писать свои инструменты.
Важно сразу очертить рамку. Bambuddy — не про доступ к чему-то закрытому и не про хитрости с сетью. Это программа, которая управляет вашим собственным принтером в вашей же локальной сети по документированному протоколу, который сам производитель включает переключателем Developer Mode. Всё, что она добавляет сверху, — это ваш сервер вместо чужого.
Для принтеров с Klipper и OctoPrint ту же задачу — дотянуться до принтера из другой сети — закрывают туннели и приватные сети — про них у нас есть отдельный разбор: удалённый доступ к 3D-принтеру. У Bambu Lab своя закрытая экосистема, поэтому здесь роль такого моста играет именно Bambuddy.
Что вы теряете и что нужно сделать до перехода
Это самый честный раздел статьи, и его стоит прочитать до того, как заказывать сервер. Переход на Bambuddy не бесплатен: вы меняете удобство приложения на контроль и отдаёте часть привычных возможностей.
Облачный аккаунт Bambu понадобится хотя бы один раз
Заводская настройка любого принтера Bambu Lab устроена так, что первичная привязка идёт через Bambu Handy или Bambu Studio с входом в облачный аккаунт и подтверждением прошивки. Пропустить этот шаг нельзя — он часть процедуры производителя. И только после него в меню принтера появляется возможность уйти в локальный режим. В комментариях к материалу Hackaday это отмечают как внутреннее противоречие проекта: чтобы отказаться от аккаунта Bambu, аккаунт Bambu сначала придётся завести.
Developer Mode против обычного LAN Only Mode
Тут постоянно путаются. LAN Only Mode сам по себе отключает облако, но стороннему ПО оставляет только чтение статуса — управлять печатью и передавать файлы оно не сможет. Полный локальный контроль даёт именно Developer Mode, отдельный переключатель, который появляется в меню только после включения LAN Only Mode. В README проекта это сформулировано прямо: «Standard LAN Mode (without Developer Mode) only allows read-only monitoring».
| Возможность | LAN Only Mode | LAN Only Mode + Developer Mode |
|---|---|---|
| Просмотр статуса из стороннего ПО | Да | Да |
| Управление печатью из Bambuddy | Нет | Да |
| Передача файлов по FTPS | Нет | Да |
| Виртуальный принтер и proxy-режим | Нет | Да |
| Облако Bambu и приложение Bambu Handy | Нет | Нет |
| Официальная поддержка в этом режиме | Ограниченно | Ограниченно |
Отдельно про гарантию: Bambu Lab нигде не объявляла включение Developer Mode основанием для отказа в гарантии — это штатный переключатель в меню, а не самодельная прошивка. Но пока он включён, вы отказываетесь от облака, от Bambu Handy и от привычного сценария обращения в поддержку «посмотрите, что у меня в облаке». Обзор HowToGeek формулирует то же самое короче: включение LAN и Developer Mode «locks you out of its mobile app entirely». Про то, как принтер обновляется в локальном режиме, у нас есть гайд по прошивке Bambu Lab.
SD-карта и одна опция в слайсере
Два требования, без которых Bambuddy просто не заработает, а причина будет неочевидной. Первое: в принтере должна стоять SD-карта — через неё идут передача файлов, запуск печати и архивирование. Второе: в Bambu Studio или OrcaSlicer нужно включить опцию «Store sent files on external storage» (вкладка Device → Print Options). Без неё принтер не сохраняет отправленные 3MF, а Bambuddy нечего разбирать — не будет ни превью, ни 3D-предпросмотра модели в архиве.
Что умеет Bambuddy
Быстрее всего понять масштаб — открыть demo.bambuddy.cool: личный экземпляр поднимается примерно за десять секунд, сессия живёт полчаса, принтеры симулированные, регистрация не нужна. Ниже — то, что в этом интерфейсе реально работает на боевом сервере.
Архив 3MF, поиск по истории и повторная печать
Каждое задание, отправленное на принтер, оседает в архиве вместе с метаданными: превью стола, число слоёв, высота слоя, использованные филаменты, длительность, расход в граммах и расчётная стоимость. Есть распознавание дублей, полнотекстовый поиск, теги, сравнение двух архивов бок о бок и 3D-предпросмотр модели прямо в браузере на Three.js. На карточке модели, которую печатали больше одного раза, появляется счётчик «N печатей», а по клику открывается журнал: каждая попытка отдельной строкой с датой, статусом, расходом и причиной сбоя — неудачный повтор на 10 г не затирает исходную удачную печать на 100 г, обе видны, а в сводке складываются в 110 г.
Повторная печать из архива делает то, чего не хватает в родном ПО: переназначает слоты AMS. Bambuddy сам сопоставляет филаменты задания с тем, что заряжено в принтере, показывает предупреждение «Color mismatch», если цвет не совпал, и позволяет переназначить слоты вручную. Поддерживаются проекты из нескольких столов и раздельные сопла H2D и H2D Pro.
Слайсинг прямо на сервере
Самая тяжёлая по ресурсам функция — и самая удобная. Рядом с Bambuddy поднимается отдельный небольшой контейнер slicer-api, внутри которого живёт OrcaSlicer или Bambu Studio в консольном режиме. После этого в файловом менеджере, архиве и при импорте с MakerWorld появляется кнопка Slice: закинули STL с телефона, нажали — и в той же папке лежит готовый .gcode.3mf. Профили берутся из импортированного набора .bbscfg, экспортированного из Bambu Studio, поэтому вместо возни с JSON вы просто выбираете тройку «принтер + профиль печати + филамент» из списка. Отдельно умеет пересчитать уже нарезанный архив под другой принтер — включая переход между одно- и двухсопловыми моделями, при котором детали автоматически переукладываются с поля 256×256 мм на 350×320 мм с учётом мёртвых зон каждого сопла.
Поверх этого есть пайплайны: сохранённый рецепт «принтер + профиль + филаменты по слотам AMS + тип стола» применяется к любому файлу в один клик. Рецепт можно привязать не к конкретной машине, а к классу («любой X1C») и разослать нужное число копий — планировщик сам разложит их по свободным принтерам. Если вы только осваиваете OrcaSlicer, начните с нашего разбора настроек OrcaSlicer — профили оттуда сюда переносятся один в один.
Мониторинг, камеры и графики
Статус приходит по WebSocket, без обновления страницы. Камера раздаётся хитро: принтер отдаёт один поток, поэтому Bambuddy забирает его один раз и размножает на все открытые вкладки, карточки и всплывающие окна — иначе второй зритель просто выбил бы первого. Для фермы есть режим «стены камер»: карточки превращаются в сетку плиток, живыми остаются первые четыре (лимит настраивается), остальные переходят на периодические снимки, а плитки за пределами экрана останавливаются совсем — чтобы Raspberry Pi не умер под нагрузкой.
Bambuddy пишет показания сопла, стола и внутренней камеры принтера раз в минуту и рисует по ним графики с окнами 6 часов, 24 часа, 48 часов и 7 дней — с текущим значением, средним, минимумом, максимумом и линией целевой температуры. То же самое для влажности и температуры AMS. Плюс статистика: доля удачных заданий, точность оценки времени, расход филамента по типам, потребление в кВт·ч и стоимость печати. Выгрузка в CSV и Excel на месте.
AMS: влажность, сушка и учёт катушек
Сушку AMS 2 Pro и AMS-HT можно запускать, останавливать и отслеживать из браузера — с пресетами по типу филамента, автоматическим определением блока питания и разбором ошибок питания HMS. Автосушка срабатывает между заданиями, когда влажность в блоке переваливает за порог, причём порог задаётся отдельно для каждого типа филамента — например, нейлон на 20%, PLA на 60%, ASA на 30%. Если в одном блоке лежат разные материалы, берётся самый строгий порог. На совместимых прошивках (H2D от 01.03.00.00, H2C, H2S, P2S и H2D Pro от 01.02.00.00, X2D и A2L от 01.01.00.00, X1C от 01.11.02.00) сушку можно не прерывать во время печати — температура при этом автоматически опускается на 5 °C ниже пресета для простоя, но не ниже 40 °C, чтобы катушки в прогретой камере не поплыли.
Учёт остатков едет через синхронизацию со Spoolman: каждая катушка привязывается к слоту AMS, расход списывается по факту, уровень заполнения виден на карточке. Про то, зачем вообще сушить пластик и при каких температурах, у нас есть отдельный разбор, а типовые проблемы самих блоков разобраны в гайде по неполадкам AMS.
Таймлапсы, проекты и напоминания об обслуживании
Встроенный редактор таймлапсов умеет обрезать ролик, менять скорость от 0,25× до 4× и накладывать звуковую дорожку; для принтеров серии P1 видео из AVI конвертируется в MP4 автоматически. Проекты собирают несколько деталей одной сборки в одну карточку с прогрессом «22 из 34». А раздел обслуживания считает наработку каждого принтера в часах и напоминает по интервалам: смазать направляющие, проверить натяжение ремней, почистить сопло, заменить фильтр HEPA — с отдельным счётчиком на каждую позицию.
Какие принтеры поддерживаются
| Серия | Модели |
|---|---|
| X1 | X1, X1 Carbon, X1E |
| X2 | X2D |
| H2 | H2D, H2D Pro, H2C, H2S |
| P1 | P1P, P1S |
| P2 | P2S |
| A1 | A1, A1 Mini |
| A2 | A2L |
То есть покрыт весь актуальный модельный ряд, от самого доступного бедслингера до двухсопловых машин. Интерфейс переведён на 13 языков — кроме английского, в репозитории лежат файлы для немецкого, испанского, французского, итальянского, японского, корейского, бразильского португальского, турецкого, украинского, двух вариантов китайского и, что приятно, русского.
Установка через Docker: пошагово
Docker — самый предсказуемый путь: образы собраны под linux/amd64 и linux/arm64, поэтому одинаково запускаются на арендованном сервере, домашнем мини-ПК, NAS, Raspberry Pi 4 и 5 и на Mac с процессором Apple. Веб-интерфейс поднимается на порту 8000.
Шаг 1. Включить Developer Mode на принтере
На экране принтера: Settings → Network → LAN Only Mode (только локальная сеть) — включить. После этого рядом появится переключатель Developer Mode — включить и его. Принтер покажет Access Code — код доступа ровно из восьми символов, запишите его. Там же, в сетевых настройках, посмотрите IP-адрес, а в информации об устройстве — серийный номер. Эти три значения понадобятся при добавлении принтера.
Шаг 2. Разрешить слайсеру писать файлы на SD-карту
В Bambu Studio или OrcaSlicer откройте вкладку Device для своего принтера и в блоке Print Options включите Store Sent Files on External Storage (сохранять отправленные файлы на внешний носитель). Шаг занимает пять секунд, но без него архив будет собирать только имена файлов — без превью и без модели.
Шаг 3. Запустить Bambuddy одной командой
Разработчик выкладывает интерактивный скрипт, который спрашивает путь установки, порт, адрес привязки и часовой пояс, качает docker-compose.yml, создаёт .env и поднимает контейнер:
curl -fsSL https://raw.githubusercontent.com/maziggy/bambuddy/main/install/docker-install.sh \
-o docker-install.sh && chmod +x docker-install.sh && ./docker-install.shЕсли вы не любите запускать чужие скрипты (и правильно делаете — сначала стоит открыть его и прочитать), тот же результат получается вручную: скачать готовый docker-compose.yml из репозитория и поднять контейнер.
mkdir bambuddy && cd bambuddy
curl -O https://raw.githubusercontent.com/maziggy/bambuddy/main/docker-compose.yml
docker compose up -d
# посмотреть, что происходит
docker compose logs -fДля автоматизации у обоих скриптов есть флаг --yes (согласиться со всеми умолчаниями) и флаги --path и --port. Обновление потом — две команды: docker compose pull && docker compose up -d. Обновиться из самого интерфейса в Docker-установке нельзя, только из командной строки.
Шаг 4. Host-режим или bridge — и почему это важно
По умолчанию в compose-файле стоит network_mode: host, и это осознанно: обнаружение принтеров по SSDP требует мультикаста, который обычная сеть Docker не пропускает. В host-режиме принтеры находятся сами, поток камеры работает, порты не нужно перечислять.
Bridge-режим обязателен в двух случаях. Первый — Docker Desktop на macOS и Windows: там контейнеры живут внутри Linux-виртуалки, и host-режим подключает вас к её сети, а не к вашей. Второй — многосервисный Linux-хост (NAS, Synology DSM, Unraid, домашний сервер), где нужные порты уже заняты другими контейнерами. В обоих случаях автообнаружение отваливается — принтеры добавляются вручную по IP, — и порты приходится перечислять руками.
| Порт | Протокол | Зачем нужен |
|---|---|---|
| 8000 | TCP | веб-интерфейс Bambuddy |
| 3000, 3002 | TCP | рукопожатие слайсера — разные версии Bambu Studio и OrcaSlicer используют разные порты |
| 990 | TCP/TLS | FTPS, управляющий канал передачи файлов |
| 8883 | TCP/TLS | MQTT — команды и статус принтера |
| 6000 | TCP/TLS | туннель передачи файлов |
| 322 | TCP/TLS | поток камеры RTSP для серий X1, H2 и P2 |
| 2024-2026 | TCP | фирменный протокол связи слайсера с A1 и P1S |
| 50000-50029 | TCP | пассивные данные FTP: по 10 портов на каждый виртуальный принтер |
| 2021 | UDP | обнаружение по SSDP — только внутри одной локальной сети |
Диапазон пассивных данных нарезан по 10 портов на виртуальный принтер: первому достаются 50000-50009, второму 50010-50019 и так далее. Открывайте ровно столько, сколько используете. В proxy-режиме исключение — там нужен полный диапазон 50000-50100, потому что Bambuddy прозрачно пробрасывает весь FTP-диапазон реального принтера, а не свой срез.
Шаг 5. Первый вход и добавление принтера
Откройте http://адрес-сервера:8000. В host-режиме на Linux сработает и localhost, на Docker Desktop — нет, там нужен адрес машины. Первым делом зайдите в настройки: выберите язык, часовой пояс, валюту, стоимость киловатт-часа и цену филамента за килограмм — от этих двух цифр считается вся экономика в статистике. Там же задаются пороги индикации влажности AMS (по умолчанию зелёный до 40%, оранжевый до 60%, выше — красный) и срок хранения истории датчиков, по умолчанию 30 дней.
Дальше — кнопка Add Printer. В host-режиме принтер, скорее всего, уже найден по SSDP: останется ввести код доступа. В bridge-режиме добавляйте вручную — IP, серийный номер, код доступа, модель. Авторизацию в Bambuddy включать не обязательно, но лучше включить сразу: группы прав (по умолчанию Administrators, Operators, Viewers), двухфакторная аутентификация по TOTP или коду на почту с десятью резервными кодами, при желании — вход через OIDC.
Шаг 6. Если ставите не в Docker
Для нативной установки на Linux или macOS нужен Python 3.10 и выше (рекомендуются 3.11 и 3.12), есть свой интерактивный скрипт install/install.sh, который сам определит пакетный менеджер, соберёт фронтенд на Node.js 22 и зарегистрирует службу systemd или launchd. Под Windows отдельная история — самодостаточный установщик .exe, который приносит с собой Python 3.13, собранный интерфейс и ffmpeg и ставит Bambuddy службой; данные ложатся в C:\ProgramData\Bambuddy\, обновление — запуск более свежего установщика поверх.
Если пишете юнит systemd руками, две строки решают всё. Первая — AmbientCapabilities=CAP_NET_BIND_SERVICE: виртуальный принтер слушает порты 990 и 322, оба ниже 1024, а обычному пользователю такие занимать нельзя. Без неё Bambuddy запустится и будет выглядеть работающим, но виртуальный принтер молча не поднимется, и слайсер его никогда не увидит — след останется одной строкой в journalctl. Вторая — запуск с --loop asyncio: цикл uvloop умеет обрывать загрузку файлов через виртуальный принтер на медленных дисках.
[Service]
ExecStart=/opt/bambuddy/venv/bin/uvicorn backend.app.main:app \
--host 0.0.0.0 --port 8000 --loop asyncio
Restart=always
RestartSec=10
# без этой строки виртуальный принтер не займёт порты 990 и 322
AmbientCapabilities=CAP_NET_BIND_SERVICEProxy-режим: печать откуда угодно без облака Bambu
Это главная функция, ради которой стоит поднимать Bambuddy не дома, а на сервере. Bambuddy умеет притворяться принтером Bambu Lab — создать виртуальный принтер, который слайсер видит как настоящий. У виртуального принтера четыре режима, и три из них про хранение: Immediate архивирует полученный файл сразу, Review откладывает на ручную проверку, Queue архивирует и ставит в очередь. Четвёртый, Proxy, работает иначе — он ничего не хранит, а прозрачно пробрасывает трафик на реальный принтер.
Технически это прозрачный TCP-прокси. FTP, туннель передачи файлов и поток камеры идут насквозь со сквозным TLS до самого принтера — Bambuddy их не расшифровывает. Расшифровывается только MQTT, и то по необходимости: в сообщениях нужно подменять IP-адрес, иначе слайсер попытается пойти напрямую на локальный адрес принтера, которого из внешней сети не существует. Код доступа вводится тоже принтерный, никаких дополнительных паролей заводить не нужно.
| Возможность | Immediate / Review / Queue | Proxy |
|---|---|---|
| Файлы хранятся в Bambuddy | Да | Нет |
| Отправляет задание на реальный принтер | Нет | Да |
| Печать из другой сети | Нет | Да |
| Нужно выбрать целевой принтер | Нет | Да |
| Какой код доступа вводить в слайсере | код Bambuddy | код принтера |
| Пауза, продолжение и стоп из слайсера | Нет | Да |
| Можно отправить, пока принтер занят | Да | Нет |
Почему для этого нужен именно сервер, а не Raspberry Pi дома
Схема работает, когда слайсер может достучаться до Bambuddy из любой точки. Домашний Pi за роутером провайдера этого не даёт: у большинства домашних подключений сегодня нет собственного публичного адреса, а даже когда он есть — пробрасывать придётся восемь позиций (3000, 3002, 990, 8883, 6000, 322, диапазон 2024-2026 и диапазон 50000-50100), и все они окажутся открыты наружу. Отсюда два разумных пути.
- Приватная сеть между своими устройствами. Ноутбук и сервер оказываются в одной закрытой сети со сквозным шифрованием, публичных портов нет вообще. Самый простой путь для большинства.
- Арендованный сервер с публичным адресом. Bambuddy живёт на нём, принтер подключается к нему же, слайсер ходит по постоянному адресу. Подходит, когда принтеров несколько или они стоят не там, где вы.
Сертификат в слайсер — обязательный шаг, который все пропускают
Bambu Studio и OrcaSlicer проверяют сертификат принтера не по системному хранилищу, а по вшитому файлу printer.cer с сертификатами Bambu. Виртуальный принтер Bambuddy подписан собственным самоподписанным центром сертификации, поэтому его сертификат нужно дописать в этот файл вручную. Иначе слайсер выдаст невнятное Connect <имя> failed! [SN:<###>, code=-1], по которому невозможно догадаться о причине.
Сам файл скачивается кнопкой в разделе Settings → Virtual Printer (там же показан отпечаток SHA-256, чтобы потом сверить). Дописывать лучше командой, а не в текстовом редакторе: TextEdit на macOS и «Блокнот» на Windows умеют испортить PEM переносами строк и «умными» кавычками.
# macOS, OrcaSlicer — сначала копия, потом дозапись
cp -v /Applications/OrcaSlicer.app/Contents/Resources/cert/printer.cer \
/Applications/OrcaSlicer.app/Contents/Resources/cert/printer.cer.bak
sed -i '' '$a\' /Applications/OrcaSlicer.app/Contents/Resources/cert/printer.cer
cat ~/Downloads/bambuddy-virtual-printer-ca.crt \
>> /Applications/OrcaSlicer.app/Contents/Resources/cert/printer.cer
# проверить, что сертификат встал последним
while openssl x509 -noout -subject -dates -sha256 -fingerprint; do :; done \
< /Applications/OrcaSlicer.app/Contents/Resources/cert/printer.cerПроцедуру придётся повторять после каждого обновления слайсера (установщик возвращает исходный файл), при переустановке Bambuddy (каждая установка генерирует свой центр сертификации) и при переезде на другой сервер. Если серверов несколько, проще один раз скопировать каталог virtual_printer/certs/ с первого на остальные — тогда сертификат будет общий. После правки слайсер надо закрыть полностью, а не свернуть.
Если принтер в слайсере так и не появился, не гадайте: на карточке каждого виртуального принтера есть кнопка со стетоскопом — встроенная диагностика. Она отдельно проверяет, включён ли виртуальный принтер, запустились ли его службы, жив ли выбранный сетевой интерфейс (частая причина — сервер получил другой адрес по DHCP), задан ли код доступа, доступен ли целевой принтер, реально ли кто-то слушает порты 990, 8883 и 3002 и лежит ли на диске цепочка сертификатов.
Приватная сеть между своими устройствами
У Bambuddy есть готовая интеграция с Tailscale — сервисом, который собирает ваши личные устройства в одну закрытую сеть со сквозным шифрованием. Работает она скромно и честно: по включении переключателя на карточке виртуального принтера Bambuddy опрашивает локальную службу tailscaled, забирает адрес вида 100.x.x.x и имя устройства и показывает их прямо на карточке с кнопкой копирования — чтобы было что вставить в слайсер. Кэш ответа — 60 секунд. Сам Bambuddy в эту сеть не вступает и никаких своих компонентов внутрь не ставит. По описанию в блоге Tailscale от 13 мая 2026 года, вся интеграция — около 200 строк на Python.
Практический смысл: ноутбук и сервер видят друг друга напрямую, ни одного порта наружу открывать не надо, слайсер подключается к адресу 100.x.x.x ровно так же, как к принтеру в домашней сети. Автор проекта Мартин Циглер объясняет мотивацию просто: чаще всего его спрашивали, как печатать на свой Bambuddy с рабочего ноутбука, ничего не выставляя в интернет.
Одно ограничение стоит знать заранее: автоматический HTTPS такой сети слайсеру не поможет, и дописать сертификат Bambuddy в printer.cer всё равно придётся. Причин две, и обе на стороне слайсера — он проверяет сертификаты только по вшитому хранилищу Bambu, а в диалоге добавления принтера принимает исключительно IP-адрес, не имя хоста. Из-за этого идея выдавать каждому виртуальному принтеру отдельный подписанный сертификат так и осталась нереализованной.
Выбор сервера: сколько памяти и диска нужно на самом деле
Здесь придётся быть честным: официальных системных требований у Bambuddy нет. Ни README, ни документация на wiki.bambuddy.cool, ни сайт проекта не называют ни одной цифры по памяти, процессору или диску — там перечислены только площадки (Docker, Pi 5, NAS, мини-ПК) и выбор базы данных: встроенная SQLite или внешняя PostgreSQL. Поэтому оценку приходится собирать из косвенных сигналов, зато они вполне конкретные.
- Слайсинг на сервере — самая тяжёлая задача. Это не разовая утилита, а полноценный OrcaSlicer в консольном режиме, который считает траектории и генерирует G-код; на проекте из нескольких столов он занимает и процессор, и память надолго.
- Камеры и виртуальные принтеры исторически ели память гигабайтами. В обращении #2734 (31 июля 2026 года, закрыто 2 августа) память росла неограниченно: до ~14,5 ГБ 27 июля и до ~15,7 ГБ 31 июля на хосте с 31 ГБ за один-четыре дня работы. Механизм ядра OOM-killer семь раз за три с половиной часа убивал посторонние процессы — под раздачу попали navidrome, jellyfin и чужой поток камеры. Автор обращения отметил сходство с обращением #776, закрытым как исправленное в марте 2026-го, то есть это была регрессия.
- Открытые порты тоже стоят памяти. Тот самый случай с диапазоном в 1001 порт и ~3,5 ГБ на служебные процессы Docker (обращение #1646).
- Диск копится месяцами. Архив хранит каждый 3MF с превью, плюс таймлапсы, плюс фото завершения печати, плюс история показаний датчиков (по умолчанию 30 дней, настраивается).
Оба случая разобраны и закрыты, но вывод из них простой и не устаревает: части системы, работающие с видео и виртуальными принтерами, к памяти прожорливы, и запас тут не роскошь. Отсюда две рекомендации по тарифам — та же логика, что в нашем разборе своего сервера для 3D-печати: лёгкий сценарий на младшем тарифе, тяжёлый — на следующем.
- Один-два принтера, мониторинг + архив + proxy-режим, слайсинг на своём компьютере. Хватает 2 ГБ памяти и 30 ГБ диска. Это тариф Promo — 429 ₽ в месяц.
- Серверный слайсинг, несколько виртуальных принтеров одновременно, камеры или рост до фермы. Берите 4 ГБ памяти и 60 ГБ диска — тариф Micro, 799 ₽ в месяц.
| Тариф | Процессор | Память | Диск | Резервные копии | Цена в месяц |
|---|---|---|---|---|---|
| Lite | 1 × 3,6 ГГц | 1 ГБ | 15 ГБ NVMe | платно | 299 ₽ |
| Promo | 1 × 3,6 ГГц | 2 ГБ | 30 ГБ NVMe | бесплатно | 429 ₽ |
| Micro | 2 × 3,6 ГГц | 4 ГБ | 60 ГБ NVMe | бесплатно | 799 ₽ |
| Start | 4 × 3,6 ГГц | 8 ГБ | 80 ГБ NVMe | бесплатно | 1 289 ₽ |
Цены сверены на adminvps.ru 9 августа 2026 года, линейка «Стандартные 3,6 ГГц». На Lite с его гигабайтом памяти Bambuddy формально запустится, но при первом же серверном слайсинге или паре камер упрётся в потолок — и промокоды на этот тариф всё равно не действуют.
Принтер под контролем из любой точки
Удалённый доступ к Klipper и OctoPrint, ИИ-мониторинг печати и своя библиотека моделей — на VPS от 172 ₽ в первый месяц.
- NVMe-диски
- Анти-DDoS
- Поддержка 24/7
- 🇷🇺 🇩🇪 🇳🇱 7 локаций
Первый месяц по промокоду, дальше от 429 ₽/мес — тариф Promo: 2 ГБ RAM, 30 ГБ NVMe, бэкапы включены.
Покупка по ссылке поддерживает Printer Hub 🤝
На карточке выше — базовый Promo: 2 ГБ памяти и 30 ГБ диска, 429 ₽ в месяц, с промокодом первый месяц выходит в 172 ₽. Этого достаточно для мониторинга, архива и proxy-режима на один-два принтера. Если планируете нарезать модели прямо на сервере или держать несколько виртуальных принтеров разом — доплатите до Micro за 799 ₽ в месяц: там 4 ГБ памяти, 60 ГБ диска и второе ядро, и именно они спасают, когда слайсер и камера работают одновременно.
На что обратить внимание: грабли и ограничения
CVE-2026-25505: почему нельзя выставлять интерфейс наружу
Второго февраля 2026 года для Bambuddy опубликовали описание критической уязвимости CVE-2026-25505 с оценкой 9,8 из 10. Суть в двух частях. Первая: секрет для подписи токенов авторизации был захардкожен в исходном коде строкой bambuddy-secret-key-change-in-production — то есть любой человек мог подписать себе токен администратора для любого чужого экземпляра. Вторая: многие маршруты API вообще не проверяли авторизацию, и запрос к /api/v1/system/info без всякого заголовка возвращал ответ с кодом 200 и данными о системе.
Исправлено в версии 0.1.7, то есть больше полугода назад, и текущая 1.2.5.2 ушла далеко вперёд. Но история задаёт три правила, которые стоит соблюдать независимо от версии. Первое: обновляться, а не ставить один раз и забыть. Второе: не открывать веб-интерфейс в интернет без собственной авторизации на реверс-прокси — сам Bambuddy отдаёт строгие заголовки против встраивания в чужие страницы, но это не замена ограничению доступа. Третье: раздавая ключи API для Home Assistant или вебхуков, давать им минимальные права — ключ работает от имени своего создателя, а доступ к облачным профилям Bambu по умолчанию выключен, включать его без нужды не стоит.
Отдельно отметим: автор проекта сам ищет человека, который будет постоянно смотреть за безопасностью ветки разработки — соответствующее объявление висит прямо в README. Это скорее хороший знак, чем плохой, но говорит о зрелости проекта честнее любых обещаний.
Одно управляющее подключение за раз
Самая частая жалоба и самое неприятное ограничение — оно на стороне прошивки принтера, а не Bambuddy. Большинство машин Bambu отдают одно исходящее подключение, и если Bambuddy работает круглосуточно, это подключение занято им. Читатель Hackaday под ником doobs описал ситуацию буквально так: принтер можно подключить только к одной программе за раз, а Bambuddy включён всегда — значит, это он. Параллельно работать в официальном слайсере не выйдет, придётся переключаться вручную. Именно из-за этого ограничения Bambuddy и раздаёт один поток камеры на все вкладки — второго подключения к камере у него просто нет.
Канал данных FTP не шифруется на стороне слайсера
Неочевидная деталь, о которой документация Bambuddy честно предупреждает. Реализация FTP в Bambu Studio договаривается о защищённой передаче данных, но по факту отправляет содержимое файла открытым текстом. Управляющий канал MQTT при этом полностью в TLS: команды и статус защищены. Практический вывод: сами файлы 3MF между слайсером и Bambuddy идут незашифрованными, поэтому выставлять proxy-режим напрямую в интернет — плохая идея. Заворачивайте его в приватную сеть между своими устройствами или в туннель — способы разобраны в гайде по удалённому доступу.
Только Bambu Lab, и модели только с MakerWorld
Bambuddy принципиально однобрендовый: принтеры на Klipper, OctoPrint и машины других производителей он не увидит. Если парк смешанный, придётся держать два инструмента. Импорт моделей тоже ограничен: интеграция сделана только с MakerWorld, а Thingiverse и Printables приходится качать вручную и загружать файлом — это открытое предложение #2793 от 8 августа 2026 года, автор которого сразу приложил ссылку на официальный REST API Thingiverse.
Своей нейросети для распознавания сбоев нет — но есть подключение к чужой
Здесь важно не перепутать. Собственной модели, которая распознаёт «макаронник» по картинке с камеры, у Bambuddy нет. Зато есть опциональная интеграция с ML-API Obico, поднятым на своём же сервере: Bambuddy смотрит поток камеры, сглаживает оценку по времени (30 кадров прогрева, экспоненциальное и скользящее усреднение) и один раз за печать выполняет выбранное действие — уведомить, поставить на паузу или поставить на паузу и обесточить принтер розеткой. То есть распознавание сбоев вы получаете, но ставить и обслуживать нейросеть придётся отдельно — как это делается, разобрано в нашем гайде по своему серверу 3D-печати с Obico. Заодно есть более простой механизм без нейросети: проверка пустого стола не даст стартовать печати, если на столе остались детали.
Актуальные открытые баги
На 9 августа 2026 года в трекере 124 открытых обращения, и подавляющее большинство — предложения новых функций, а не поломки. Из реальных дефектов, которые могут вас коснуться:
- #2796 (8 августа 2026) — API архивов всегда возвращает
plate_id: null, хотя в базе поле заполнено: у автора обращения 181 запись из 257 имеет непустое значение. Задевает только тех, кто дёргает API снаружи; в интерфейсе не видно. - #2780 (6 августа 2026) — на части принтеров архив собирает только имя файла без остальных данных. Воспроизводится на P2S и H2C при отправке через виртуальный принтер в proxy-режиме, при этом на других машинах того же владельца всё в порядке.
- #2774 (6 августа 2026) — сушка на AMS HT: пользователь выбирает в Bambuddy профиль PLA, тот выставляет 45 °C на 12 часов, но панель принтера продолжает показывать ранее заданный профиль поддержек для PLA/PETG. Причина в том, что этого профиля нет в списке Bambuddy, и обратно он его не переключает.
- #2761 (4 августа 2026) — в нетипичных развёртываниях (Kubernetes, отдельный прокси перед сервером) слайсеру сообщается адрес привязки, а не тот, по которому он реально пришёл. Просят возможность задать адрес вручную.
На этот случай в Bambuddy встроена отправка отчётов об ошибках прямо из интерфейса — со скриншотом, записью отладочного журнала (включили, воспроизвели, остановили) и сведениями о системе; из логов при этом вырезаются адреса, серийные номера и учётные данные. Плюс есть просмотр журнала MQTT в реальном времени — по нему видно, что именно принтер отвечает на команды.
Ферма: когда принтеров больше одного
Hackaday оценивает рабочий диапазон Bambuddy как «от одного до сорока принтеров» — это оценка автора статьи, а не заявленный лимит проекта: никаких ограничений на количество машин в коде нет. Сам разработчик формулирует шире: «от одного A1 до целой фермы».
Всё, что Bambuddy запускает, — отправка из файлового менеджера, повтор из архива, загрузка прямо с карточки принтера, задание по расписанию — проходит через одну очередь. Значит, у каждой печати есть автор, её видно в общем списке, она проверяется на нехватку филамента и отменяется из одного места. Очередь показывается тремя вкладками (текущая, история, диаграмма по времени), задания переставляются перетаскиванием, проекты из нескольких столов сами сворачиваются в одну строку-группу.
Планировщик умеет две полезные для фермы вещи. Первая — «запускать, как только принтер освободится», без указания времени. Вторая — условие «только если предыдущая печать прошла успешно»: если предыдущая деталь сорвалась, серия останавливается, а не печатает двадцать бракованных копий в пустоту. Плюс галочка «обесточить принтер по завершении» — на ней и строятся ночные сценарии.
Розетки — вторая половина автоматики. Bambuddy работает с умными розетками на Tasmota, через MQTT, REST-запросы и Home Assistant: показывает текущую мощность (на скриншоте — 218 Вт с двух розеток), считает киловатт-часы за сегодня, вчера и всё время и переводит их в деньги по заданному тарифу. Каждую розетку можно связать с конкретным принтером и включать её при старте печати, а выключать по завершении.
Насколько далеко это заходит, показывает пример из обзора HowToGeek: владелец фермы из более чем 70 принтеров доработал Bambuddy так, чтобы подсветка внутри камеры гасла через пять минут после старта печати, включалась по её завершении и мигала при ошибке. В итоге статус всего ряда машин виден одним взглядом, без единого экрана. Исходный код открыт по лицензии AGPL-3.0 — такие доработки легальны и технически несложны. Там же честная оговорка: Bambuddy «не прямая замена» родному ПО фермы, хотя закрывает многое из того же.
Для парка одинаковых машин есть ещё пайплайны с привязкой к классу принтеров и раздача копий: «нарезать один раз и разложить 12 копий по всем свободным X1C» — с выбором стратегии (разложить максимально широко ради скорости, отдать всё одному принтеру ради экономии на сменах цвета или по одной копии на машину). Отдельная вкладка показывает ход каждого запуска, а кнопка повтора перезапускает только те копии, которые не доехали, — успешные не печатаются заново.
Экономика: сколько это стоит в год
Сама программа бесплатна и останется такой — лицензия AGPL-3.0 этого требует. Проект живёт на пожертвованиях: подписки от 5 до 300 долларов в месяц через GitHub Sponsors и разовые через Ko-fi, причём начиная с 35 долларов спонсоры голосуют за квартальный план работ. Так что единственная обязательная статья расходов — сервер.
Считаем на год. Promo при оплате за 12 месяцев обойдётся в 4 376 ₽ вместо 5 148 ₽ по помесячной цене — это 365 ₽ в месяц. Micro за год — 8 150 ₽ вместо 9 588 ₽, то есть 679 ₽ в месяц. Для сравнения: один сорванный на двенадцатом часу отпечаток обойдётся примерно в месяц такой аренды.
Промокоды ниже действуют на все тарифы, кроме Lite, применяются к одному серверу в заказе, складываются со скидками сайта и активируются по одному разу — каждый на свой срок оплаты. Если пробуете впервые, берите ph-60: минус 60% на первый месяц, дальше решите, нужно ли продолжать.
| Промокод | Скидка | Срок оплаты |
|---|---|---|
| ph-60 | 60% на первый месяц | 1 месяц |
| ph-30 | 30% на первый месяц | 1 месяц |
| ph-3-20 | 20% на первые 3 месяца | 3 месяца |
| ph-6-15 | 15% на первые 6 месяцев | 6 месяцев |
| ph-1-5 | 5% на первый год | 1 год |
Принтер под контролем из любой точки
Удалённый доступ к Klipper и OctoPrint, ИИ-мониторинг печати и своя библиотека моделей — на VPS от 172 ₽ в первый месяц.
- NVMe-диски
- Анти-DDoS
- Поддержка 24/7
- 🇷🇺 🇩🇪 🇳🇱 7 локаций
Первый месяц по промокоду, дальше от 429 ₽/мес — тариф Promo: 2 ГБ RAM, 30 ГБ NVMe, бэкапы включены.
Покупка по ссылке поддерживает Printer Hub 🤝
Ещё раз, чтобы не было путаницы: на карточке — тариф Promo с 2 ГБ памяти, его цена 429 ₽ в месяц и 172 ₽ по промокоду в первый месяц. Это конфигурация под мониторинг, архив и proxy-режим. Тариф Micro за 799 ₽ в месяц — отдельная позиция для тех, кто нарезает модели на сервере или растит ферму; промокоды на него тоже действуют, но итоговая сумма будет считаться от 799 ₽, а не от 429 ₽.
Обслуживание: обновления, копии и уведомления
Проект выпускает ежедневные бета-сборки, но они помечены отдельными тегами и никогда не попадают в latest — стабильная установка сама на бету не переедет. Обновление в Docker: docker compose pull && docker compose up -d. Если в вашем compose-файле жёстко прописана версия, сначала поменяйте её на нужную — иначе pull просто заберёт тот же самый образ. Сам Bambuddy подсказывает точную команду в разделе обновлений и даёт кнопку копирования.
Резервные копии делаются по расписанию — почасовому, ежедневному или еженедельному, с управлением сроком хранения и возможностью писать снимки на сетевое хранилище. Отдельно можно выгружать в GitHub облачные профили, K-профили и настройки. Восстановление — из интерфейса, а при внешней PostgreSQL — через штатные pg_dump и pg_restore.
Уведомления — то, ради чего многие и ставят панель. Провайдеров восемь: Telegram, Discord, WhatsApp, электронная почта, Pushover, ntfy, Home Assistant и произвольные вебхуки. События настраиваются по отдельности: старт, завершение, сбой, остановка, вехи прогресса (25%, 50%, 75%), принтер офлайн, ошибка принтера, мало филамента, подошло обслуживание, превышена влажность или температура AMS. Есть тихие часы и ежедневная сводка, а тексты сообщений редактируются шаблонами.
И последнее по списку, но не по пользе — раздел обслуживания. Он считает наработку каждого принтера в часах и ведёт отдельный счётчик по каждой процедуре: смазка направляющих, натяжение ремней, чистка сопла, чистка стола, карбоновые стержни, трубка PTFE, фильтр HEPA. По каждой видно, сколько осталось — «86 часов» или «3 месяца». Для одного принтера это приятная мелочь, для десяти — единственный способ не пропустить регламент.
Частые вопросы
Источники
- Репозиторий maziggy/bambuddy — README, список выпусков, поддерживаемые принтеры (данные сверены 9 августа 2026 года)
- wiki.bambuddy.cool — установка, виртуальный принтер, порты, импорт сертификата, диагностика
- GHSA-gc24-px2r-5qmf — уязвимость CVE-2026-25505, опубликована 2 февраля 2026 года
- Hackaday, 13 июня 2026 — обзор и комментарии читателей про одно подключение за раз
- XDA-Developers — опыт с Bambu Lab P2S, оценка минусов проекта
- MakeUseOf — для кого Bambuddy не подходит
- HowToGeek — ферма из 70+ принтеров и автоматика подсветки
- Блог Tailscale, 13 мая 2026 — устройство интеграции и её ограничения
- Обращения в трекере проекта: #2734 (рост потребления памяти), #1646 (служебные процессы Docker), #2796, #2780, #2774, #2793, #2761
Команда Printer Hub
Изучаем официальную документацию и инструкции производителей, тестируем моды на реальных принтерах и анализируем опыт сообщества Reddit, Telegram, Printables и YouTube.