Главный экран Bambuddy: карточки принтеров Bambu Lab со статусом, температурами и слотами AMS
Главный экран Bambuddy: два принтера, температуры, слоты AMS с влажностью и потребление розеток — всё на своём сервере

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 ModeLAN Only Mode + Developer Mode
Просмотр статуса из стороннего ПОДаДа
Управление печатью из BambuddyНетДа
Передача файлов по FTPSНетДа
Виртуальный принтер и proxy-режимНетДа
Облако Bambu и приложение Bambu HandyНетНет
Официальная поддержка в этом режимеОграниченноОграниченно
Просмотр статуса из стороннего ПО
LAN Only Mode: Да · LAN Only Mode + Developer Mode: Да
Управление печатью из Bambuddy
LAN Only Mode: Нет · LAN Only Mode + Developer Mode: Да
Передача файлов по FTPS
LAN Only Mode: Нет · LAN Only Mode + Developer Mode: Да
Виртуальный принтер и proxy-режим
LAN Only Mode: Нет · LAN Only Mode + Developer Mode: Да
Облако Bambu и приложение Bambu Handy
LAN Only Mode: Нет · LAN Only Mode + Developer Mode: Нет
Официальная поддержка в этом режиме
LAN Only Mode: Ограниченно · LAN Only Mode + Developer Mode: Ограниченно

Отдельно про гарантию: 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-предпросмотра модели в архиве.

Выполнено: 0 из 6

Что умеет Bambuddy

Быстрее всего понять масштаб — открыть demo.bambuddy.cool: личный экземпляр поднимается примерно за десять секунд, сессия живёт полчаса, принтеры симулированные, регистрация не нужна. Ниже — то, что в этом интерфейсе реально работает на боевом сервере.

Архив 3MF, поиск по истории и повторная печать

Каждое задание, отправленное на принтер, оседает в архиве вместе с метаданными: превью стола, число слоёв, высота слоя, использованные филаменты, длительность, расход в граммах и расчётная стоимость. Есть распознавание дублей, полнотекстовый поиск, теги, сравнение двух архивов бок о бок и 3D-предпросмотр модели прямо в браузере на Three.js. На карточке модели, которую печатали больше одного раза, появляется счётчик «N печатей», а по клику открывается журнал: каждая попытка отдельной строкой с датой, статусом, расходом и причиной сбоя — неудачный повтор на 10 г не затирает исходную удачную печать на 100 г, обе видны, а в сводке складываются в 110 г.

Архив 3MF в Bambuddy: карточки моделей с превью, тегами и историей печати
Архив 3MF: фильтры по принтеру, материалу, цвету и тегам, контекстное меню с повторной печатью, таймлапсом и открытием в Bambu Studio

Повторная печать из архива делает то, чего не хватает в родном ПО: переназначает слоты AMS. Bambuddy сам сопоставляет филаменты задания с тем, что заряжено в принтере, показывает предупреждение «Color mismatch», если цвет не совпал, и позволяет переназначить слоты вручную. Поддерживаются проекты из нескольких столов и раздельные сопла H2D и H2D Pro.

Повторная печать из архива с переназначением слотов AMS
Повторная печать: выбор принтера, проверка филамента и ручное переназначение слотов AMS

Слайсинг прямо на сервере

Самая тяжёлая по ресурсам функция — и самая удобная. Рядом с 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 на месте.

Статистика Bambuddy: расход филамента, стоимость печати и доля удачных заданий
Панель статистики: доля удачных печатей, точность оценки времени, расход по типам филамента и стоимость электричества

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 — с отдельным счётчиком на каждую позицию.

Встроенный редактор таймлапсов Bambuddy
Редактор таймлапсов: обрезка, скорость от 0,25× до 4× и наложение звуковой дорожки

Какие принтеры поддерживаются

СерияМодели
X1X1, X1 Carbon, X1E
X2X2D
H2H2D, H2D Pro, H2C, H2S
P1P1P, P1S
P2P2S
A1A1, A1 Mini
A2A2L
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 и поднимает контейнер:

bash
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 из репозитория и поднять контейнер.

bash
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, — и порты приходится перечислять руками.

ПортПротоколЗачем нужен
8000TCPвеб-интерфейс Bambuddy
3000, 3002TCPрукопожатие слайсера — разные версии Bambu Studio и OrcaSlicer используют разные порты
990TCP/TLSFTPS, управляющий канал передачи файлов
8883TCP/TLSMQTT — команды и статус принтера
6000TCP/TLSтуннель передачи файлов
322TCP/TLSпоток камеры RTSP для серий X1, H2 и P2
2024-2026TCPфирменный протокол связи слайсера с A1 и P1S
50000-50029TCPпассивные данные FTP: по 10 портов на каждый виртуальный принтер
2021UDPобнаружение по SSDP — только внутри одной локальной сети
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 дней.

Общие настройки Bambuddy после первого входа
Общие настройки: язык, учёт стоимости, пороги влажности AMS, срок хранения истории и переключатель анонимной телеметрии

Дальше — кнопка 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 умеет обрывать загрузку файлов через виртуальный принтер на медленных дисках.

ini
[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_SERVICE

Proxy-режим: печать откуда угодно без облака Bambu

Это главная функция, ради которой стоит поднимать Bambuddy не дома, а на сервере. Bambuddy умеет притворяться принтером Bambu Lab — создать виртуальный принтер, который слайсер видит как настоящий. У виртуального принтера четыре режима, и три из них про хранение: Immediate архивирует полученный файл сразу, Review откладывает на ручную проверку, Queue архивирует и ставит в очередь. Четвёртый, Proxy, работает иначе — он ничего не хранит, а прозрачно пробрасывает трафик на реальный принтер.

Схема proxy-режима Bambuddy: слайсер, сервер Bambuddy и принтер Bambu Lab
Схема proxy-режима: слайсер из внешней сети подключается к Bambuddy, тот пробрасывает соединение на принтер в локальной сети

Технически это прозрачный TCP-прокси. FTP, туннель передачи файлов и поток камеры идут насквозь со сквозным TLS до самого принтера — Bambuddy их не расшифровывает. Расшифровывается только MQTT, и то по необходимости: в сообщениях нужно подменять IP-адрес, иначе слайсер попытается пойти напрямую на локальный адрес принтера, которого из внешней сети не существует. Код доступа вводится тоже принтерный, никаких дополнительных паролей заводить не нужно.

ВозможностьImmediate / Review / QueueProxy
Файлы хранятся в BambuddyДаНет
Отправляет задание на реальный принтерНетДа
Печать из другой сетиНетДа
Нужно выбрать целевой принтерНетДа
Какой код доступа вводить в слайсерекод Bambuddyкод принтера
Пауза, продолжение и стоп из слайсераНетДа
Можно отправить, пока принтер занятДаНет
Файлы хранятся в Bambuddy
Immediate / Review / Queue: Да · Proxy: Нет
Отправляет задание на реальный принтер
Immediate / Review / Queue: Нет · Proxy: Да
Печать из другой сети
Immediate / Review / Queue: Нет · Proxy: Да
Нужно выбрать целевой принтер
Immediate / Review / Queue: Нет · Proxy: Да
Какой код доступа вводить в слайсере
Immediate / Review / Queue: код Bambuddy · Proxy: код принтера
Пауза, продолжение и стоп из слайсера
Immediate / Review / Queue: Нет · Proxy: Да
Можно отправить, пока принтер занят
Immediate / Review / Queue: Да · Proxy: Нет
Настройки виртуального принтера Bambuddy: режимы, целевой принтер и сертификат для слайсера
Два виртуальных принтера в режиме Proxy: выбраны целевые машины и сетевые интерфейсы привязки

Почему для этого нужен именно сервер, а не 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 переносами строк и «умными» кавычками.

bash
# 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/ с первого на остальные — тогда сертификат будет общий. После правки слайсер надо закрыть полностью, а не свернуть.

Виртуальный принтер Bambuddy, найденный в Bambu Studio
Так виртуальный принтер выглядит в списке устройств Bambu Studio — рядом с настоящими, с пометкой LAN

Если принтер в слайсере так и не появился, не гадайте: на карточке каждого виртуального принтера есть кнопка со стетоскопом — встроенная диагностика. Она отдельно проверяет, включён ли виртуальный принтер, запустились ли его службы, жив ли выбранный сетевой интерфейс (частая причина — сервер получил другой адрес по 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 ₽ в месяц.
ТарифПроцессорПамятьДискРезервные копииЦена в месяц
Lite1 × 3,6 ГГц1 ГБ15 ГБ NVMeплатно299 ₽
Promo1 × 3,6 ГГц2 ГБ30 ГБ NVMeбесплатно429 ₽
Micro2 × 3,6 ГГц4 ГБ60 ГБ NVMeбесплатно799 ₽
Start4 × 3,6 ГГц8 ГБ80 ГБ NVMeбесплатно1 289 ₽
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 формально запустится, но при первом же серверном слайсинге или паре камер упрётся в потолок — и промокоды на этот тариф всё равно не действуют.

Партнёр Printer Hub

Принтер под контролем из любой точки

Удалённый доступ к Klipper и OctoPrint, ИИ-мониторинг печати и своя библиотека моделей — на VPS от 172 ₽ в первый месяц.

  • NVMe-диски
  • Анти-DDoS
  • Поддержка 24/7
  • 🇷🇺 🇩🇪 🇳🇱 7 локаций
Выбрать VPS от 172 ₽

Первый месяц по промокоду, дальше от 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 по умолчанию выключен, включать его без нужды не стоит.

Ключи API и токены доступа в настройках Bambuddy
Ключи API с ограниченными правами (Read, Queue) и список точек вебхуков — управлять принтером извне можно, не открывая интерфейс наружу

Отдельно отметим: автор проекта сам ищет человека, который будет постоянно смотреть за безопасностью ветки разработки — соответствующее объявление висит прямо в 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 в реальном времени — по нему видно, что именно принтер отвечает на команды.

Журнал отладки MQTT в Bambuddy
Журнал MQTT в реальном времени: видно каждое сообщение принтера — незаменимо, когда команда не доходит

Ферма: когда принтеров больше одного

Hackaday оценивает рабочий диапазон Bambuddy как «от одного до сорока принтеров» — это оценка автора статьи, а не заявленный лимит проекта: никаких ограничений на количество машин в коде нет. Сам разработчик формулирует шире: «от одного A1 до целой фермы».

Всё, что Bambuddy запускает, — отправка из файлового менеджера, повтор из архива, загрузка прямо с карточки принтера, задание по расписанию — проходит через одну очередь. Значит, у каждой печати есть автор, её видно в общем списке, она проверяется на нехватку филамента и отменяется из одного места. Очередь показывается тремя вкладками (текущая, история, диаграмма по времени), задания переставляются перетаскиванием, проекты из нескольких столов сами сворачиваются в одну строку-группу.

Очередь печати Bambuddy с распределением заданий по принтерам
Очередь печати: текущие задания, история и метки вроде «запускать только после успешной предыдущей печати» и «выключить принтер по завершении»

Планировщик умеет две полезные для фермы вещи. Первая — «запускать, как только принтер освободится», без указания времени. Вторая — условие «только если предыдущая печать прошла успешно»: если предыдущая деталь сорвалась, серия останавливается, а не печатает двадцать бракованных копий в пустоту. Плюс галочка «обесточить принтер по завершении» — на ней и строятся ночные сценарии.

Планировщик печати Bambuddy: запуск задания по расписанию
Постановка в очередь: «как только освободится» или по времени, с условием успеха предыдущей печати и выключением после завершения

Розетки — вторая половина автоматики. Bambuddy работает с умными розетками на Tasmota, через MQTT, REST-запросы и Home Assistant: показывает текущую мощность (на скриншоте — 218 Вт с двух розеток), считает киловатт-часы за сегодня, вчера и всё время и переводит их в деньги по заданному тарифу. Каждую розетку можно связать с конкретным принтером и включать её при старте печати, а выключать по завершении.

Настройка умных розеток и учёта энергопотребления в Bambuddy
Умные розетки: текущая мощность, расход за день и за всё время, привязка к принтеру и автоматика включения-выключения

Насколько далеко это заходит, показывает пример из обзора HowToGeek: владелец фермы из более чем 70 принтеров доработал Bambuddy так, чтобы подсветка внутри камеры гасла через пять минут после старта печати, включалась по её завершении и мигала при ошибке. В итоге статус всего ряда машин виден одним взглядом, без единого экрана. Исходный код открыт по лицензии AGPL-3.0 — такие доработки легальны и технически несложны. Там же честная оговорка: Bambuddy «не прямая замена» родному ПО фермы, хотя закрывает многое из того же.

Для парка одинаковых машин есть ещё пайплайны с привязкой к классу принтеров и раздача копий: «нарезать один раз и разложить 12 копий по всем свободным X1C» — с выбором стратегии (разложить максимально широко ради скорости, отдать всё одному принтеру ради экономии на сменах цвета или по одной копии на машину). Отдельная вкладка показывает ход каждого запуска, а кнопка повтора перезапускает только те копии, которые не доехали, — успешные не печатаются заново.

Проекты в Bambuddy: группировка заданий и деталей одной сборки
Проекты: все детали одной сборки в одной карточке с прогрессом «22 из 34»

Экономика: сколько это стоит в год

Сама программа бесплатна и останется такой — лицензия 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-6060% на первый месяц1 месяц
ph-3030% на первый месяц1 месяц
ph-3-2020% на первые 3 месяца3 месяца
ph-6-1515% на первые 6 месяцев6 месяцев
ph-1-55% на первый год1 год
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 год
Партнёр Printer Hub

Принтер под контролем из любой точки

Удалённый доступ к Klipper и OctoPrint, ИИ-мониторинг печати и своя библиотека моделей — на VPS от 172 ₽ в первый месяц.

  • NVMe-диски
  • Анти-DDoS
  • Поддержка 24/7
  • 🇷🇺 🇩🇪 🇳🇱 7 локаций
Выбрать VPS от 172 ₽

Первый месяц по промокоду, дальше от 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. Есть тихие часы и ежедневная сводка, а тексты сообщений редактируются шаблонами.

Настройка уведомлений Bambuddy: Telegram, Discord, почта и вебхуки
Уведомления: отдельный переключатель на каждое событие плюс редактируемые шаблоны сообщений

И последнее по списку, но не по пользе — раздел обслуживания. Он считает наработку каждого принтера в часах и ведёт отдельный счётчик по каждой процедуре: смазка направляющих, натяжение ремней, чистка сопла, чистка стола, карбоновые стержни, трубка PTFE, фильтр HEPA. По каждой видно, сколько осталось — «86 часов» или «3 месяца». Для одного принтера это приятная мелочь, для десяти — единственный способ не пропустить регламент.

Планировщик обслуживания принтеров в Bambuddy
Обслуживание: наработка в часах и остаток ресурса по каждой процедуре для каждого принтера

Частые вопросы

Источники

  • Репозиторий 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