Skip to main content

Встановлення додатку Soloveyko

Увага!
Наведена інструкція розрахована на людину, яка має досвід використання операційних систем GNU/Linux, а також досвід роботи з терміналом.
Уважно прочитайте всю інструкцію до кінця, перед тим як виконувати будь-які наведені команди.
Всі наведені команди, системні шляхи, назви змінних, значення змінних тощо чутливі до регістру.

Вимоги до середовища операційної системи

Додаток "soloveyko" працює на операційних системах GNU/Linux. На даний момент підтримуються Debian-based дистрибутиви під керуванням системного менеджера systemd. Коректна робота можлива на дистрибутивах не старіше, ніж Debian 12 або Ubuntu 22.04. Підтримуються наступні архітектури процесорів: amd64/x86_64, ARMv7/armhf, ARMv8/arm64.
Додаток розповсюджується у виді deb-пакунку, для встановлення якого необхідний відповідний менеджер пакунків. Завантаження і встановлення відбувається з офіційного репозиторію Соловейко.Медіа. Наведені нижче інструкції призначені для менеджеру пакунків apt. Також необхідна наявність в системі наступних утиліт і пакунків: curlgpg, ca-certificates.

Процес встановлення

Додавання офіційного репозиторію Соловейко.Медіа

Перевіряємо і створюємо директорії для ключа підпису та файлу посилання на репозиторій, якщо такі відсутні:
if [ ! -d /etc/apt/keyrings/ ]; then mkdir -p /etc/apt/keyrings/; fi
if [ ! -d /etc/apt/sources.list.d/ ]; then mkdir -p /etc/apt/sources.list.d/; fi
Завантажуємо публічний ключ підпису пакунку:
curl -fsSL https://nest.soloveyko.media/linux/deb/gpg | gpg --dearmor -o /etc/apt/keyrings/Soloveyko.Media.gpg
Завантажуємо файл посилання на репозиторій:
curl -fsSL https://nest.soloveyko.media/linux/deb/Soloveyko.Media.Production.sources -o /etc/apt/sources.list.d/Soloveyko.Media.Production.sources
Виконуємо оновлення індексів репозиторіїв:
apt update
Після успішного виконання наведених команд, у пошуку буде доступний пакунок "soloveyko", а також додаткові пакунки:
apt search soloveyko
1.png

Попередні налаштування та встановлення пакунку

Під час встановлення буде створено користувача soloveyko від імені якого буде працювати додаток, а також створено ряд директорій і файлів:
  • /opt/soloveyko/ - директорія, у якій буде розміщено виконувані файли;
  • /etc/systemd/system/soloveyko.service - файл сервісу для systemd;
  • /var/log/soloveyko/ - директорія, у яку додаток записує логи під час роботи;
  • /var/lib/soloveyko/ - директорія, у яку додаток заванатажує дані;
  • /etc/soloveyko.env - файл налаштувань для інсталятора пакунку.

Користувач soloveyko призначається власником директорій, у яких створюються файли під час роботи, а також він додається до груп:
audio, video, users, render, pulse, pulse-access.

Додаток soloveyko , під час комунікації з сервісами Соловейко.Медіа, використовує спеціальний ідентифікатор. Цей ідентифікатор повинен бути унікальним і формується в процесі встановлення з MAC-адреси мережевого інтерфейсу, який має одне з наступних імен: eth0, enp*, end0, eno* , а також, за необхідності, може бути переданий перед початком встановлення за допомогою оголошення системної змінної SOLOVEYKO_HWID перед початком встановлення. Власноруч переданий ідентифікатор повинен відповідати наступним вимогам:
  • Максимальна довжина 40 символів;
  • Дозволені символи:
    • a-z - літери латинського алфавіту у нижньому регістрі;
    • A-Z - літери латинського алфавіту у верхньому регістрі;
    • 0-9 - цифри;
    • - _ - мінус, нижнє підкреслення.

Додаток soloveyko має можливість відтворювати декілька звукових файлів одночасно, відповідно створюючи декілька потоків, що вимагає наявного і працюючого у системі звукового сервера. За замовчуванням використовується pulseaudio , для якого є можливість встановити режим роботи на системному рівні шляхом створення відповідного сервісу. Цей режим зручно використовувати на серверних варіантах операційних систем, які працюють середовища робочого столу та без здійснення входу користувачами. Увімкнненя створення сервісу здійснюється оголошенням системної змінної SOLOVEYKO_SETUP_SYSTEMWIDE_PULSEAUDIO перед початком встановлення.
Якщо в операційній системі встановлено пакунки для роботи графічного середовища (xorg або wayland), додаток встановиться із підтримкою відтворення відео і буде примусово розгортатись на весь екран. Якщо така поведінка небажана, можна увімкнути прихований режим роботи, у якому відтворюватиметься лише звук. Увімкнненя прихованого режиму роботи здійснюється оголошенням системної змінної SOLOVEYKO_AUDIO_ONLY_HEADLESS_MODE перед початком встановлення.
На деяких операційних системах було помічено зупинку роботи звукової та/або відео підсистем, якщо користувач не здійснив вхід у систему. Для вирішення цієї проблеми, під час встановлення пакунку, може бути створено відповідний файл модифікації сервісу getty за шляхом /etc/systemd/system/getty@tty1.service.d/autologin.conf для здійсненя автоматичного входу користувача soloveyko . Слід зауважити, що це накладає безпекові ризики і повинно використовувати із повним усвідомленням власних дій. Увімкнненя здійснюється оголошенням системної змінної SOLOVEYKO_AUTOLOGIN_USER перед початком встановлення.

Перед початком встановлення пакунку, за необхідності, можуть бути оголошені системні змінні, для передачі налаштувань, відмінних від за замовчуванням:
Назва змінної Значення за замовчуванням Допустимі значення Призначення
SOLOVEYKO_HWID Відсутнє. Визначається в процесі встановлення.
Максимальна довжина 40 символів. Дозволені символи:
a-z - літери латинського алфавіту у нижньому регістрі;
A-Z - літери латинського алфавіту у верхньому регістрі;
0-9 - цифри;
- _ - мінус, нижнє підкреслення
Ідентифікатор
SOLOVEYKO_NETWORK_DEVICE_NAME Відсутнє. Визначається в процесі встановлення. Відповідно до списку мережевих інтерфейсів Назва мережевого інтерфесу, MAC-адресу якого використовувати при створенні ідентифікатору
SOLOVEYKO_USER_NAME soloveyko Відповідно до правил іменування груп і користувачів Ім'я користувача, від якого працюватиме додаток
SOLOVEYKO_USER_GROUP soloveyko Відповідно до правил іменування груп і користувачів Група користувача
SOLOVEYKO_UID_GID 1488 Відповідно до правил іменування груп і користувачів ID-номер користувача і групи
SOLOVEYKO_AUDIO_ONLY_HEADLESS_MODE False True, False Прихований режим: відключити будь-який вивід зображення, відтворювати лише звук. 
SOLOVEYKO_AUTOLOGIN_USER False True, False Створити файл для автоматичного користувача в систему
SOLOVEYKO_USER_ADDITIONAL_GROUPS audio,video,users,render,pulse,pulse-access Відповідно до списку системних груп. Список вказується без пробілів, розділення комою. Додати користувача до наступних груп, окрім власної
SOLOVEYKO_LOG_PATH /var/log/soloveyko/ Відповідно до правил створення шляхів Директорія для логів
SOLOVEYKO_STORAGE_BASE /var/lib/soloveyko/ Відповідно до правил створення шляхів Директорія для даних
SOLOVEYKO_SETUP_SYSTEMWIDE_PULSEAUDIO False True, False Встановити файл сервісу для запуску звукового серверу на системному рівні
SOLOVEYKO_NO_ENABLE False True, False Не додавати сервіс soloveyko до автозапуску
SOLOVEYKO_NO_START False True, False Не запускати сервіс soloveyko після завершення встановлення
Всі наведені змінні повинні бути оголошеними перед початком встановлення пакунку і оголошуватись як змінні середовища за допомогою команди export . Значення наведених змінних, після встановлення, будуть збережені у файл /etc/soloveyko.env для застосування у подальших ітераціях встановлення або оновлення пакунку.
Встановлення додатку:
export SOLOVEYKO_SETUP_SYSTEMWIDE_PULSEAUDIO=True
# За необхідності прихованого режиму роботи:
# export SOLOVEYKO_AUDIO_ONLY_HEADLESS_MODE=True
apt install soloveyko helper-utils-soloveyko

Дії після встановлення

По успішному завершенню встановлення пакунку, у консоль буде виведено призначений ідентифікатор, який використовуватиме додаток, а також встановлені шляхи розміщення логів і даних.
2.png
Ідентифікатор необхідно власноруч вказати під час додавання пристрою у інтерфейсі платформи app.soloveyko.media.

Перевірка роботи додатку може бути здійснена за допомогою команди:
systemctl status soloveyko
3.png
Також можна переглянути логи:
mcview /var/log/soloveyko/soloveyko.log
Додаток має файл налаштувань /opt/soloveyko/config/override.yml, у якому можна внести деякі додаткові налаштування для роботи конкретного екземпляру додатку. Всі налаштування будуть збережені між перевстановленнями додоатку, окрім випадків повного видалення (apt purge soloveyko).
4.png
Вміст файлу відповідає синтаксису YAML. Далі наведено опис деяких корисних налаштувань:
Опція
Значення за замовчуванням
Допустимі значення
Призначення
raw
false
true, false
Завантажувати файли медіаплану без нормалізації гучності
enable_local_api
true
true, false
Включити API
host
0.0.0.0

Адреса мережевого інтерфейсу API
port
14880
1 - 65000
Порт API
history
20
1 - 100
Кількість файлів логів, які будуть збережені на диску
size
3
1 - 10
Розмір файлу логу в мегабайтах, при досягненні якого буде виконана ротація
ao
pulse
pipewire, pulse, alsa, jack, sdl, pcm
Назва звукового серверу

Допоміжні засоби

REST API

Додаток має модуль REST API для можливості здійснювати контроль роботи додатку всередині локальної мережі (потребує окремого налаштування фаєрволу). Далі наведено опис методів API:
Метод
Тип
Аргументи
Значення
Призначення
Приклад запиту
/reschedule
POST
Відсутні

Почати позачергове оновлення розкладів відтвоерння контенту
curl -X POST "http://127.0.0.1:14880/reschedule"
/refresh_device_config
POST
Відсутні

Синхронізувтаи конфігурацію додатку з платформою app.soloveyko.media
curl -X GET "http://127.0.0.1:14880/refresh_device_config"
/set_volume
POST
volume
volume_ad_and_promo
volume_system_sound
volume_when_system_sound
volume_while_air_alert

0 - 200
Встановити гучності незважаючи на всі налаштування отримані з платформи. Налаштування будуть актуальні до моменту наступного оновлення конфігурації або зміни гучності на сторінці керування на платформі app.soloveyko.media. Передавати необхідно всі аргументи
curl -X POST "http://127.0.0.1:14880/set_volume?volume=80&volume_ad_and_promo=80&volume_system_sound=80&volume_when_system_sound=80&volume_while_air_alert=80"
/play_filename
GET
filename
назва файлу з розширенням
Відтворити системне звукове сповіщення
curl -X GET "http://127.0.0.1:14880/play_filename?filename=default_location_closing.mp3"

Пакунок helper-utils-soloveyko та інші

Додатково до основного пакунку з додатком "soloveyko", в репозиторії знаходяться пакунки, які надають допоміжні функції, наприклад
  • Автоматичне оновлення пакунку soloveyko
  • Моніторинг з'єднаня з інтернетом
  • Контроль за рівнями гучності звукових інтерфейсів
  • Розширення бібліотеки системних звукових сповіщень
Рекомендованим до встановлення є пакунок helper-utils-soloveyko, який містить утиліти для оновлення і моніторингу.