Інтеграція з Tailscale¶
BamDude може показати tailnet-адресу віртуального принтера — його 100.x.x.x IP та MagicDNS-ім'я — щоб слайсер, який працює десь інде у твоїй мережі Tailscale, міг до нього під'єднатись. Без port-forward, без додаткового VPN-клієнта, без виставляння чогось у публічний інтернет.
Це опційно для кожного VP і є суто відображенням адреси, яку треба вставити у слайсер. На захист самого VP це не впливає.
Коли це доречно¶
Наявна альтернатива — режим VP proxy — теж працює для віддаленого друку, але проганяє кожен байт через власний TCP-релей BamDude. Мережа Tailscale швидша (пряме peer-to-peer, якщо можливо, інакше через DERP) і дає слайсеру говорити з VP так, ніби він у тій самій LAN.
| Сценарій | Рекомендований шлях |
|---|---|
| Слайсинг на лептопі в тій самій LAN, що й BamDude | Звичайний VP, Tailscale не потрібен. |
| Слайсинг на лептопі / телефоні поза мережею (кафе, відпустка) | Tailscale. |
| Слайсинг із CI / GitHub Actions раннера | Режим VP proxy (Tailscale на VM — надлишок). |
| Мультитенантний міст хмара → BamDude | Режим VP proxy + твій наявний TLS. |
Tailscale виграє саме тоді, коли машина зі слайсером і так уже в Tailscale, і ти хочеш, щоб вона діставала принтер напряму.
Передумови¶
-
Демон Tailscale на хості BamDude. BamDude ніколи не запускає
tailscaledсам — він читає хостовий. Встанови tailscaled і виконайtailscale up. -
Тільки Docker: змонтуй сокет демона. Образ BamDude містить CLI
tailscale, але CLI може говорити з демоном лише через його сокет, який живе на хості:Можливо, доведеться також дозволити користувачу контейнера звертатись до демона:
Монтування присутнє, але закоментоване у постачуваному
docker-compose.yml— розкоментуй його. Нативним інсталяціям нічого додатково не треба: вони користуються хостовими CLI та сокетом напряму. -
MagicDNS увімкнений у твоєму tailnet (перемикач на сторінці DNS в адмінці Tailscale), якщо хочеш зручне
*.ts.netім'я поряд із сирим IP. Сам IP працює й без нього. -
Віртуальний принтер. Перемикач — для кожного VP окремо.
Увімкнення для VP¶
На картці віртуального принтера ввімкни Показати Tailscale адресу. Якщо демон на хості доступний, картка покаже tailnet-IP та MagicDNS-ім'я — кожне з кнопкою копіювання.
Вставляй IP у діалог Add Printer свого слайсера.
Використовуй IP, а не ім'я хоста
Діалог Add Printer у Bambu Studio та OrcaSlicer приймає IP-адресу, а не hostname. MagicDNS-ім'я показується, бо стане в пригоді деінде (закладки, SSH, власні нотатки), але слайсеру потрібна саме адреса 100.x.x.x.
Перемикач саме per-VP, бо деяким інсталяціям треба водночас мати VP-A у LAN (виробничий цех) і VP-B доступним через tailnet (віддалений слайсер інженерної команди).
Сертифікати: Tailscale їх не змінює¶
Tailscale змінює лише мережевий доступ. Довіру до TLS віртуального принтера він не змінює.
Ти все одно один раз імпортуєш CA-сертифікат BamDude (bbl_ca.crt) у свій слайсер — так само, як для VP у LAN. Див. Віртуальний принтер.
Чому немає шляху через Let's Encrypt
Рання версія цієї інтеграції виписувала справжні сертифікати Let's Encrypt через tailscale cert і анонсувала tailnet-FQDN по SSDP, щоб слайсер довіряв VP без жодного імпорту. Це було видалено, бо воно не може працювати: Bambu Studio й OrcaSlicer перевіряють MQTT-з'єднання з принтером лише проти власного вбудованого CA-сховища Bambu, а не системного. Публічно підписаний ланцюг відхиляється на перевірці видавця, ще до будь-якої логіки з hostname — а їхній діалог Add Printer і так приймає IP, якому сертифікат на *.ts.net ніколи не відповідатиме.
Тож одноразовий імпорт CA неминучий, а роль Tailscale — суто мережевий доступ: той самий тягар довіри, що й у звичайній LAN.
Дозволи та безпека¶
- Нових дозволів BamDude немає. Перемикач per-VP входить у наявний дозвіл на оновлення віртуального принтера; читання статусу tailnet потребує
settings:read. - BamDude не має поверхні авторизації Tailscale. Хто саме в tailnet — цілком справа Tailscale. BamDude виконує
tailscale status --jsonі читає відповідь; він ніколи не автентифікується, не приєднується і нічого не змінює. - Код доступу VP усе одно діє. Tailscale приводить мережу до принтера; код доступу так само стереже сам принтер.
- Оточення підпроцесу обрізане. BamDude викликає CLI лише з тими змінними ОС/шелу, які потрібні для пошуку сокета й конфігу — секрети застосунку (JWT-ключі, URL бази, пароль SMTP) не передаються.
Застереження¶
tailscaledмусить працювати на хості. Образ BamDude містить CLI, але свідомо не демон: tailscaled потребує сирого netlink, каталогу стану та потоку авторизації, які погано поєднуються зі stateless-контейнером. Монтування хостового сокета і безпечніше, і поважає твою наявну конфігурацію Tailscale.- Лише приватні tailnet. Виставити VP у публічний інтернет цим шляхом неможливо — для цього є режим
proxy. - Тільки відображення. Вимкнення перемикача нічого не від'єднує — воно лише припиняє показ адреси. Ні сертифікати VP, ні SSDP-анонс, ні життєвий цикл від нього не залежать, і перемикання ніколи не перезапускає VP.
Усунення несправностей¶
Картка показує Tailscale як недоступний, або перемикач нічого не відкриває:
| Симптом / повідомлення в лозі | Причина | Виправлення |
|---|---|---|
tailscale binary not found |
Нативна інсталяція без CLI. (Docker-образи його містять.) | Встанови tailscale на хості. |
Running in Docker but /var/run/tailscale/tailscaled.sock is not mounted |
Одноразова підказка на старті: CLI є, але демона, з яким говорити, немає. | Додай монтування сокета з розділу Передумови. |
| Сокет змонтовано, але CLI все одно не дістає демона | Користувачу контейнера не дозволено ним користуватись. | sudo tailscale set --operator=<користувач-контейнера> на хості. |
Tailscale not connected (no DNSName) |
Демон працює, але хост не приєднався до tailnet. | tailscale up на хості та автентифікація. |
| Немає MagicDNS-імені, лише IP | MagicDNS вимкнений у tailnet. | Увімкни на login.tailscale.com/admin/dns. IP усе одно працює. |
| Картка каже «недоступно», у лозі таймаут | Завислий tailscaled — виклик CLI обмежений 5 секундами. |
Перезапусти демон на хості. |
Виклик статусу ніколи не кидає виняток: що б не сталось, картка деградує до «недоступно», а VP далі працює за своєю LAN-адресою.
Пов'язане¶
- Віртуальний принтер — режими VP та імпорт CA, який усе одно потрібен.
- Реверс-проксі та HTTPS — для самого інтерфейсу BamDude, не для VP.