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