8000 GitHub - bro2020/acestream-appimage: Створення бінарника AppImage з AceStream Media
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

bro2020/acestream-appimage

Repository files navigation

acestream-appimage

Тут зібрані мій bash скрипт, і рецепт для створення AppImage пакета сервера AceStream в pkg2appimage. Скрипт, за допомогою Docker контейнера на базі docker імеджу debian:12-slim, або просто в терміналі (потрібно встановлювати додаткові залежності), створює AppImage файл, що містить у собі AceStream-3.2.3, взятий на офіційному ресурсі wiki.acestream.media.

Довгий час основним болем запуску цього сервера була залежність від python2.7, який випилений на більшості сучасних десктопних linux операційних системах. На сьогоднішній день вже підтримується версія python3.10 для Ubuntu 22.04. Але я прихильник чистих ОС, тому тут збирається бінарник на базі Debian 12 Bookworm. Docker контейнер використовую, щоб не встановлювати залежності для роботи pkg2appimage засмічуючи систему. Не став вимагати можливості роботи скрипта без прав root, бо скрипт досить простий, і не складно побачити, що sudo використовується тільки для простих операцій з файлами, які створюються в docker mount і власник у них користувач root. Для роботи pkg2appimage в docker контейнері довелося використовувати ключ --privileged. Без нього не працював fuse. Це не є проблемою безпеки, тому що docker використовуэться тільки для створення пакету appimage. Файл pkg2appimage.appimage взято з офіційного репозиторію на GitHub. Наразі використовується актуаьна версія за 2 лютого 2025 року (1eceb30).

Передбачена можливість роботи сервера тільки в режимі --client-console, але як на мене цього цілком достатньо. Весь проект займає близько 180 мб, при цьому пакет сервера займає приблизно 130 мб. Однак у процесі білда знадобиться щонайменше 1 Гб вільного місця на диску. Варто зазначити, що скрипт видаляє після себе і docker контейнер і docker імедж і непотрібні файли після білду.

Робота зі скриптами дуже проста. Для створення appimage пакета з сервером AceStream потрібно, знаходячись у директорії проекту, запустити скрипт:

  ./create-appimage.sh

За замовчуванням скрипт перевірить наявність у системі встановленого бінарника docker і якщо він буде виявлений, білд буде відбуватись у контейнері. Якщо docker не буде знайдено, запуститься створення appimage в поточному вікні терміналу. У процесі роботи скрипта в термінал буде виводитися багато інформації, що допоможе одразу з'ясувати причини помилок, якщо такі виникнуть. У разі відсутності помилок, буде відображено інформацію про успішне завершення роботи скрипта, і де можна знайти створений файл AppImage.

Є можливість примусово створити білд без використання docker. Для цього використовується ключ -t:

  ./create-appimage.sh -t

Після успішного створення білда, у терміналі також з'явиться підказка, за якою можна знайти створений файл AppImage.

Для запуску сервера можна використовувати файл конфігурації ./build/$BUILD/acestream.conf. Під час створення бінарника цей файл копіюється з корня проекту автоматично! У ньому налаштовуються параметри запуску. Мінімально повинен бути рядок --client-console і він повинен бути найпершим у файлі!

У версії 2.5 за замовчуванням вимкнено інтеграцію з системою. Для того, щоб запуск acestream appimage автоматично встановлював .desktop і файл іконки, можна використати аргумент збірки -i:

  ./create-appimage.sh -i

Або не використовувати цей аргумент при збірці, натомість при запуску acestream appimage передавати змінну оточення ACESTREAM_DESKTOP_INTEGRATION:

  ACESTREAM_DESKTOP_INTEGRATION=yes ./build/$BUILD/AceStream-$ACE_VERSION-$VER.AppImage

або

  export ACESTREAM_DESKTOP_INTEGRATION=yes
  ./build/$BUILD/AceStream-$ACE_VERSION-$VER.AppImage

Щоб просто запустити сервер AceStream, достатньо запустити бінарник:

  ./build/$BUILD/AceStream-$ACE_VERSION-$VER.AppImage

$BUILD - піддиректорія з номером білда (генерується під час виконання скрипту 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.

0