1. На главную
  2. База знаний
  3. Smarty Lite
  4. Инструкция по установке
  5. Установка Smarty Lite на Debian 8, 9

Установка Smarty Lite на Debian 8, 9

Ниже приведена инструкция по установке Smarty Lite на сервер с ОС Debian Jessie и Stretch. Информацию о настройке тех или иных функций или сервисов платформы Smarty Middleware, которую вы не найдёте здесь, вам следует искать на странице помощи полной версии Smarty: ссылка.

Для работы потребуется SSH доступ к серверу с правами root. Установка будет производится в консольном режиме через команды терминала. Если для получения привилегий root требуется выполнить команду sudo, то перед началом установки необходимо выполнить команду:

sudo su

Установка необходимых пакетов и библиотек

Устанавливаем зависимости с помощью apt:

apt update
apt install git python-dev libtiff-dev libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev python-tk uwsgi uwsgi-plugin-python redis-server build-essential wget pwgen libmysqlclient-dev nginx 

Далее устанавливаем утилиту pip, она потребуется для установки используемых python-библиотек:

wget https://bootstrap.pypa.io/get-pip.py && python get-pip.py && rm get-pip.py 

Далее необходимо скачать с FTP установочные deb-пакеты smarty-lite и python2.7-jsonrpctcp и установить их:

dpkg -i smarty-lite*.deb
dpkg -i python2.7-jsonrpctcp_*.deb

После установки основных пакетов необходимо выполнить установку python-библиотек, используемых в Smarty. Для этого выполните:

pip install -r /usr/share/microimpuls/smarty-lite/requirements.txt 

Установка СУБД для работы Smarty Lite

Smarty Lite поддерживает различные СУБД, в базовом варианте рекомендуется использовать MySQL:

apt install mysql-server

Создаём пользователя для подключения Smarty Lite в БД и указываем пароль в настройках Smarty Lite:

export DBPASSWORD=`pwgen -s 16`
echo "CREATE DATABASE smarty CHARACTER SET = utf8;" | mysql -u root
echo "SET default_storage_engine=InnoDB;" | mysql -u root
echo "CREATE USER 'smarty'@'localhost' IDENTIFIED BY '$DBPASSWORD';" | mysql -u root
echo "GRANT ALL PRIVILEGES ON smarty.* TO 'smarty'@'localhost';" | mysql -u root
echo "FLUSH PRIVILEGES;" | mysql -u root
sed -i -e 's/PUT DB PASSWORD HERE/'"$DBPASSWORD"'/g' /etc/microimpuls/smarty-lite/smarty-lite.py

Последняя команда заменяет строку «PUT DB PASSWORD HERE» на сгенерированный автоматически пароль в файле /etc/microimpuls/smarty-lite/smarty-lite.py — файл настроек Smarty Lite.

В файле настроек Smarty Lite по умолчанию указаны настройки подключения к локально установленной СУБД MySQL (или совместимой с ней MariaDB), однако при необходимости можно установить СУБД на другую машину.

Подготовка конфигурации Web-сервера nginx и сервера приложений uWSGI

Прописываем секретный ключ для работы внутренних механизмов защиты Smarty Lite:

export SECRETKEY=`pwgen -s 32`
sed -i -e 's/PUT RANDOM SECRET KEY HERE/'"$SECRETKEY"'/g' /etc/microimpuls/smarty-lite/smarty-lite.py

Активируем конфигурацию Smarty Lite для nginx и uwsgi:

ln -s /etc/nginx/sites-available/smarty-lite /etc/nginx/sites-enabled/smarty-lite
ln -s /etc/uwsgi/apps-available/smarty-lite.ini /etc/uwsgi/apps-enabled/smarty-lite.ini

Создаем директорию для кеша и логов nginx:

mkdir /var/cache/nginx
mkdir -p /var/log/nginx/microimpuls/smarty-lite

Изменяем лимит открытых сокетов для оптимальной работы uwsgi:

echo "net.core.somaxconn=4096" >> /etc/sysctl.conf
sysctl -p

Установим правильные права на директории для логов и загрузки файлов в Smarty:

chown -R www-data:www-data /var/log/microimpuls
chown -R www-data:www-data /usr/share/nginx/html/microimpuls

Установка лицензионного ключа

Дальше необходимо прописать лицензионный ключ. В ближайшее время мы запустим личный кабинет клиента, где вы сможете самостоятельно получить лицензионный ключ, а сейчас его необходимо запросить через менеджера отдела продаж Microimpuls, с которым вы взаимодействуете по договору. Приносим извинения за временные неудобства.

Для запроса лицензионного ключа вам необходимо предоставить HW key — отпечаток машины, на котором установлена Smarty Lite. Для его получения необходимо запустить uwsgi:

/etc/init.d/uwsgi restart

А затем в файле /var/log/uwsgi/app/smarty-lite.log найти значение HW key, или воспользоваться командой:

cat /var/log/uwsgi/app/smarty-lite.log | grep "Exception: Key incorrect, HW key"

Например, полученный HW key будет иметь следующий вид:

9eb4a0c2b360c93e32cf2471780cda494705f0a9d026c69fe033d8c8

Это значение необходимо отправить менеджеру, после чего он предоставит вам лицензионный ключ: значения параметров SMARTY_KEY, SMARTY_MAX_CLIENTS, SMARTY_AVAILABLE_UNTIL и SMARTY_LICENSE_PARAMS, которые необходимо прописать в файл конфигурации /etc/microimpuls/smarty-lite/smarty-lite.py.

Установка схемы БД

Выполним установку схемы базы данных Smarty Lite с помощью встроенного механизма миграций данных:

python /usr/share/microimpuls/smarty-lite/manage.py migrate --settings=settings.smarty-lite

Запуск сервисов

Перезапустим nginx и uwsgi с актуальными настройками:

/etc/init.d/nginx restart
/etc/init.d/uwsgi restart

Установка системных настроек и примера конфигурации

Для быстрого старта использования Smarty Lite мы подготовили команду, которая установит системные настройки и создаст примеры данных — наборы телеканалов, EPG, тарифы, стриминг-сервисы и другие объекты, необходимые для работы сервиса IPTV & OTT. Для этого выполните:

python /usr/share/microimpuls/smarty-lite/manage.py setup_initial_data --settings=settings.smarty-lite

Затем вы сможете отредактировать их и добавить свои данные.

Настройка регулярных команд в crontab

Для корректной работы Smarty Lite и актуализации данных абонентов требуется настроить в crontab выполнение команд по расписанию, для этого в конце файла /etc/crontab добавьте следующие строки:

*/1 * * * * python /usr/share/microimpuls/smarty-lite/manage.py cache_channel_list --settings=settings.smarty-lite
0 5,9,13 * * * python /usr/share/microimpuls/smarty-lite/manage.py epg_import --settings=settings.smarty-lite
0 3 * * * python /usr/share/microimpuls/smarty-lite/manage.py clean_old_messages --days_count 3 --settings=settings.smarty-lite

Первая команда обновляет кеш телеканалов. Вторая команда импортирует EPG (телегид) каждые сутки 3 раза — в 5:00, 9:00 и 13:00 по времени сервера. Третья команда очищает старые недоставленные до абонентов текстовые сообщения и команды (с датой создания старше трех дней).

Создание пользователя и начало работы

Управление сервисом IPTV & OTT в Smarty Lite осуществляется через Web-панель управления.

Далее создадим пользователя с правами суперадминистратора для доступа в панель управления:

export ADMINPASSWORD=`pwgen -s 16`
python /usr/share/microimpuls/smarty-lite/manage.py create_user --settings=settings.smarty-lite --reset_password=False --username=admin --password=`echo $ADMINPASSWORD` --is_admin=True --client_id=1 --is_superuser=True
echo $ADMINPASSWORD

Последняя команда выведет сгенерированный пароль — сохраните его.

Затем открываем в браузере панель управления Smarty Lite http://X.X.X.X:8180 и авторизуемся созданным пользователем (в нашем примере это admin и пароль, сгенерированный выше):

Экран авторизации в Smarty Lite

Далее необходимо установить и настроить абонентский портал, соединив его с API Smarty Lite. Через портал абонент получает доступ к сервисам IPTV & OTT.