Skip to content

bro2020/acestream-appimage

Repository files navigation

acestream-appimage

Тут зібрані мій 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.