Чотири шляхи - Docker, Docker Compose, нативний Windows-інсталятор чи ручний Python - плюс перший вхід і налаштування бота.
Найшвидший шлях. Один контейнер, 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. Зберігай їх - там вся історія твоїх друків.Збираєш образ сам, простіше розширювати.
git clone https://github.com/kainpl/bamdude.git
cd bamdude
docker compose up -d --builddocker-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.Без 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.
Для розробників або середовищ, де 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 15cd frontend && npm install && npm run dev в другому терміналі.pip install не ставить: з тим самим venv — python -m backend.app.step_runtime choose enabled --by cli, далі install і status --check; див. Прев’ю STEP. Docker і Windows-інсталятор уже його мають.Типово 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.Відкрий веб-UI і створи першого адміна.
Перейди на http://localhost:8000 (або IP хоста). Setup-гейт відмовляє в усіх API-викликах окрім /auth/setup поки не існує перший адмін - обери ім'я, пароль (≥8 символів, велика + мала + цифра), готово. Далі стандартна форма логіну, гейт зникає назавжди.
python -m backend.app.cli reset_admin чистить setup-прапори і наступний старт повертає в setup-флоу.TRUSTED_PROXY_IPS щоб rate-limit і refresh-cookie бачили X-Forwarded-Proto коректно.Авто-пошук через SSDP або вручну за IP.
Settings → Printers → Add Printer. SSDP підбере Bambu-принтери в тій самій підмережі автоматично; інакше встав IP. Потім введи access code (на екрані принтера → Settings → Information). Save - BamDude відкриє MQTT/FTPS-зʼєднання і дашборд почне стрімити live-статус.
Керуй фермою з чату.
Створи бота через @BotFather, скопіюй токен. Settings → Notifications → новий Telegram-провайдер → встав токен. Увімкни Registration Mode, надішли /start своєму боту. Settings → Telegram Chats → признач чату роль (Operator підходить для більшості). Reply-клавіатура й inline-меню вже працюють.
Безкоштовно, open source, AGPL-3.0. Ніякого cloud-lock-in. Ніколи.