Перейти к содержимому

Установка — LXC (Proxmox и OpenWrt)

import { Aside, Steps } from ‘@astrojs/starlight/components’;

LXC — нативный non-Docker вариант для appliance-хостов вроде Proxmox VE и OpenWrt. Bridge работает внутри контейнера, а Bluetooth-стек хоста прокидывается через D-Bus, при этом PulseAudio запускается внутри самого контейнера.

ПлатформаBluetoothАудиоСпособ установки
Proxmox VEbluetoothd хоста через D-Bus bridgePulseAudio внутри контейнераproxmox-create.sh
OpenWrt / TurrisOSbluetoothd хоста через D-Bus bridgePulseAudio внутри контейнераopenwrt/create.sh

На хосте Proxmox:

Окно терминала
bash <(curl -fsSL https://raw.githubusercontent.com/trudenboy/sendspin-bt-bridge/main/lxc/proxmox-create.sh)
  1. Создайте привилегированный Ubuntu 24.04 LXC-контейнер.

  2. Запустите установщик внутри контейнера:

    Окно терминала
    bash <(curl -fsSL https://raw.githubusercontent.com/trudenboy/sendspin-bt-bridge/main/lxc/install.sh)
  3. Добавьте на хосте Proxmox необходимые правила D-Bus / устройств в /etc/pve/lxc/<CTID>.conf.

  4. Перезапустите контейнер.

Подробный Proxmox-гайд по-прежнему находится в lxc/README.md.

На хосте OpenWrt:

Окно терминала
wget -qO- https://raw.githubusercontent.com/trudenboy/sendspin-bt-bridge/main/lxc/openwrt/create.sh | sh

Полный OpenWrt-специфичный гайд находится в lxc/openwrt/README.md.

Сопрягайте изнутри контейнера через btctl — это wrapper, который обращается к Bluetooth-демону хоста через D-Bus bridge:

Окно терминала
btctl
power on
scan on
pair AA:BB:CC:DD:EE:FF
trust AA:BB:CC:DD:EE:FF
connect AA:BB:CC:DD:EE:FF
exit

После первого запуска настройте порты в /config/config.json (или через веб-интерфейс, затем перезапустите сервис):

{
"WEB_PORT": 8080,
"BASE_LISTEN_PORT": 8928,
"BLUETOOTH_DEVICES": [
{
"mac": "AA:BB:CC:DD:EE:FF",
"player_name": "Колонка в гостиной",
"listen_port": 8935,
"listen_host": "192.168.1.50"
}
]
}
  • WEB_PORT управляет прямым listener’ом веб-интерфейса/API у контейнера.
  • BASE_LISTEN_PORT задаёт базовый блок Sendspin-портов для устройств без явного listen_port.
  • listen_port переопределяет player-port для одного устройства.
  • listen_host меняет рекламируемый host/IP плеера и не влияет на bind-адрес.

Если на одном Proxmox- или OpenWrt-хосте работает несколько bridge-контейнеров:

  • задайте каждому контейнеру уникальный WEB_PORT
  • задайте каждому контейнеру уникальный BASE_LISTEN_PORT
  • оставляйте каждую Bluetooth-колонку назначенной только одному работающему bridge
Окно терминала
systemctl status sendspin-client
systemctl restart sendspin-client
journalctl -u sendspin-client -f
Окно терминала
bash <(curl -fsSL https://raw.githubusercontent.com/trudenboy/sendspin-bt-bridge/main/lxc/upgrade.sh)