[2026-08-31] eagle: family/how-to/truenas-infrastructure.md personal/tech/mac-print-shared-services.md

This commit is contained in:
Alexey Martemyanov
2026-08-31 13:58:43 +06:00
parent 2ae4de034a
commit af9a0bd9c9
2 changed files with 26 additions and 18 deletions
+11 -9
View File
@@ -1,6 +1,6 @@
# TrueNAS — инфраструктура
> Обновлено: 2026-08-25 (docker поднят; modbus-bridge/mbusd починены после гонки с udev)
> Обновлено: 2026-08-31 (cups-splix mDNS-фикс завершён; docker поднят)
> ## ✅ СТАТУС на 2026-08-25: пул ONLINE, docker поднят, почти все контейнеры Up
> **Пул RED_2TB пересоздан (2026-08-21) и работает:** `zpool status` ONLINE, rsync возврата данных завершён, `/mnt/RED_2TB/` смонтирован.
@@ -115,21 +115,23 @@ TrueNAS использует **NFSv4 ACL**, а не стандартный POSIX
| modbus-bridge | modbus-bridge | — | — |
| cups-splix | cups-splix | — | принтер |
### cups-splix — принтер Samsung CLX-216x (✅ поднят 2026-08-26; ⚠️ mDNS-фикс 2026-08-31 в работе)
### cups-splix — принтер Samsung CLX-216x (✅ поднят 2026-08-26; mDNS-фикс 2026-08-31 завершён)
**Статус:** контейнер работает (2026-08-31 `Up 4 days`), принтер `Samsung_CLX-216x_Series` **idle / enabled / accepting**. CUPS слушает `0.0.0.0:631` (host-сеть). НО принтер **не анонсируется через mDNS/AirPrint** (`printer-dns-sd-name = no-value`, `avahi-daemon` в контейнере не запущен) → штатная Android print service показывает «недоступен» (подробно: [[mac-print-shared-services]]). **План mDNS-фикса (пересборка с avahi, бэкап сделан, образ собран, пересоздание контейнера ждёт OK) — см. [[mac-print-shared-services]] раздел «PLAN + ПРАВКИ».**
**Статус:** контейнер работает, принтер `Samsung_CLX-216x_Series` **idle / enabled / accepting**. CUPS слушает `0.0.0.0:631` (host-сеть). mDNS-анонс **включён** штатная Android print service теперь видит принтер по mDNS (подробно: [[mac-print-shared-services]]). См. ниже раздел «✅ mDNS/AirPrint анонс принтера».
Папка: `/mnt/RED_2TB/docker/cups/``Dockerfile`, `entrypoint.sh`, `docker-compose.yml`, `docker build.txt`, `data/``/etc/cups`, `cache/``/var/cache/cups`, `spool/``/var/spool/cups`, `uld/`, бэкап `backup_20260831-003619.tar.gz`.
Папка: `/mnt/RED_2TB/docker/cups/``Dockerfile`, `entrypoint.sh`, `docker-compose.yml`, `data/``/etc/cups`, `cache/``/var/cache/cups`, `spool/``/var/spool/cups`, `uld/`, бэкап `backup_20260831-003619.tar.gz`.
- **Image:** `cups-splix` (локальная сборка из Dockerfile)
- **Image:** `cups-splix` (локальная сборка из Dockerfile; старый образ сохранён как `cups-splix-old` для отката)
- **Dockerfile** (debian:12-slim): `cups-daemon cups-client cups-common printer-driver-splix avahi-daemon avahi-utils dbus usbutils nano procps`; `cupsadmin:admin` (группа lpadmin); `COPY entrypoint.sh`; `EXPOSE 631`; `ENTRYPOINT ["/entrypoint.sh"]`
- **entrypoint.sh:** `dbus-daemon --system --fork``avahi-daemon --no-drop-root --syslog` (фон) → `exec cupsd -f`
- **compose:** `image: cups-splix`, `network_mode: host`, `privileged: true`, volume `/dev/bus/usb:/dev/bus/usb`, restart `unless-stopped` (содержит устаревший `command: [cupsd -f]`, но ENTRYPOINT переопределяет — правится только через root/UI, файл 600 root)
- **Сборка/поднятие:**
- **Сборка/поднятие (⚠️ полное пересоздание, НЕ `docker restart`):**
```bash
cd /mnt/RED_2TB/docker/cups/
docker build -t cups-splix-new . # собрать новый образ с avahi (бэкап уже есть)
# затем согласовать пересоздание работающего контейнера (docker stop/rm/tag/compose up)
docker build -t cups-splix-new .
docker stop cups-splix && docker rm cups-splix
docker tag cups-splix-new cups-splix && docker tag cups-splix cups-splix-old 2>/dev/null
docker compose up -d
```
> Полный разбор и симптом «телефон не видит принтер»: [[mac-print-shared-services]]
@@ -440,7 +442,7 @@ docker exec cups-splix sh -c "timeout 6 avahi-browse -rt -p _ipp._tcp | grep ';e
> Диагностика и полное объяснение: [[mac-print-shared-services]]
> ⚠️ **2026-08-31: топология изменена.** TrueNAS больше НЕ в локальной сети (только публичный DNS `mallexxx.duckdns.org`). `192.168.2.197` из телефона/внешки недостижим, и **снаружи `mallexxx.duckdns.org:631` закрыт**. Подтверждено SSH: `cups-splix` **Up**, принтер idle/enabled/accepting, CUPS слушает `0.0.0.0:631`, но наружу не проброшен. → Samsung Mobile Print (app) печатает (у него адрес вписан вручную/закэширован), а штатная Android print service с `ipp://192.168.2.197:631/...` показывает «недоступен» (ожидаемо, локального пути нет). **Дополнительно (2026-08-31):** корень «недоступен» в штатной службе — не только сеть, но и **отсутствие mDNS/AirPrint-анонса** (avahi-daemon не запущен; `printer-dns-sd-name = no-value`). План исправления (новый Dockerfile + entrypoint с avahi, бэкап, образ собран) — в [[mac-print-shared-services]] раздел «PLAN + ПРАВКИ»; пересоздание контейнера ждёт OK Alex. Подробный разбор: [[mac-print-shared-services]].
> ⚠️ **2026-08-31: топология изменена.** TrueNAS больше НЕ в локальной сети (только публичный DNS `mallexxx.duckdns.org`) — из других подсетей/внешки `192.168.2.197` недостижим, и **снаружи `mallexxx.duckdns.org:631` закрыт**. НО **из самой подсети `192.168.2.x` TrueNAS достижима** (телефон `192.168.2.141` успешно печатал по `192.168.2.197:631` — CUPS access_log это подтверждает). → Samsung Mobile Print (app) печатает (висит на локальном IPP внутри подсети), а штатная Android print service с `ipp://192.168.2.197:631/...` показывала «недоступен» из-за **отсутствия mDNS/AirPrint-анонса** (avahi-daemon не запущен; `printer-dns-sd-name = no-value`). ✅ **Исправлено** (см. раздел «✅ mDNS/AirPrint анонс принтера»): cups-splix пересобран с avahi-daemon, cupsd.conf получил `Browsing On` + `BrowseLocalProtocols dnssd` → принтер анонсируется по mDNS (`mopria-certified=1.3`, IPv4 `192.168.2.197`); Android-служба теперь находит принтер сама. Детали и откат: [[mac-print-shared-services]].
## Связанные заметки
- [[truenas-access]] — SSH-доступ