Установка¶
1. Docker и Docker Compose¶
Вариант А — пакеты дистрибутива (рекомендуется для Debian / Raspberry Pi OS):
sudo apt update
sudo apt install -y docker.io docker-compose apparmor wget
sudo usermod -aG docker $USER
После usermod перезайдите в систему, чтобы применились права группы docker.
Вариант Б — Docker Engine от производителя: следуйте официальной инструкции.
2. Правила udev и blacklist драйверов¶
SDR-устройства должны быть доступны непривилегированному пользователю, а конфликтующие DVB-драйверы ядра — отключены. Без этого шага контейнер не увидит приёмник.
wget https://gitlab.com/space-education-development/soniks/client/soniks-client/-/raw/soniks/client/sonik-blacklist.conf
wget https://gitlab.com/space-education-development/soniks/client/soniks-client/-/raw/soniks/client/10-sonik.rules
sudo cp 10-sonik.rules /etc/udev/rules.d/
sudo cp sonik-blacklist.conf /etc/modprobe.d/
Что делают эти файлы:
10-sonik.rules— выдаёт группеplugdevдоступ к USB-идентификаторам поддерживаемых SDR (RTL-SDR, Airspy, HackRF, SDRplay, USRP и др.).sonik-blacklist.conf— блокирует модули ядраmsi001,msi2500,dvb_usb_rtl28xxu,airspy,hackrf. Иначе ядро захватывает устройство как DVB-тюнер и SoapySDR его не открывает.
Примените изменения перезагрузкой:
sudo reboot
3. Директория станции¶
Создайте отдельную директорию (удобно называть по номеру станции) и скачайте в неё файлы запуска:
mkdir -p station && cd station
wget https://gitlab.com/space-education-development/soniks/client/soniks-client/-/raw/soniks/client/docker-compose.yml
wget https://gitlab.com/space-education-development/soniks/client/soniks-client/-/raw/soniks/client/.env
В .env впишите два значения со страницы станции на портале — STATION__ID
и STATION__TOKEN. Всё остальное настраивается на портале после первого
запуска: конфигурация станции.
Что запускается¶
docker-compose.yml поднимает два сервиса (три, если включён ротатор):
Сервис |
Образ |
Роль |
|---|---|---|
|
|
Приём команд доплеровской коррекции. По умолчанию |
|
|
Управление поворотным устройством. Закомментирован — см. Поворотное устройство. |
|
|
Сам клиент. |
Особенности сервиса soniks-client, о которых стоит знать:
работает от
user: '9999'— не от root;/tmpсмонтирован как tmpfs, то есть ОЗУ;том
soniks-clientсмонтирован в/var/lib/soniks-client— там логи и, по заданному в composePATHS__BASE, рабочие файлы наблюдений (/var/lib/soniks-client/data). Всё это переживает перезапуск;command: liveupdate-satyaml.sh --run— точка входа контейнера. Имя историческое: определения спутников теперь приезжают bundle’ом с портала, а не клонированием из git, см. Поддерживаемые спутники;проброшен
/dev/bus/usbи правило cgroupc 189:* rwm— так контейнер получает USB-устройства.