Встановлення

Встанови BamDude

Чотири шляхи - Docker, Docker Compose, нативний Windows-інсталятор чи ручний Python - плюс перший вхід і налаштування бота.

Перед стартом

  • Принтер Bambu Lab з увімкненим Developer Mode + LAN-Only Mode (Settings → Network).
  • IP-адреса і Access Code принтера (Settings → Network і Settings → Information).
  • Linux-машина, Raspberry Pi, NAS чи будь-який Docker-хост у тій же мережі що і принтер.
  • Опційно: токен Telegram-бота від @BotFather - якщо хочеш бота з першого дня.
Step 1

Запуск через Docker

Найшвидший шлях. Один контейнер, SQLite за замовчанням, постійні томи.

docker run -d \
  --name bamdude \
  --network host \
  -e TZ=Europe/Kyiv \
  -v bamdude_data:/app/data \
  -v bamdude_logs:/app/logs \
  --restart unless-stopped \
  kainpl/bamdude:latest
  • --network host робить SSDP-автопошук принтерів робочим; на macOS / Windows Docker Desktop заміни на -p 8000:8000 і додавай принтери вручну за IP.
  • Два томи: bamdude_data (SQLite + 3MF + прев'ю) і bamdude_logs. Зберігай їх - там вся історія твоїх друків.
Step 2

Docker Compose (з вихідних)

Збираєш образ сам, простіше розширювати.

git clone https://github.com/kainpl/bamdude.git
cd bamdude
docker compose up -d --build
  • Використовує docker-compose.yml з репо. Поруч лежать два override: docker-compose.postgres.yml для PostgreSQL в окремому контейнері і docker-compose.signal.yml для signal-cli-rest-api, що живить сповіщення в Signal; MQTT чи Spoolman додаються сервісами-сусідами так само.
  • Наступні ребілди: docker compose pull && docker compose up -d --build.
Step 3

Windows-інсталятор (.exe)

Без Python і Node — один самодостатній інсталятор під Windows.

Завантаж bamdude-windows-x64-setup.exe і запусти. Він містить вбудований Python, готовий фронтенд і ffmpeg, ставиться в C:\Program Files\BamDude, тримає дані й логи в C:\ProgramData\BamDude і реєструє BamDude як Windows-сервіс, що на завантаженні віддає http://localhost:8000. Ярлик у Start Menu відкриває веб-UI.

  • Щоб оновитись — завантаж новіший інсталятор і запусти знову: дані, налаштування й принтери зберігаються.
Step 4

Ручний запуск (Python venv)

Для розробників або середовищ, де Docker недоступний.

git clone https://github.com/kainpl/bamdude.git
cd bamdude
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
uvicorn backend.app.main:app --host 0.0.0.0 --port 8000 --loop asyncio --timeout-graceful-shutdown 15
  • Python 3.12+ (лише для цього ручного шляху — Docker і Windows-інсталятор везуть власний).
  • Для фронтенду: cd frontend && npm install && npm run dev в другому терміналі.
  • Мініатюри STEP потребують окремого CAD-компонента, якого pip install не ставить: з тим самим venv — python -m backend.app.step_runtime choose enabled --by cli, далі install і status --check; див. Прев’ю STEP. Docker і Windows-інсталятор уже його мають.
Step 5

Оберіть базу даних

Типово SQLite. Одна змінна перемикає на PostgreSQL — вбудований або власний.

DATABASE_URL обирає сховище: лишіть порожнім для SQLite (типово, один файл, цього вистачає більшості ферм), поставте embedded для PostgreSQL 18, який їде разом із BamDude і яким BamDude керує сам, або вкажіть URL postgresql+asyncpg:// для власного сервера. Під час переходу зі SQLite наявна база імпортується автоматично на наступному старті.

  • Питають усі інсталятори: в install.sh є --db sqlite|embedded|external, у Windows-майстрі — сторінка Database, docker-install.sh пропонує той самий вибір.
  • Вбудований сервер слухає лише 127.0.0.1 і тримає власний згенерований пароль; запіньте EMBEDDED_PG_PORT=6432, щоб діставати до нього psql чи DBeaver.
  • Для повної діагностики власного PostgreSQL увімкніть pg_stat_statements. Оновлення образу BamDude не налаштовує цей сервер; скористайтеся документацією PostgreSQL.
Step 6

Перший вхід + адмін

Відкрий веб-UI і створи першого адміна.

Перейди на http://localhost:8000 (або IP хоста). Setup-гейт відмовляє в усіх API-викликах окрім /auth/setup поки не існує перший адмін - обери ім'я, пароль (≥8 символів, велика + мала + цифра), готово. Далі стандартна форма логіну, гейт зникає назавжди.

  • Забув пароль адміна? python -m backend.app.cli reset_admin чистить setup-прапори і наступний старт повертає в setup-флоу.
  • За reverse-proxy? Встанови TRUSTED_PROXY_IPS щоб rate-limit і refresh-cookie бачили X-Forwarded-Proto коректно.
Step 7

Додай перший принтер

Авто-пошук через SSDP або вручну за IP.

Settings → Printers → Add Printer. SSDP підбере Bambu-принтери в тій самій підмережі автоматично; інакше встав IP. Потім введи access code (на екрані принтера → Settings → Information). Save - BamDude відкриє MQTT/FTPS-зʼєднання і дашборд почне стрімити live-статус.

Step 8

Опційно: Telegram-бот

Керуй фермою з чату.

Створи бота через @BotFather, скопіюй токен. Settings → Notifications → новий Telegram-провайдер → встав токен. Увімкни Registration Mode, надішли /start своєму боту. Settings → Telegram Chats → признач чату роль (Operator підходить для більшості). Reply-клавіатура й inline-меню вже працюють.

Запусти за 5 хвилин

Безкоштовно, open source, AGPL-3.0. Ніякого cloud-lock-in. Ніколи.