Установка — Raspberry Pi
import { Aside, Steps } from ‘@astrojs/starlight/components’;
Поддерживаемые модели
Заголовок раздела «Поддерживаемые модели»| Модель | Архитектура | 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/scripts/rpi-install.sh | bashОн проверяет хост, при необходимости ставит Docker, записывает рабочий Compose-набор и может помочь с Bluetooth-парингом.
После установки веб-интерфейс будет доступен по адресу http://<ip-raspberry-pi>:8080, если вы не меняли WEB_PORT.
Ручная установка
Заголовок раздела «Ручная установка»-
Подготовьте хост
- установите актуальную Raspberry Pi OS
- установите Docker
- выполните pairing колонки на хосте через
bluetoothctl
-
Запустите pre-flight check
Окно терминала curl -sSL https://raw.githubusercontent.com/trudenboy/sendspin-bt-bridge/main/scripts/rpi-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Примечания
Заголовок раздела «Примечания»network_mode: hostобязателен для управления Bluetooth и автообнаружения Music Assistant.- Raspberry Pi OS Bookworm по умолчанию использует PipeWire с PulseAudio-совместимостью; bridge работает и с PipeWire, и с PulseAudio.
- Изменения устройств, адаптеров,
WEB_PORT,BASE_LISTEN_PORTи настроек подключения к Music Assistant требуют перезапуска контейнера.