Серверная часть фермы 3D-принтеров: управление парком, очередь заданий и учёт
Как собрать серверную обвязку фермы 3D-принтеров: FDM Monster против Bambu Farm Manager и Repetier-Server, очередь заданий в Moonraker, сколько машин вешать на один хост и на одну линию питания, учёт филамента и резервные копии.
Серверная часть фермы 3D-принтеров — это три независимых слоя: управление машинами (FDM Monster 2.1.1, Bambu Farm Manager 02.04 или Repetier-Server за 59,99 €), учёт филамента и склад, и бизнес-слой с заказами и себестоимостью. Первый слой обязан жить в одной сети с принтерами, два остальных — нет, и именно на этом строится вся архитектура.
Когда принтеров два, всё держится в голове: подошёл, забрал деталь, поставил следующую. На пяти начинается путаница — какой уже закончил, на каком стоит чёрный PETG, а на каком остатки катушки на 40 граммов. На пятнадцати без общей панели работать нельзя вообще: половина смены уходит на беготню между рядами. Эта статья — про то, как собрать серверную обвязку фермы из живых инструментов 2026 года, а не из мёртвых проектов, ссылки на которые до сих пор висят на первой странице выдачи.
Из чего состоит серверная часть фермы
Главная ошибка при планировании — считать «сервер фермы» одной программой. На практике это три разных слоя, у которых разные требования к железу, к сети и к тому, где они физически стоят.
| Слой | Что делает | Где обязан стоять | Примеры |
|---|---|---|---|
| Управление машинами | Видит состояние принтеров, шлёт файлы, запускает и останавливает печать | Только в одной сети с принтерами | FDM Monster, Bambu Farm Manager, Repetier-Server, Mainsail |
| Учёт и склад | Считает катушки, остатки, расход по заданиям | Где угодно, лишь бы был доступ | Spoolman |
| Бизнес-слой | Заказы, сметы, счета, себестоимость, история | Где угодно, принтеров не касается | FilaOps, своя таблица или учётная система |
Разделение не формальное. Слой управления держит постоянные соединения с каждым принтером: у OctoPrint это сокет, у Klipper — опрос Moonraker, у Bambu Lab — канал MQTT внутри локальной сети. Ни один из них не пробрасывается наружу без отдельной обвязки, и ни один не станет надёжнее оттого, что вы вынесете его на арендованный сервер. А вот учёт катушек и заказы, наоборот, спокойно живут отдельно — и от этого только выигрывают.
Что понадобится
- Хост под панель управления в сети с принтерами: Raspberry Pi 4 или 5, мини-компьютер или виртуальная машина. Для FDM Monster хватает 512 МБ памяти, рекомендовано 2 ГБ и более, диска — от 500 МБ до 1 ГБ
- Проводная сеть до хоста и, по возможности, до принтеров: коммутатор дешевле любого простоя
- Постоянные адреса для каждого принтера — закрепите их на роутере, иначе после перезагрузки половина парка «потеряется»
- Учётные данные принтеров: ключ API у OctoPrint, адрес и порт Moonraker у Klipper, код доступа и серийный номер у Bambu Lab в режиме LAN
- Понимание, сколько ампер держит линия: одновременный прогрев столов — самая частая причина выбитого автомата на ферме
- Место под резервные копии вне фермы: база парка, каталог G-кода и таблица заказов
- Вентиляция помещения — на ферме выбросы складываются со всех машин сразу, см. наш разбор про испарения и вытяжку
Чем управлять парком: что живо в 2026 году
Ниша менеджеров парка тонкая. Полноценно открытый инструмент, который развивается прямо сейчас, ровно один — FDM Monster. Остальное это либо закрытые программы производителей, либо платные сервисы с оплатой за каждый принтер, либо заброшенные проекты, которые всё ещё занимают верх выдачи.
| Инструмент | Лицензия и цена | Какие принтеры | Где работает | Очередь |
|---|---|---|---|---|
| FDM Monster 2.1.1 | AGPL-3.0, бесплатно | OctoPrint, Moonraker, PrusaLink, Bambu Lab в режиме LAN | Linux, Docker, Raspberry Pi, Unraid | Есть, без автоматического распределения |
| Bambu Farm Manager 02.04 | Бесплатно, закрытый код | Только Bambu Lab: от A1 до H2C и X2D | Windows 10 и выше, только x86-64 | Есть, плюс ступенчатый старт печати |
| Repetier-Server Pro | 59,99 € разово, 5 установок | Marlin, RepRap, Klipper и другие | Windows, Linux, macOS, Raspberry Pi | Есть, с повторами и перетаскиванием |
| Prusa Connect | Бесплатно владельцам Prusa | Только Prusa | Облако производителя | Есть |
| Mainsail и Fluidd | GPL-3.0, бесплатно | Только Klipper через Moonraker | Браузер поверх Moonraker | Очередь самого Moonraker |
| OctoFarm | AGPL-3.0, заброшен с 2023 | OctoPrint | — | — |
FDM Monster — единственный живой открытый вариант
FDM Monster вырос из OctoFarm: проект отпочковался в сентябре 2021 года, когда стало ясно, что исходный код не вытянуть без полной переработки. Сейчас у него 182 звезды на GitHub, лицензия AGPL-3.0, последние изменения в основной ветке датированы 1 августа 2026 года, а последний выпуск — 2.1.1 от 14 мая 2026 года. Цифра звёзд скромная, но это профильный инструмент для узкой аудитории, а не библиотека для всех подряд.
База — SQLite прямо внутри программы, отдельная СУБД не нужна: поддержку MongoDB убрали после версии 2.0, и это упрощает жизнь. Аппетиты скромные: по документации хватает 512 МБ памяти, рекомендовано 2 ГБ, места на диске нужно от 500 МБ до 1 ГБ. Работает на x86-64, ARM64 и ARMv7, то есть Raspberry Pi 3B+, 4 и 5 подходят.
- Принтеры четырёх типов в одном окне: OctoPrint, Moonraker для Klipper, PrusaLink и Bambu Lab в режиме LAN
- Раскладка машин по этажам и настраиваемой сетке — можно повторить реальную геометрию стеллажей
- Пакетная печать: выделить несколько принтеров и отправить один файл сразу на все
- Печать перетаскиванием файла G-кода на плитку принтера
- Отметка «на обслуживании» — машина видна, но заданий не получает
- Импорт принтеров из OctoFarm — переезд не с нуля
- Выгрузка и загрузка конфигурации парка в YAML: копия перед экспериментом делается за секунду
- Метрики для Prometheus по адресу
/metrics, если включитьENABLE_PROMETHEUS_METRICS
Чего в нём нет: облака, приложения для телефона, распознавания брака нейросетью и красивых отчётов для клиента. Это диспетчерская, а не система управления бизнесом — и в этом её сила.
Что случилось с OctoFarm и почему на него нельзя ориентироваться
OctoFarm много лет был стандартным ответом на вопрос «чем управлять фермой на OctoPrint». Сейчас это ловушка. Последние изменения в репозитории датированы 19 мая 2023 года — больше трёх лет тишины. Ещё в апреле 2023 года автор FDM Monster писал прямым текстом: «OctoFarm has stalled in development completely», разработка встала полностью.
Заодно закройте вопрос с FarmPi — образом Raspberry Pi, где OctoFarm стоял из коробки вместе с несколькими экземплярами OctoPrint. Репозиторий архивирован владельцем 7 февраля 2024 года и доступен только для чтения. Его таблица ёмкости до сих пор полезна как ориентир (о ней ниже), а вот сам образ ставить не нужно: внутри тот же мёртвый OctoFarm.
Bambu Farm Manager — если парк собран из Bambu Lab
У Bambu Lab с 27 мая 2025 года есть своя бесплатная программа для парка, и за прошедший год она заметно повзрослела. Состоит из двух частей: Bambu Farm Manager Server — служба, которая держит связь с принтерами, и Bambu Farm Manager Client — окно оператора. К одному серверу подключается несколько клиентов с разными правами, так что смена может работать вместе.
На 9 августа 2026 года актуальные версии — сервер 02.04.00.03 и клиент 02.04.03. Поддерживается практически вся линейка: H2C, H2D, H2D Pro, H2S, X2D, X1C, X1E, P2S, P1P и P1S, A1 и A1 mini, A2L. У каждой модели своя минимальная прошивка — например, X1C от 01.09.00.00, P1P и P1S от 01.07.00.00, A1 и A1 mini от 01.04.00.00, H2D от 01.02.00.00. Если прошивка старее, принтер просто не добавится.
- Работает только под Windows 10 и выше на 64-разрядном процессоре x86 — Linux и macOS нет
- Принтеры подключаются к сети по Wi-Fi 2,4 ГГц; сервер должен быть в той же сети или иметь связь по IP с их подсетью
- Клиенту нужен интернет для активации сервера, проверки принтеров и загрузки прошивок — полностью изолированной установки не выйдет
- Команды и файлы идут к принтеру только внутри локальной сети по шифрованному каналу, через облако ничего не проходит
- Файлы принимаются только в формате
gcode.3mfиз Bambu Studio и не больше 20 штук за раз; в файле должен быть один стол - В режиме «Direct To Print» показываются только простаивающие принтеры, у которых модель и диаметр сопла совпадают с файлом
- Группировка машин — через теги; массовые действия — через Bulk Action
- Есть ступенчатый старт печати против перегрузки сети; A1 mini под это ограничение не попадает из-за низкого потребления
Перед добавлением принтера его надо подготовить: обновить прошивку, отвязать от приложения Handy — учётная запись должна показывать «Logged Out», — и выключить режим LAN Only. Последнее сбивает с толку: интуиция подсказывает обратное, но Farm Manager ходит к принтеру своим каналом с авторизацией производителя, а не тем, которым пользуются сторонние программы.
Ещё одна деталь, которую видно на карточке файла: Bambu Studio кладёт в gcode.3mf модель принтера, диаметр сопла, тип стола с температурой, время печати и расход филамента — в примере из вики это P1P, сопло 0,4 мм, текстурированный PEI-стол на 65 °C, 48 минут и 11,76 грамма PLA. Именно поэтому программа умеет отсеивать неподходящие машины: она читает эти данные из файла, а не угадывает.
Repetier-Server — платный, зато взрослый
Немецкий Repetier-Server — тот случай, когда за деньги получаешь предсказуемость. Бесплатная редакция тянет до двух принтеров, Lite за 29,99 € — до пяти на установку, Pro за 59,99 € — без ограничения по количеству. Оплата разовая, подписки нет. У бесплатной редакции есть отдельная оговорка: предпросмотр печати в ней работает только до 25% модели.
| Редакция | Цена | Принтеров | Установок по лицензии | Камеры |
|---|---|---|---|---|
| Free | бесплатно | до 2 | — | — |
| Lite | 29,99 € | 5 на установку | 2 | 1 на принтер |
| Pro | 59,99 € | без ограничения | 5 | несколько на принтер |
Для фермы полезны три вещи. Первая — Repetier-Server Monitor: бесплатное настольное приложение для Windows, macOS и Linux, которое сводит несколько установок Pro в одно окно; на скриншоте из документации в нём видны принтеры Mini, Z-Belt и Delta с одного хоста, а у машины без камеры вместо картинки заглушка. Вторая — очередь с повторами: для каждого задания задаётся число копий, порядок меняется перетаскиванием. Третья — общий каталог G-кода: у одинаковых принтеров в настройках выбирается пункт «использовать файлы от такого-то принтера», и файл не нужно заливать в каждый по отдельности.
Prusa Connect и облачные сервисы
Если парк собран на Prusa, отдельный менеджер может не понадобиться. Prusa Connect бесплатен для владельцев принтеров производителя и даёт 1 ГБ облачного места под G-код и телеметрию. Локальный PrusaLink встроен в CORE One, XL, MK4 и MK4S, MK3.9, MK3.5, MINI с модулем Wi-Fi и фотополимерные SL1 — внешняя малина нужна только старым MK3 и MK2.5. Минус очевиден: только принтеры одного производителя.
Платные облачные сервисы — SimplyPrint, Printago, AutoFarm3D — привязывают цену к размеру парка. У SimplyPrint бесплатны два принтера, тариф Print Farm стоит $39,99 в месяц и включает десять машин, следующие докупаются отдельно. Взамен вы получаете готовые связки с магазинами и распознавание брака, но платёж растёт вместе с парком. Считайте по-простому: своя панель на железе, которое у вас и так есть, стоит только электричества.
Ставим FDM Monster: три способа
Способы равноценны, различается только удобство обновления. Docker удобнее, если на хосте уже крутится что-то ещё; установка скриптом — если хост отдан под панель целиком; готовый образ MonsterPi — если под панель выделена отдельная малина.
Шаг 1. Docker Compose
services:
fdm-monster:
container_name: fdm-monster
image: fdmmonster/fdm-monster:2
restart: unless-stopped
deploy:
restart_policy:
delay: 5s
window: 120s
ports:
- "4000:4000"
volumes:
- fdm-monster-media:/app/media
- fdm-monster-database:/app/database
volumes:
fdm-monster-media:
fdm-monster-database:Запуск обычный: docker compose up -d, панель открывается на http://localhost:4000. Два тома важны оба: в /app/database лежит файл SQLite со всем парком, в /app/media — логи и загруженные файлы. Если не вынести их наружу, обновление образа унесёт настройки принтеров вместе с контейнером.
Шаг 2. Одна команда на Linux
curl -fsSL https://raw.githubusercontent.com/fdm-monster/fdm-monster-scripts/main/install/linux/install.sh | bash
# проверка после установки
sudo systemctl status fdm-monsterСкрипт заявлен для Ubuntu, Debian, Fedora, CentOS, Arch и родственных систем. Ему нужен Node.js 24 и новее — если его нет, установщик поставит сам. Служба регистрируется в systemd, порт тот же 4000. Как всегда с установкой скриптом из интернета: перед запуском полезно открыть сам файл и прочитать, что он делает.
Шаг 3. Готовый образ MonsterPi
MonsterPi — образ на базе Raspberry Pi OS Lite с уже установленным FDM Monster, собранный через CustomPiOS. Поддерживаются Raspberry Pi 3B+, 4B+ и 5, пишется обычным Raspberry Pi Imager. После загрузки панель доступна по адресу http://monsterpi.local:4000, а также по http://monsterpi.local и https://monsterpi.local — последний с самоподписанным сертификатом, браузер будет ругаться, это ожидаемо.
Шаг 4. Первый вход и переменные окружения
При первом открытии панель проведёт через мастер и попросит завести администратора. Вход обязателен по умолчанию, регистрация новых пользователей выключена — оба поведения переключаются переменными. Список ниже — то, что реально пригождается на ферме.
| Переменная | По умолчанию | Зачем нужна |
|---|---|---|
| SERVER_PORT | 4000 | Порт панели |
| DATABASE_PATH | ./database | Каталог базы SQLite |
| DATABASE_FILE | fdm-monster.sqlite | Имя файла базы — его и копируем в резерв |
| MEDIA_PATH | ./media | Логи, загруженные файлы, миниатюры |
| OVERRIDE_LOGIN_REQUIRED | true | Требовать вход в панель |
| OVERRIDE_REGISTRATION_ENABLED | false | Разрешить самостоятельную регистрацию |
| OVERRIDE_JWT_SECRET | fdm-monster-jwt-secret-2023 | Ключ подписи сессий — сменить обязательно |
| OVERRIDE_JWT_EXPIRES_IN | 3600 | Срок жизни сессии в секундах, минимум 120 |
| ENABLE_PROMETHEUS_METRICS | false | Отдавать метрики на /metrics |
| ENABLE_LOKI и LOKI_ADDRESS | выключено | Слать логи в Loki |
| DISABLE_SWAGGER_OPENAPI | false | Спрятать Swagger UI и описание API |
Подключаем принтеры четырёх типов
OctoPrint
Самый обкатанный путь. Нужны четыре поля: имя, адрес или доменное имя экземпляра, порт и ключ API. Если в адресной строке браузера порт не виден, значит это 80 для http или 443 для https. Ключ берётся в OctoPrint из настроек пользователя, раздел Access. После нажатия «Test connection» панель проходит пять проверок подряд: ответ API, открытие сокета, сокет открыт, авторизация сокета и авторизация подтверждена — если хоть одна красная, принтер не добавится.
Klipper через Moonraker
Поддержка Klipper появилась ещё в версии 1.7.0 и долго жила как опция, которую включали вручную: шестерёнка → раздел экспериментальных настроек → «Enable Experimental Moonraker Support». Разработчик объявил в декабре 2024 года, что хочет сделать Klipper и Moonraker включёнными по умолчанию, а в феврале 2025 года перенёс это в версию 2.1. Но задача до сих пор открыта, и целевая версия в её тексте зачёркнута — так что на 2.1.1 переключатель может никуда не деться. Практический совет: если принтер на Moonraker не добавляется, загляните в экспериментальные настройки. Сам принтер задаётся адресом хоста и портом Moonraker — по умолчанию 7125.
PrusaLink
Принтеры Prusa со встроенным PrusaLink подключаются как отдельный тип. Это удобный вариант для смешанного парка: машины Prusa попадают в общую панель вместе с Klipper и OctoPrint, и не нужно держать вторую вкладку с Prusa Connect. Одна оговорка: загрузка файлов на PrusaLink чинится прямо сейчас — запрос на изменение №5405 от 25 июля 2026 года правит авторизацию Digest перед отправкой файла и возвращает сорвавшиеся задания обратно в очередь вместо их потери. Он ещё не влит, то есть в выпущенной 2.1.1 этого исправления нет. Если парк в основном из Prusa, проверьте загрузку файлов до того, как переведёте на панель всё производство.
Bambu Lab в режиме LAN
Самый сырой из четырёх типов — в собственном разделе вопросов и ответов проекта поддержка Bambu Lab прямо помечена как «in progress». Принтер подключается через режим LAN: на экране машины включается LAN Only, затем Developer Mode, после чего сторонней программе нужны адрес, код доступа с экрана и серийный номер. Developer Mode открывает канал MQTT, видеопоток и FTP — по формулировке официальной вики, «полный контроль над принтером и его сетевой безопасностью».
Трезво о состоянии: в задачах проекта с 30 апреля 2026 года висит неотвеченная ошибка сохранения принтера P1S — при создании возвращается 500 и отказ соединения на порт 2024. С 29 января 2026 года открыта задача №4964: у принтеров Bambu не показываются целевые температуры. Если парк целиком из Bambu Lab, честнее смотреть в сторону родного Farm Manager или Bambuddy, а FDM Monster держать для смешанного парка.
Этажи и сетка: как разложить сорок принтеров и не запутаться
В FDM Monster принтеры группируются по «этажам» — так называется любая логическая группа: реальный этаж, комната, стеллаж или линия. Один этаж создаётся автоматически при первом запуске, остальные добавляются в настройках. Внутри этажа машины раскладываются перетаскиванием: включаете режим перестановки и таскаете плитки, пока схема на экране не совпадёт с тем, что стоит в помещении. Размер сетки задаётся числом строк и столбцов, есть режим крупных плиток — принтеров помещается меньше, зато по каждому видно больше.
Смысл возни простой: когда схема на экране совпадает с рядами в цеху, оператор не ищет «принтер номер семнадцать» по табличкам, а идёт сразу к нужному месту. Панель ещё и подсказывает, если машину забыли разложить: сверху появляется предупреждение «Drag N unplaced printer(s)» с именами непоставленных принтеров. В списке принтеров пригодится колонка времени последнего ответа: у живой машины там доли секунды, у потерянной — надпись «No update received (silence)», и это первый признак, что пора идти проверять сеть или питание.
Очередь заданий: что реально работает, а что ещё нет
Слово «очередь» на ферме означает две разные вещи: очередь внутри одного принтера и распределение заданий по свободным машинам. Первое решено давно и бесплатно. Второе — до сих пор ничьё.
Очередь внутри Moonraker
У всех принтеров на Klipper очередь уже есть — это компонент [job_queue] самого Moonraker, включается четырьмя строками в конфигурации.
[job_queue]
# подхватить следующее задание, как только Klipper сообщит Ready
# ВНИМАНИЕ: при таком подхвате задержка и переходный G-код НЕ применяются
load_on_startup: True
# самому переходить к следующему заданию после завершения текущего
automatic_transition: False
# пауза перед загрузкой следующего задания, секунды
job_transition_delay: 30
# что выполнить между заданиями (например, сброс детали)
job_transition_gcode:
M117 Next jobКлючевой здесь automatic_transition. По умолчанию он выключен, и очередь встаёт на паузу после каждого задания — правильное поведение, пока деталь снимает человек. Включать его имеет смысл только на ленточном принтере или на машине с автоматической очисткой стола: иначе следующая печать начнётся поверх предыдущей. job_transition_gcode и задержка как раз для того, чтобы вклинить между заданиями сброс детали и паузу. Одна тонкость из документации: когда очередь подхватывает задание по load_on_startup, ни задержка, ни переходный G-код не применяются — рассчитывать на паузу после перезапуска Klipper нельзя.
Очередь полностью доступна по сети, так что своя автоматизация поверх неё пишется без плясок:
| Запрос | Что делает |
|---|---|
| GET /server/job_queue/status | Состояние очереди: список заданий с именем файла, идентификатором и временем ожидания |
| POST /server/job_queue/job | Добавить задание или сразу несколько; тело — {"filenames": [...], "reset": false} |
| POST /server/job_queue/job?filenames=a.gcode,b.gcode | То же самое через строку запроса, файлы через запятую |
| DELETE /server/job_queue/job?job_ids=... | Убрать задания из очереди |
| POST /server/job_queue/pause и /start | Пауза и запуск очереди |
| POST /server/job_queue/jump?job_id=... | Поднять задание в начало |
Две практические мелочи. Один и тот же файл можно поставить в очередь несколько раз — так задаётся тираж. И запрос отклоняется целиком, если хотя бы одного файла из списка нет на принтере: частичной постановки не бывает, что удобно — не получится тихо недосчитаться пяти деталей из двадцати.
Пакетная печать в FDM Monster
На уровне парка FDM Monster решает самую частую задачу серийного производства: выделить принтеры и отправить один файл сразу на все. Это не распределение заданий, а размножение одного и того же — но именно так и печатают тираж на одинаковых машинах. Файл можно просто перетащить на плитку принтера. Bambu Farm Manager делает то же самое своими средствами: на скриншоте вики два принтера из одной группы, P292 и P496, одновременно готовят один и тот же 3DBenchy.
Чего пока нет ни у кого из открытых: автоматической маршрутизации
Мечта владельца фермы — кинуть файл в общую папку и чтобы он сам уехал на подходящий свободный принтер. В открытых инструментах на 9 августа 2026 года этого нет. В FDM Monster это открытая задача №5290 от 18 мая 2026 года, и формулировка там честная: файл, попавший в систему, ложится в общую библиотеку без привязки к принтеру, и назначает машину человек. Дословно: «With multiple printer models, or a farm, it's the main friction point: nothing tells FDMM that a given gcode was sliced for a Prusa Mini vs a Voron».
Предложенная схема — отслеживаемая папка, где подпапки соответствуют группам принтеров, и маршрутизация на группу, а не на конкретную машину, — пока только описана в задаче. Ближе всех к этому подошёл Bambu Farm Manager: он читает из gcode.3mf модель принтера и диаметр сопла и показывает в списке только подходящие машины. Но и там выбор делает человек, просто из уже отфильтрованного списка.
Сколько принтеров вешать на один хост
Вопрос экономии: платить по малине за каждый принтер или посадить несколько на один компьютер. Ответ зависит от того, что именно вы считаете — деньги или риск.
Несколько экземпляров Klipper на одной машине
Klipper поднимается в нескольких экземплярах на одном хосте штатно. Проще всего это делается помощником KIAUH: при установке спрашивается число экземпляров, каждому даётся имя, потом столько же экземпляров Moonraker. Порты назначаются подряд — 7125, 7126, 7127 и дальше, по ним принтеры и добавляются в панель.
git clone https://github.com/th33xitus/kiauh.git
./kiauh/kiauh.sh
# 1 (Install) -> 1 (Klipper) -> версия -> число экземпляров -> имена машин
# 1 (Install) -> 2 (Moonraker) -> столько же экземпляров
# в printer.cfg КАЖДОГО экземпляра развести пути:
# [virtual_sdcard]
# path: ~/printer_1_data/gcodes
# [save_variables]
# filename: ~/printer_1_data/config/variables.cfgГлавная ручная работа — развести пути в printer.cfg. Секции [virtual_sdcard] и [save_variables] у каждого экземпляра должны смотреть в свой каталог, иначе два принтера начнут писать в один файл переменных и обмениваться чужими данными. И ещё одно ограничение помощника: добавить экземпляры после первой установки он не предлагает, придётся либо переустанавливать, либо доводить руками.
Если менеджер парка ставить не хочется, для небольшой фермы на Klipper хватит самих веб-интерфейсов. Mainsail хранит список принтеров в настройках интерфейса — добавляете имя хоста и порт Moonraker, и переключаетесь между машинами, есть обзорный режим фермы. Fluidd умеет то же самое и при переключении полностью переинициализируется, подтягивая настройки и авторизацию нового принтера; выбранный принтер можно занести в закладки — он подставляется параметром ?printer= в адресе. Обе — живые проекты: Mainsail v2.18.2 от 5 июля 2026 года, Fluidd v1.37.3 от 20 июля 2026 года.
Сколько тянет одна малина
Готовых замеров под Klipper немного, зато сохранилась таблица из архивированного образа FarmPi — она про несколько экземпляров OctoPrint, но как порядок величин работает до сих пор.
| Модель Raspberry Pi | Рекомендованное число принтеров |
|---|---|
| 3A+ | 5 |
| 3B и 3B+ | 10 |
| 4B, 2 ГБ | 20 |
| 4B 4 ГБ и Pi 400 | 40 |
| 4B, 8 ГБ | 80 |
Цифры выглядят щедро, и в них есть подвох: они про то, сколько процесс выдержит, а не про то, сколько разумно доверить одной коробочке. Klipper к тому же прожорливее OctoPrint — он считает движение на хосте, а не на плате принтера, так что заявленное разумно делить хотя бы вдвое. Это оценка по характеру нагрузки, а не замер: опубликованных цифр под Klipper нет.
Электричество: ограничитель, о котором вспоминают последним
Софт масштабируется бесплатно, розетки — нет. Обычный настольный принтер в установившемся режиме ест немного, но в момент прогрева стола выдаёт всплеск, который в разы больше рабочего потребления. Замеры владельцев с форума Bambu Lab дают такую картину.
| Режим | Потребление | Комментарий |
|---|---|---|
| Прогрев стола, сеть 220 В | до 1000 Вт | всплеск на 20–40 секунд |
| Прогрев, сеть 110 В | около 350 Вт (3,18 А) | замер участника форума |
| Установившаяся печать | 100–150 Вт | короткие пики до 200–250 Вт |
Отсюда арифметика. Линия 220 В с автоматом на 16 А формально держит около 3,5 кВт. В установившемся режиме на неё влезает много машин — по 150 Вт это два десятка. Но если десяток принтеров начнёт греть столы одновременно, счёт пойдёт на киловатты, и автомат выбьет. Участники того же обсуждения формулируют прямо: десяток машин на линию можно, если разнести прогрев по времени; при одновременном прогреве «you will trip the CB for sure». Для американских 110 В цифры вдвое строже: на 15 А сходятся на четырёх принтерах, на 20 А называют пять-шесть, но сами участники советуют остановиться на пяти.
Решение называется ступенчатым стартом: задания на группе принтеров запускаются не одновременно, а с разбежкой. У Bambu Farm Manager это встроенная опция на странице активации сервера, и там же отмечено, что A1 mini под ограничение синхронного нагрева стола не попадает — потребление низкое. У Klipper этим занимается компонент [power] в Moonraker: он умеет управлять умными розетками и понимает контекст печати.
[power printer_07]
type: tasmota # или shelly, tplink_smartplug, homeassistant, mqtt, gpio, http
address: 192.168.1.107
# включать питание, когда задание встало в очередь
on_when_job_queued: True
# запретить дёргать питание во время печати
locked_while_printing: True
# выключить, если Klipper остановился
off_when_shutdown: True
off_when_shutdown_delay: 60
# перезапустить прошивку после подачи питания
restart_klipper_when_powered: True
restart_delay: 3Пара on_when_job_queued и locked_while_printing — то, ради чего это заводится на ферме: принтер сам просыпается, когда для него появилось задание, и его нельзя обесточить, пока он печатает. Поддерживаемых типов розеток много: tasmota, shelly, tplink_smartplug, homeassistant, hue, smartthings, mqtt, uhubctl, обычный gpio и универсальный http.
Сеть: постоянные адреса и почему принтерам мало Wi-Fi
Панель парка обращается к принтерам по адресу. Если адреса выдаются динамически, после перезагрузки роутера половина машин уедет на другие номера, и панель покажет отвалившиеся плитки. Закрепите адрес за каждым принтером на роутере — это пятнадцать минут один раз и снятая головная боль навсегда.
Отдельная особенность парка Bambu Lab: по требованиям Farm Manager принтеры подключаются к сети по Wi-Fi 2,4 ГГц. Диапазон медленный и тесный, а два десятка машин на одной точке доступа — это уже нагрузка. Разносите принтеры по нескольким точкам и не сажайте их на ту же сеть, где живёт видеонаблюдение. Там, где производитель допускает провод, ведите провод: у панели парка постоянные соединения с каждой машиной, и обрыв связи выглядит для оператора как потерянный принтер.
Сервер и клиент Farm Manager могут стоять в разных подсетях, если между ними есть маршрут по IP — производитель это прямо разрешает и даёт поиск принтеров по заданному диапазону адресов, а не только по своей подсети. Для цеха, разделённого на два сегмента, это спасение.
Учёт филамента: сколько осталось на катушке под принтером
Менеджер парка знает про задания, но ничего не знает про материал. На двух принтерах это терпимо, на пятнадцати — прямой убыток: катушка кончается посреди восьмичасовой печати, потому что никто не отследил остаток. Задачу закрывает Spoolman — отдельный сервис учёта катушек, который цепляется к Moonraker и OctoPrint и списывает граммы по мере печати. Установку мы разобрали в отдельной статье, здесь важна архитектурная деталь: один Spoolman обслуживает много принтеров сразу, и это ровно тот компонент, который логично вынести с фермы на общий сервер.
На закупках оптом учёт окупается быстрее всего: когда на складе тридцать катушек одного PLA от разных партий, разница в оттенке между началом и концом тиража всплывает уже у клиента. И раз материал закупается коробками — не забывайте про сушку: вскрытая катушка на стеллаже набирает влагу за считаные дни.
Наблюдение и брак
Камеры на ферме нужны не для красоты, а чтобы не печатать восемь часов в пустоту. Менеджеры парка показывают картинку, но не понимают, что на ней. Распознаванием «макаронника» занимается отдельный слой — как это поднять у себя, разобрано в статье про свой сервер с Obico. Там же важная цифра для планирования: серверная часть Obico требует минимум 4 ГБ памяти, так что на одну коробочку с панелью парка её не поставить.
У Bambu Lab своя детекция считается прямо на принтере, но с оговоркой из официальной вики: в режиме LAN, без связи с облаком, машина опирается только на модель распознавания из текущей прошивки, и та может отставать от облачной. Для фермы, которая по соображениям приватности сидит в LAN, это аргумент обновлять прошивки регулярно — но не на всех машинах одновременно, о чём ниже.
И самая скучная часть, которая на ферме перестаёт быть скучной: обслуживание. Одиночному принтеру пропущенное обслуживание можно простить, парку — нет, потому что засор сопла на одной машине из двадцати легко не заметить до конца смены. Отметка «на обслуживании» в FDM Monster для того и сделана: принтер остаётся на схеме, но заданий не получает. Что именно и как часто проверять — в нашем регламенте обслуживания.
Когда серверная часть перерастает ферму
Скажу прямо, потому что в интернете это обычно продают наоборот: панель управления парком выносить на арендованный сервер нельзя. Она держит постоянные соединения с принтерами по локальной сети, и на другом конце страны ей просто не с чем разговаривать. Никакой сервер не сделает управление машинами надёжнее — только длиннее.
А вот всё, что вокруг машин, отдельный сервер как раз хочет. Причём не из соображений «так удобнее», а по конкретным поводам:
- Резервные копии вне фермы. База парка, каталог G-кода и таблица заказов лежат на той же карте памяти, что и панель. Пожар, залив или сдохшая карта уносят их вместе с производством. Копия обязана быть в другом здании
- Учёт на несколько площадок. Ферма в двух помещениях или в двух городах — общий Spoolman и общий склад возможны только на нейтральной территории
- Приём заказов. Клиентам нужен адрес, который отвечает круглосуточно, даже когда в цеху выключили свет
- История метрик. Prometheus и графики за год — это диск и постоянная работа, которую незачем вешать на коробочку, отвечающую за печать
- Распознавание брака. Серверу Obico нужно 4 ГБ памяти — на хосте панели парка их обычно нет
- Доступ снаружи. Смотреть на ферму из дома удобнее через отдельную точку входа; как это делается — в статье про удалённый доступ
Требования к такому серверу скромные. Spoolman, реверс-прокси с сертификатом и хранилище копий спокойно живут на двух гигабайтах памяти и тридцати гигабайтах диска. Если добавляете полноценную учётную систему с базой PostgreSQL или сервер распознавания брака — берите вдвое больше памяти. У AdminVPS это тариф Promo за 429 ₽ в месяц для первого случая и Micro за 799 ₽ для второго; промокод ph-60 даёт 60% скидки на первый месяц любого тарифа кроме Lite — на Promo это около 172 ₽, на Micro около 320 ₽.
Принтер под контролем из любой точки
Удалённый доступ к Klipper и OctoPrint, ИИ-мониторинг печати и своя библиотека моделей — на VPS от 172 ₽ в первый месяц.
- NVMe-диски
- Анти-DDoS
- Поддержка 24/7
- 🇷🇺 🇩🇪 🇳🇱 7 локаций
Первый месяц по промокоду, дальше от 429 ₽/мес — тариф Promo: 2 ГБ RAM, 30 ГБ NVMe, бэкапы включены.
Покупка по ссылке поддерживает Printer Hub 🤝
Бизнес-слой: когда таблица перестаёт справляться
Пока заказов пять в неделю, всё живёт в таблице. Дальше начинается: какая деталь для какого заказа, сколько ушло материала, что уже оплачено. Тут появляется FilaOps — учётная система, написанная специально под фермы 3D-печати. Проект молодой: создан 6 декабря 2025 года, 75 звёзд, последний выпуск v4.1.0 от 20 июня 2026 года, изменения в основной ветке — от 4 августа 2026 года. Заявлено 48 возможностей в восьми разделах: сметы и заказы, счета с готовыми шаблонами, условия оплаты и кредитные лимиты клиентов, склад по площадкам, учёт катушек по весу, инвентаризация, производственные заказы со статусами от черновика до завершения.
Технически это Python и FastAPI, отдельный веб-интерфейс и обязательный PostgreSQL 16 и новее — отдельная база нужна в отличие от FDM Monster с его файлом SQLite. Запускается через docker compose, но в рабочем режиме не стартует, пока не заданы SECRET_KEY и DB_PASSWORD: это сделано намеренно, чтобы никто не выкатил систему с заказами клиентов на настройках по умолчанию.
Важно не спутать слои: FilaOps считает деньги и склад, а не управляет печатью. В его разделе про парк заявлены наблюдение по MQTT и планирование обслуживания, но это запись учёта о машине, а не диспетчерская. Панель парка он не заменяет. И прежде чем строить учёт, разберитесь с базовой арифметикой — как считается себестоимость печати, иначе система будет аккуратно складывать неверные цифры.
Резервные копии: что спасать в первую очередь
- Конфигурация парка. В FDM Monster это выгрузка в YAML прямо из панели принтеров — держите свежий файл перед каждым обновлением. Плюс сам файл
fdm-monster.sqliteиз каталога базы - Каталог G-кода. Отлаженные файлы тиража — это часы работы, повторная нарезка их не вернёт один в один
- Конфигурации Klipper.
printer.cfgкаждого экземпляра со всеми поправками и калибровками - База учёта. Катушки, остатки, история расхода
- Заказы и клиенты. Единственное, что нельзя восстановить вообще ничем
Правило простое: копия, которая лежит на той же карте памяти, — не копия. Копия, которая лежит в том же помещении, — половина копии. И проверьте восстановление хотя бы раз: копии, которые никто не пробовал развернуть, имеют свойство оказываться пустыми именно в тот день, когда понадобились.
Грабли, о которых стоит знать заранее
Всё ниже — открытые задачи в трекере FDM Monster, статус сверен 9 августа 2026 года. Это не повод не ставить программу, а повод знать, где она споткнётся.
Экономика: сколько стоит серверная часть
Считаем то, что относится к обвязке, без стоимости самих принтеров и материала. Панель парка на FDM Monster бесплатна и живёт на железе, которое у вас уже есть. Bambu Farm Manager бесплатен, но требует отдельный компьютер под Windows. Repetier-Server Pro — разовые 59,99 € за пять установок без ограничения по числу машин. Облачные сервисы берут за принтер в месяц, и на парке это самая быстрорастущая строка расходов.
Внешний сервер под учёт, копии и приём заказов — единственный обязательный ежемесячный платёж в этой схеме. Тарифы AdminVPS проверены 9 августа 2026 года.
| Тариф | Цена в месяц | CPU | RAM | Диск | Бэкапы | Под что хватает |
|---|---|---|---|---|---|---|
| Lite | 299 ₽ | 1 × 3,6 ГГц | 1 ГБ | 15 ГБ NVMe | платно, промокоды не действуют | только копии |
| Promo | 429 ₽ | 1 × 3,6 ГГц | 2 ГБ | 30 ГБ NVMe | бесплатно | учёт катушек, копии, прокси с сертификатом |
| Micro | 799 ₽ | 2 × 3,6 ГГц | 4 ГБ | 60 ГБ NVMe | бесплатно | то же плюс учётная система с PostgreSQL или сервер распознавания брака |
| Start | 1289 ₽ | 4 × 3,6 ГГц | 8 ГБ | 80 ГБ NVMe | бесплатно | несколько площадок и длинная история метрик |
Промокоды применяются к одному серверу в заказе и не действуют на Lite. Каждый активируется один раз при своём периоде оплаты.
| Промокод | Скидка | Период оплаты |
|---|---|---|
| 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 🤝
Для сравнения масштабов: одна остановленная на сутки машина из пятнадцати съедает больше, чем годовая аренда сервера под учёт. Поэтому вложение в обвязку окупается не экономией, а тем, что простой становится видимым.
То, что не чинится софтом
В июне 2026 года на r/3Dprinting разошёлся пост владельца небольшой фермы в подвале: он сворачивает дело из-за проблем с лёгкими и пишет, что печатал только PLA. Пост собрал 2741 голос и 1528 комментариев. Это рассказ одного человека, а не медицинское заключение, и относиться к нему надо именно так. Но напоминание в нём верное: пятнадцать машин в одном помещении дают в пятнадцать раз больше выбросов, чем одна, а вентиляцию на ферме обычно планируют последней — уже после того, как посчитали электрику и купили стеллажи.
Что с этим делать по-взрослому — с цифрами по концентрациям, типам фильтров и кратности воздухообмена — разобрано в нашем материале про испарения при печати и вытяжку. Планируйте вытяжку одновременно с электрикой, до того как поставите первый стеллаж.
Что сделать в первый день
- Закрепить постоянный адрес за каждым принтером на роутере
- Поднять FDM Monster на отдельном хосте в той же сети и сменить
OVERRIDE_JWT_SECRET - Добавить принтеры и убедиться, что проверка связи проходит все пять стадий у каждого
- Разложить машины по этажам так, чтобы схема на экране совпадала с рядами в помещении
- Выгрузить конфигурацию парка в YAML и положить копию вне фермы
- Посчитать, сколько машин висит на каждой линии питания, и настроить ступенчатый старт
- Поднять учёт катушек и завести в него текущий склад
- Проверить, что вытяжка работает при всех включённых машинах, а не при одной
Источники
- Документация FDM Monster — установка, переменные окружения, этажи и сетка, метрики
- Репозиторий FDM Monster — выпуски, возможности, трекер задач
- Вики Bambu Lab: Bambu Farm Manager — требования, совместимые модели и прошивки, порядок подключения
- Вики Bambu Lab: сторонняя интеграция — что даёт Developer Mode и чего лишает
- Документация Moonraker — компоненты
[job_queue]и[power] - Сравнение редакций Repetier-Server — цены и ограничения Free, Lite и Pro
- База знаний Prusa — разница между Prusa Connect и PrusaLink
- Вики BIGTREETECH — несколько экземпляров Klipper на одном хосте через KIAUH
- Обсуждение на форуме Bambu Lab — замеры потребления и сколько машин на линию
- Репозиторий FilaOps — учётная система для ферм, лицензия и требования
- Архив FarmPi — таблица ёмкости моделей Raspberry Pi
Команда Printer Hub
Изучаем официальную документацию и инструкции производителей, тестируем моды на реальных принтерах и анализируем опыт сообщества Reddit, Telegram, Printables и YouTube.