Установка — Raspberry Pi
Поддерживаемые модели
Заголовок раздела «Поддерживаемые модели»| Модель | Архитектура | Docker-платформа | Статус |
|---|---|---|---|
| Raspberry Pi 5 | aarch64 | linux/arm64 | ✅ Рекомендуется |
| Raspberry Pi 4 | aarch64 | linux/arm64 | ✅ Рекомендуется |
| Raspberry Pi 3 B+ | armv7l | linux/arm/v7 | ⚠️ Лучше для 1–2 колонок |
| Raspberry Pi Zero 2 W | aarch64 | linux/arm64 | ⚠️ Ограниченная RAM |
Быстрый старт
Заголовок раздела «Быстрый старт»Самый быстрый путь — one-liner installer:
curl -sSL https://raw.githubusercontent.com/trudenboy/sendspin-bt-bridge/main/deployment/raspberry-pi/install.sh | bashОн проверяет хост, при необходимости ставит Docker, записывает рабочий Compose-набор и может помочь с Bluetooth-парингом.
После установки веб-интерфейс будет доступен по адресу http://<ip-raspberry-pi>:8080, если вы не меняли WEB_PORT.
Ручная установка
Заголовок раздела «Ручная установка»-
Подготовьте хост
-
установите актуальную Raspberry Pi OS
-
установите Docker
-
установите BlueZ-стек и разблокируйте радио (на свежих образах Raspberry Pi OS Lite, особенно Trixie, Bluetooth часто soft-blocked или
bluetoothdотключён):Окно терминала sudo apt update && sudo apt install -y bluez bluez-tools rfkillsudo rfkill unblock bluetoothsudo systemctl enable --now bluetooth -
выполните pairing колонки на хосте через
bluetoothctl
-
-
Запустите pre-flight check
Окно терминала curl -sSL https://raw.githubusercontent.com/trudenboy/sendspin-bt-bridge/main/deployment/raspberry-pi/check.sh | bash -
Создайте директорию проекта
Окно терминала mkdir -p ~/sendspin-bt-bridge && cd ~/sendspin-bt-bridge -
Создайте
.envAUDIO_UID=1000TZ=Europe/MoscowWEB_PORT=8080BASE_LISTEN_PORT=8928 -
Скачайте актуальный Compose-файл
Окно терминала curl -sSL https://raw.githubusercontent.com/trudenboy/sendspin-bt-bridge/main/docker-compose.yml -o docker-compose.ymlmkdir -p configdocker compose up -d -
Откройте веб-интерфейс
http://<ip-raspberry-pi>:<WEB_PORT>
Планирование портов на Raspberry Pi
Заголовок раздела «Планирование портов на Raspberry Pi»WEB_PORTменяет прямой listener веб-интерфейса/API на Pi.BASE_LISTEN_PORTменяет базовый блок Sendspin-портов для колонок.- Устройства без явного
listen_portполучаютBASE_LISTEN_PORT + индекс_устройства. - Для одного устройства можно отдельно задать
listen_portиlisten_hostчерез веб-интерфейс или/config/config.json.
Пример расширенной записи устройства:
{ "mac": "AA:BB:CC:DD:EE:FF", "player_name": "Колонка на кухне", "listen_port": 8935, "listen_host": "192.168.1.50"}listen_host меняет только рекламируемый host/IP плеера и не влияет на bind-адрес внутри контейнера.
Если bridge’ей несколько на одной Pi или в одной сети
Заголовок раздела «Если bridge’ей несколько на одной Pi или в одной сети»Если вы запускаете несколько bridge-контейнеров или совмещаете Raspberry Pi bridge с другим bridge на том же хосте/в том же network namespace:
- назначьте каждому bridge свой
WEB_PORT - назначьте каждому bridge свой
BASE_LISTEN_PORT - не назначайте одну и ту же Bluetooth-колонку двум работающим bridge
Проверка рантайма
Заголовок раздела «Проверка рантайма»docker logs -f sendspin-clientcurl -s http://localhost:${WEB_PORT:-8080}/api/preflight | python3 -m json.toolОбновление
Заголовок раздела «Обновление»cd ~/sendspin-bt-bridgedocker compose pulldocker compose up -dПредпочитайте 5 GHz WiFi при использовании USB BT-донгла
Заголовок раздела «Предпочитайте 5 GHz WiFi при использовании USB BT-донгла»Если вы запускаете несколько колонок с Pi 4 / Pi 5 через USB Bluetooth-донгл, подключайте хост к 5 GHz WiFi-сети, а не к 2.4 GHz. Встроенный WiFi Pi делит ISM-диапазон 2.4 GHz с Bluetooth, и на 2.4 GHz-линке оба радио конкурируют за один и тот же эфир — это проявляется как растущий счётчик Tx excessive retries в iwconfig, провалы звука и зависания D-Bus, вызванные блокировкой BlueZ. Переключение соединения на 5 GHz, как правило, снимает конкуренцию:
nmcli connection modify "<имя-вашей-wifi>" wifi.band anmcli connection up "<имя-вашей-wifi>"Если хост обязан оставаться на 2.4 GHz (старый роутер, ограничения по дальности), рассмотрите подключение через Ethernet. Источник этой рекомендации — отчёт сообщества #212; полная диагностика — в разделе Troubleshooting → Звук рассыпается и D-Bus подвисает на Raspberry Pi.
Примечания
Заголовок раздела «Примечания»network_mode: hostобязателен для управления Bluetooth и автообнаружения Music Assistant.- Raspberry Pi OS Bookworm по умолчанию использует PipeWire с PulseAudio-совместимостью; bridge работает и с PipeWire, и с PulseAudio.
- Изменения устройств, адаптеров,
WEB_PORT,BASE_LISTEN_PORTи настроек подключения к Music Assistant требуют перезапуска контейнера.