Тут зібрані мій bash скрипт, і рецепт для створення AppImage пакета сервера AceStream в pkg2appimage. Скрипт, за допомогою Docker контейнера на базі docker імеджу debian:9-slim, білдить AppImage файл, що містить у собі AceStream-3.1.49
, взятий на офіційному ресурсі wiki.acestream.media.
Основний біль запуску цього сервера - залежність від python2.7, який випилений на більшості сучасних десктопних linux операційних системах. Причина за якою вирішив білдити в Docker контейнері - не доведеться встановлювати залежності для роботи pkg2appimage засмічуючи систему. Не став вимагати можливості роботи скрипта без прав root
, бо скрипт досить простий, і не складно побачити, що sudo використовується тільки для простих операцій з файлами, які створюються в docker volume і власник у них користувач root
. Для запуску docker контейнера довелося використовувати ключ --privileged
. Без нього не працював fuse
усередині контейнера. Загалом це ніби і дірка у безпеці, але оскільки всі компоненти проекту OpenSouce, і docker використовуэться тільки для створення пакету appimage, то не критично. Файл pkg2appimage.appimage
взято з офіційного репозиторію на GitHub.
Передбачена можливість роботи сервера тільки в режимі --client-console
, але як на мене цього цілком достатньо.
Весь проект займає не більше 100 мб, при цьому пакет сервера займає в районі 49 мб. Однак у процесі білда знадобиться щонайменше 500-700 мб
вільного місця на диску. Варто зазначити, що скрипт видаляє після себе і docker контейнер і docker імедж і непотрібні файли після білду.
Робота зі скриптами дуже проста. Для створення appimage пакета з сервером AceStream потрібно, знаходячись у директорії проекту, запустити скрипт:
./start-create-appimage.sh
За замовчуванням скрипт перевірить наявність у системі встановленого бінарника docker і якщо він буде виявлений, білд буде створюватись у контейнері. Якщо docker не буде знайдено, запуститься створення в поточному вікні терміналу. У процесі роботи скрипта в термінал буде виводитися багато інформації, що допоможе одразу з'ясувати причини помилок, якщо такі виникнуть. У разі відсутності помилок, буде відображено інформацію про успішне завершення роботи скрипта, і де можна знайти створений файл AppImage.
Є можливість примусово створити білд без використання docker. Для цього використовується ключ -t
:
./start-create-appimage.sh -t
Після успішного створення білда, у терміналі також з'явиться підказка, за якою можна знайти створений файл AppImage.
Для запуску сервера можна використовувати файл конфігурації ./build/$BUILD/acestream.conf
. Під час створення бінарника цей файл копіюється з корня проекту автоматично! У ньому налаштовуються параметри запуску. Мінімально повинен бути рядок --client-console
і він повинен бути найпершим у файлі!
Щоб запустити сервер AceStream, достатньо запустити бінарник:
./build/$BUILD/AceStream-$ACE_VERSION-$VER.AppImage
$BUILD - піддиректорія з номером білда (генерується під час виконання скрипту start-create-appimage.sh
)
$ACE_VERSION-$VER - версія сервера acestream та версія даного проекту
Можна використовувати ключі(прапорці) користувача запускаючи бінарник AppImage. Вони будуть перевизначати параметри, прописані в конфігураційному файлі ./build/$BUILD/acestream.conf (крім параметра --client-console).
Відразу після запуску бінарника AppImage відбувається автоматична інтеграція програми з системою:
- створюється файл іконки
/home/$USER/.local/share/icons/acestream-$ACE_VERSION.png
- створюється файл запуску сервера
/home/$USER/.local/share/applications/acestream-start-$ACE_VERSION.desktop
- створюється файл зупинки сервера
/home/$USER/.local/share/applications/acestream-stop-$ACE_VERSION.desktop
Після цього сервер AceStream має значки запуску та зупинки в меню програм вашого дестрибутива Linux.
Веб інтерфейс сервера доступний за адресою:
http://localhost:(--http-port)/webui/app/(--access-token)/server#proxy-server-main
--http-port и --access-token задаються або в терміналі ключем запуску або в конфігураційному файлі acestream.conf
Для того, щоб випилити програму з системи, достатньо виконати команду:
rm -rf /home/$USER/.local/share/applications/acestream-st* /home/$USER/.local/share/icons/acestream-*
Але потрібно пам'ятати, що при запуску бінарника AppImage, сервер створює додаткові файли: --cache-dir
, --state-dir
, --log-file
. Їхнє розташування можна переглянути в конфігураційному файлі acestream.conf.