FDM Monster: панель фермы — этаж с сеткой принтеров, кнопки пакетной перепечатки и загрузки G-кода
FDM Monster — панель фермы: принтеры разложены по этажам, сверху кнопки пакетной печати

Серверная часть фермы 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, своя таблица или учётная система
Управление машинами
Что делает: Видит состояние принтеров, шлёт файлы, запускает и останавливает печать · Где обязан стоять: Только в одной сети с принтерами · Примеры: 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.1AGPL-3.0, бесплатноOctoPrint, Moonraker, PrusaLink, Bambu Lab в режиме LANLinux, Docker, Raspberry Pi, UnraidЕсть, без автоматического распределения
Bambu Farm Manager 02.04Бесплатно, закрытый кодТолько Bambu Lab: от A1 до H2C и X2DWindows 10 и выше, только x86-64Есть, плюс ступенчатый старт печати
Repetier-Server Pro59,99 € разово, 5 установокMarlin, RepRap, Klipper и другиеWindows, Linux, macOS, Raspberry PiЕсть, с повторами и перетаскиванием
Prusa ConnectБесплатно владельцам PrusaТолько PrusaОблако производителяЕсть
Mainsail и FluiddGPL-3.0, бесплатноТолько Klipper через MoonrakerБраузер поверх MoonrakerОчередь самого Moonraker
OctoFarmAGPL-3.0, заброшен с 2023OctoPrint
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
Lite29,99 €5 на установку21 на принтер
Pro59,99 €без ограничения5несколько на принтер
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

yaml
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

bash
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_PORT4000Порт панели
DATABASE_PATH./databaseКаталог базы SQLite
DATABASE_FILEfdm-monster.sqliteИмя файла базы — его и копируем в резерв
MEDIA_PATH./mediaЛоги, загруженные файлы, миниатюры
OVERRIDE_LOGIN_REQUIREDtrueТребовать вход в панель
OVERRIDE_REGISTRATION_ENABLEDfalseРазрешить самостоятельную регистрацию
OVERRIDE_JWT_SECRETfdm-monster-jwt-secret-2023Ключ подписи сессий — сменить обязательно
OVERRIDE_JWT_EXPIRES_IN3600Срок жизни сессии в секундах, минимум 120
ENABLE_PROMETHEUS_METRICSfalseОтдавать метрики на /metrics
ENABLE_LOKI и LOKI_ADDRESSвыключеноСлать логи в Loki
DISABLE_SWAGGER_OPENAPIfalseСпрятать Swagger UI и описание API
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, включается четырьмя строками в конфигурации.

ini
[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=...Поднять задание в начало
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 и дальше, по ним принтеры и добавляются в панель.

bash
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 40040
4B, 8 ГБ80
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 В
Потребление: до 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: он умеет управлять умными розетками и понимает контекст печати.

ini
[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 ₽.

Партнёр Printer Hub

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

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

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

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

Резервные копии: что спасать в первую очередь

  1. Конфигурация парка. В FDM Monster это выгрузка в YAML прямо из панели принтеров — держите свежий файл перед каждым обновлением. Плюс сам файл fdm-monster.sqlite из каталога базы
  2. Каталог G-кода. Отлаженные файлы тиража — это часы работы, повторная нарезка их не вернёт один в один
  3. Конфигурации Klipper. printer.cfg каждого экземпляра со всеми поправками и калибровками
  4. База учёта. Катушки, остатки, история расхода
  5. Заказы и клиенты. Единственное, что нельзя восстановить вообще ничем

Правило простое: копия, которая лежит на той же карте памяти, — не копия. Копия, которая лежит в том же помещении, — половина копии. И проверьте восстановление хотя бы раз: копии, которые никто не пробовал развернуть, имеют свойство оказываться пустыми именно в тот день, когда понадобились.

Грабли, о которых стоит знать заранее

Всё ниже — открытые задачи в трекере FDM Monster, статус сверен 9 августа 2026 года. Это не повод не ставить программу, а повод знать, где она споткнётся.

Экономика: сколько стоит серверная часть

Считаем то, что относится к обвязке, без стоимости самих принтеров и материала. Панель парка на FDM Monster бесплатна и живёт на железе, которое у вас уже есть. Bambu Farm Manager бесплатен, но требует отдельный компьютер под Windows. Repetier-Server Pro — разовые 59,99 € за пять установок без ограничения по числу машин. Облачные сервисы берут за принтер в месяц, и на парке это самая быстрорастущая строка расходов.

Внешний сервер под учёт, копии и приём заказов — единственный обязательный ежемесячный платёж в этой схеме. Тарифы AdminVPS проверены 9 августа 2026 года.

ТарифЦена в месяцCPURAMДискБэкапыПод что хватает
Lite299 ₽1 × 3,6 ГГц1 ГБ15 ГБ NVMeплатно, промокоды не действуюттолько копии
Promo429 ₽1 × 3,6 ГГц2 ГБ30 ГБ NVMeбесплатноучёт катушек, копии, прокси с сертификатом
Micro799 ₽2 × 3,6 ГГц4 ГБ60 ГБ NVMeбесплатното же плюс учётная система с PostgreSQL или сервер распознавания брака
Start1289 ₽4 × 3,6 ГГц8 ГБ80 ГБ NVMeбесплатнонесколько площадок и длинная история метрик
Lite
Цена в месяц: 299 ₽ · CPU: 1 × 3,6 ГГц · RAM: 1 ГБ · Диск: 15 ГБ NVMe · Бэкапы: платно, промокоды не действуют · Под что хватает: только копии
Promo
Цена в месяц: 429 ₽ · CPU: 1 × 3,6 ГГц · RAM: 2 ГБ · Диск: 30 ГБ NVMe · Бэкапы: бесплатно · Под что хватает: учёт катушек, копии, прокси с сертификатом
Micro
Цена в месяц: 799 ₽ · CPU: 2 × 3,6 ГГц · RAM: 4 ГБ · Диск: 60 ГБ NVMe · Бэкапы: бесплатно · Под что хватает: то же плюс учётная система с PostgreSQL или сервер распознавания брака
Start
Цена в месяц: 1289 ₽ · CPU: 4 × 3,6 ГГц · RAM: 8 ГБ · Диск: 80 ГБ NVMe · Бэкапы: бесплатно · Под что хватает: несколько площадок и длинная история метрик

Промокоды применяются к одному серверу в заказе и не действуют на Lite. Каждый активируется один раз при своём периоде оплаты.

ПромокодСкидкаПериод оплаты
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 🤝

Для сравнения масштабов: одна остановленная на сутки машина из пятнадцати съедает больше, чем годовая аренда сервера под учёт. Поэтому вложение в обвязку окупается не экономией, а тем, что простой становится видимым.

То, что не чинится софтом

В июне 2026 года на r/3Dprinting разошёлся пост владельца небольшой фермы в подвале: он сворачивает дело из-за проблем с лёгкими и пишет, что печатал только PLA. Пост собрал 2741 голос и 1528 комментариев. Это рассказ одного человека, а не медицинское заключение, и относиться к нему надо именно так. Но напоминание в нём верное: пятнадцать машин в одном помещении дают в пятнадцать раз больше выбросов, чем одна, а вентиляцию на ферме обычно планируют последней — уже после того, как посчитали электрику и купили стеллажи.

Что с этим делать по-взрослому — с цифрами по концентрациям, типам фильтров и кратности воздухообмена — разобрано в нашем материале про испарения при печати и вытяжку. Планируйте вытяжку одновременно с электрикой, до того как поставите первый стеллаж.

Что сделать в первый день

  1. Закрепить постоянный адрес за каждым принтером на роутере
  2. Поднять FDM Monster на отдельном хосте в той же сети и сменить OVERRIDE_JWT_SECRET
  3. Добавить принтеры и убедиться, что проверка связи проходит все пять стадий у каждого
  4. Разложить машины по этажам так, чтобы схема на экране совпадала с рядами в помещении
  5. Выгрузить конфигурацию парка в YAML и положить копию вне фермы
  6. Посчитать, сколько машин висит на каждой линии питания, и настроить ступенчатый старт
  7. Поднять учёт катушек и завести в него текущий склад
  8. Проверить, что вытяжка работает при всех включённых машинах, а не при одной

Источники