Smarty

  1. Домой
  2. Документы
  3. Smarty
  4. Защищено: Инструкция по установке
  5. Установка Smarty на Debian 12

Установка Smarty на Debian 12

Содержание показать

В данной статье описаны два варианта установки Smarty: на один сервер и на несколько серверов.

Установка Smarty и компонентов на единственном сервере c Debian 12

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

sudo su -

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

Нужно установить зависимости через APT:

apt update
apt install git libtiff-dev libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev python3-tk uwsgi uwsgi-plugin-python3 redis-server build-essential wget pwgen libmariadb-dev nginx python-is-python3 python3-pip python3-pip-whl python3-setuptools-whl python3-venv python3.11-venv

Далее необходимо скачать установочный deb-пакет:

dpkg -i smarty-base*.deb

Для дальнейшей работы потребуется установить Smarty в виртуальное окружение и установить необходимые библиотеки для работы:

smarty_manage venv-install
smarty_manage requirements

Внимание! Необходимо использовать установочный пакет Smarty именно для версии Debian Bookworm, он располагается в директории bookworm. В противном случае при выполнении дальнейших команд может возникнуть ошибка undefined symbol: PyFPE_jbuf.

Для регулирования количества открытых файлов в /etc/security/limits.conf требуется указать в конце файла:

*    soft nofile   200000
*    hard nofile   200000

Настройка Redis

В случае, если установка Smarty и Redis происходит на одном сервере, следует добавить следующие параметры в файл /etc/redis/redis.conf:

stop-writes-on-bgsave-error no
save ""

Из-за того, что не всегда принимаются настройки количества открытых файлов (см. Установка необходимых пакетов), это необходимо принудительно прописать в файле /etc/default/redis-server, изменив параметр ULIMIT на 200000, и в файле /lib/systemd/system/redis-server.service, изменив значение LimitNOFILE на 200000.

Перезагрузить Redis:

sudo systemctl daemon-reload
sudo service redis-server restart

Настройка СУБД для работы Smarty

Внимание! Следующие команды необходимо прописывать под root-правами.

Smarty поддерживает различные СУБД, по типу MySQL, MariaDB или PostgreSQL. Для Debian Bookworm следует установить MariaDB:

apt install mariadb-server

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

export DBPASSWORD=`pwgen -s 16 1`
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/smarty.py

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

Из-за того, что не всегда принимаются настройки количества открытых файлов (см. Установка необходимых пакетов), это необходимо принудительно прописать в файле /lib/systemd/system/mariadb.service, изменив значение LimitNOFILE на 200000.

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

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

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

Теперь нужно активировать конфигурацию Smarty для uWSGI:

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

Также нужно изменить лимит открытых сокетов для оптимальной работы uWSGI:

sudo su -c 'echo "net.core.somaxconn=64000" >> /etc/sysctl.conf'
systemctl daemon-reload
sysctl -p

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

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

Подготовка конфигурации Web-сервера nginx

Необходимо активировать конфигурацию Smarty для nginx:

sudo ln -s /etc/nginx/sites-available/smarty /etc/nginx/sites-enabled/smarty

Далее нужно создать директорию для кеша и логов nginx:

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

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

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

Затем настроить хранение кеша nginx в tmpfs:

sudo su -c 'echo tmpfs /var/cache/nginx/smarty tmpfs defaults,size=1200M 0 0 >> /etc/fstab'
systemctl daemon-reload
sudo mount -a

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

На данном этапе необходимо прописать лицензионный ключ.

Для получения лицензионного ключа необходимо использовать HW key — отпечаток машины, на которой установлена Smarty. Чтобы его получить, потребуется в /etc/microimpuls/smarty/uwsgi/smarty.uwsgi поменять settings.prod на settings.smarty. После этого следует перезагрузка uWSGI:

sudo service uwsgi restart

Необходимо подождать около минуты для загрузки uWSGI и только после этого завершить работу:

sudo service uwsgi stop

При каждом рестарте uWSGI не забудьте убедиться, что старые процессы uWSGI убиты (можно проверить при помощи ps aux | grep uwsgi и обратить внимание на процессы с более ранним временем старта, убить их с помощью sudo killall -9 uwsgi при необходимости), а затем в файле /var/log/uwsgi/app/smarty.log найти значение HW key или воспользоваться командой:

sudo cat /var/log/uwsgi/app/smarty.log | grep "HW key"

Полученный HW key будет иметь следующий вид (пример):

9eb4a0c2b360c93e32cf2471780cda494705f0a9d026c69fe033d8c8

Это значение необходимо вставить в соответствующее поле в окне генерации лицензии в личном кабинете оператора (кнопка «Сгенерировать новый лицензионный ключ»).

После этого скопировать получившийся ключ со всеми параметрами лицензии, нажав кнопку под столбцом «Копировать».

Ключ и параметры необходимо прописать в файл конфигурации /etc/microimpuls/smarty/smarty.py.

Генерация лицензии вызывается по кнопке «Сгенерировать новый лицензионный ключ» в соответствующем продукте в личном кабинете.

Копирование лицензии и всех параметров производится с помощью кнопки «Копировать» в строке с лицензионным ключом.

После добавления конфигурации лицензии необходимо проверить, что она валидна. Для этого нужно перезапустить uWSGI и проверить логи на отсутствие ошибок лицензии и на отсутствие Traceback логов из-за отсутствия дополнительных Python-библиотек.

sudo service uwsgi restart

Не забудьте убедиться, что старые процессы uWSGI убиты.

Проверка логов:

sudo tail -n 1000 /var/log/uwsgi/app/*.log | grep "*** Starting" -A 100

Лог последнего запуска не должен содержать ошибок «Key Incorrect» и «Traceback».

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

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

sudo smarty_manage migrate

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

Команда для перезапуска nginx и uWSGI с актуальными настройками:

sudo service nginx restart
sudo service uwsgi restart

Не забудьте убедиться, что старые процессы uWSGI убиты.

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

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

sudo smarty_manage setup_initial_data

В дальнейшем можно их отредактировать, добавив свои данные.

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

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

*/1 * * * * root smarty_manage cache_channel_list --settings=settings.smarty
0 9,18 * * * root smarty_manage epg_import --settings=settings.smarty
0 3 * * * root smarty_manage clean_old_messages --days_count 3 --settings=settings.smarty

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

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

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

Данная команда выведет первый сгенерированный пароль на 16 символов:

echo `pwgen -s 16 1`

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

sudo smarty_manage createsuperuser

Во время создания суперадминистратора необходимо указать сгенерированный до этого пароль.
Внимание! Важные пункты для заполнения:

  • Логин
  • Пароль
  • Подтверждения пароля

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

Для корректного отображения картинок/стилей в Django-админке необходимо исправить в каталоге /etc/nginx/sites-enabled/smarty* путь к пакету Django для текущей версии Python.
Для этого необходимо обновить пути для следующих location:

location ^~ /admin/media/css/ {
alias /usr/local/lib/python
2.7/dist-packages/django/contrib/admin/static/admin/css/;
}
location ^~ /admin/media/img/ {
alias /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/img/;
}
location ^~ /admin/media/js/ {
alias /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/js/;
}
location ^~ /media/static/admin/css/ {
alias /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/css/;
}
location ^~ /media/static/admin/img/ {
alias /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/img/;
}
location ^~ /media/static/admin/js/ {
alias /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/js/;
}

Для установленного Python версии 3.11 (проверить версию Python можно командой python -V) в alias следует вместо 2.7 указать новую версию — 3.11. Для этого нужно прописать:

sudo sed -i -e 's/python2.7/python3.11/g' /etc/nginx/sites-available/smarty*

Перезапустить nginx для применения изменений:

sudo systemctl restart nginx

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

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

Настройка Smarty Portal

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

После установки портала необходимо обязательно заменить в nginx-конфигурации портала location srv1 на mw1 и после этого перезагрузить конфигурацию nginx:

sudo sed -i -e 's/srv1/mw1/g' /etc/nginx/sites-available/portal
sudo service nginx restart

После всех указанных действий в файле /etc/microimpuls/portal/client.js в поле api_key нужно ввести ключ, который можно получить в админ-панели Smarty: Общие настройки -> Общие настройки Client -> TVMW API key:

Либо воспользоваться следующей командой (заменить TVMWAPIkey на свой API ключ):

sudo sed -i -e 's/PUT API KEY HERE/'TVMWAPIkey'/g' /etc/microimpuls/portal/client.js

В конфигурации nginx по умолчанию задан специальный location /api, который направляет запросы к API в uWSGI-сокет Smarty, поэтому стандартное значение параметра api_url можно не менять.

Подробнее об опциях подключения портала к Smarty и других настройках можно узнать в разделе Опции портала.

После этого нужно открыть портал в браузере для проверки правильности настройки, введя IP-адрес сервера (порт 80 по умолчанию). Если все сделано верно, то появится экран авторизации:

Можно использовать логин/пароль демо-аккаунта 123/123.

Для открытия портала на ТВ-приставке нужно указать в настройках устройства тот же адрес портала, что и в браузере.

Установка Smarty и компонентов на несколько серверов с Debian 12

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

sudo su -

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

Если ваша абонентская база довольно большая и вы не уверены, что один сервер выдержит большое количество запросов от абонентов, то советуем разделить всё на четыре сервера: сервер с Redis, сервер с MariaDB, сервер со Smarty и сервер с Portal, однако можно сочетать несколько серверов в один (например, MariaDB + Redis, Smarty + Redis).

Команды, которые нужно прописать на разные сервера:

Redis:

sudo apt update
sudo apt install redis

MariaDB:

sudo apt update
sudo apt install pwgen mariadb-server

Smarty:

sudo apt update
sudo apt install wget git libtiff-dev pwgen libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev python3-tk uwsgi uwsgi-plugin-python3 libmariadb-dev python3-pip python-is-python3
python3-pip-whl python3-setuptools-whl python3.11-venv nginx-common nginx nginx-extras

Далее необходимо скачать установочные deb-пакеты Smarty и Portal (можно получить в личном кабинете) и установить на сервер:

dpkg -i smarty-base*.deb
dpkg -i mw-engine_*.deb
dpkg -i mw-template-*.deb

Также на каждом сервере стоит изменить количество открытых файлов в /etc/security/limits.conf. Для этого в конце файла прописать следующее:

*    soft nofile   200000
*    hard nofile   200000

Настройка Redis

После установки на выделенный сервер необходимо настроить Redis.

Во-первых, нужно добавить параметры в файл /etc/redis/redis.conf:

stop-writes-on-bgsave-error no
save ""

Во-вторых, изменить параметр bind со значения 127.0.0.1 на 0.0.0.0

Внимание! Firewall должен быть настроен так, чтобы была возможность зайти только с сервера со Smarty.

Из-за того, что не всегда принимаются настройки количества открытых файлов (см. Установка необходимых пакетов), это необходимо принудительно прописать в файле /etc/default/redis-server, изменив параметр ULIMIT на 200000, и в файле /lib/systemd/system/redis-server.service, изменив значение LimitNOFILE на 200000.

Перезагрузка Redis:

sudo systemctl daemon-reload
sudo service redis-server restart

Настройка СУБД для работы Smarty

Внимание! Следующие команды необходимо прописывать под root-правами.

Smarty поддерживает различные СУБД, по типу MySQL, MariaDB или PostgreSQL. Для Debian Bookworm следует установить MariaDB. В разделе Установка необходимых пакетов, приведены примеры команд, с помощью которых можно установить MariaDB. На следующем шаге нужно создать пользователя для подключения Smarty в БД и указать пароль в настройках Smarty:

export DBPASSWORD=`pwgen -s 16 1`
echo "CREATE DATABASE smarty CHARACTER SET = utf8;" | mysql -u root
echo "SET default_storage_engine=InnoDB;" | mysql -u root
echo "CREATE USER 'smarty'@'<IP>' IDENTIFIED BY '$DBPASSWORD';" | mysql -u root
echo "GRANT ALL PRIVILEGES ON smarty.* TO 'smarty'@'<IP>';" | mysql -u root
echo "FLUSH PRIVILEGES;" | mysql -u root
echo $DBPASSWORD

Последняя команда выводит сгенерированный пароль. Этот пароль потребуется ввести при настройке Smarty, его нужно сохранить.

Так как MariaDB установлен на выделенный сервер, следует поменять IP-адрес, с которого можно будет подключиться к СУБД. Для этого в файле /etc/mysql/mariadb.conf.d/50-server.cnf нужно указать:

bind-address       =    0.0.0.0

Внимание! Firewall должен быть настроен так, чтобы была возможность зайти только с сервера со Smarty.

Из-за того, что не всегда принимаются настройки количества открытых файлов (см. Установка необходимых пакетов), это необходимо принудительно прописать в файле /lib/systemd/system/mariadb.service, изменив значение LimitNOFILE на 200000.

Настройка Smarty

Для дальнейшей работы потребуется установить Smarty в виртуальное окружение и установить необходимые библиотеки для работы:

smarty_manage venv-install
smarty_manage requirements

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

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

Если redis-server стоит на удаленном сервере, то в smarty.py необходимо указать:

CACHES = {
'default': {
'BACKEND': 'core.cache.backends.RedisCache',
'LOCATION': 'redis://ip-redis-server:6379/1',
'OPTIONS': {
'PICKLE_VERSION': 5
}
},
'protected': {
'BACKEND': 'core.cache.backends.RedisCache',
'LOCATION': 'redis://ip-redis-server:6379/2',
'OPTIONS': {
'PICKLE_VERSION': 5
}
},
}

Также, если MariaDB стоит на выделенном сервере, то необходимо в пункте HOST прописать IP СУБД и пароль, который был сгенерирован. Если используется нестандартный порт, имя пользователя и/или название базы данных, то их тоже необходимо исправить.

Также необходимо ввести пароль от базы данных, который сгенерировали на сервере с MariaDB в PUT DB PASSWORD HERE.

Затем следует активировать конфигурацию Smarty для uWSGI:

sudo ln -s /etc/uwsgi/apps-available/smarty.ini /etc/uwsgi/apps-enabled/smarty.ini

Также нужно изменить лимит открытых сокетов для оптимальной работы uWSGI:

sudo su -c 'echo "net.core.somaxconn=64000" >> /etc/sysctl.conf'
systemctl daemon-reload
sysctl -p

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

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

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

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

Подготовка конфигурации Web-сервера nginx

Необходимо активировать конфигурацию Smarty для nginx:

sudo ln -s /etc/nginx/sites-available/smarty /etc/nginx/sites-enabled/smarty

Далее нужно создать директорию для кеша и логов nginx:

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

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

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

В конце следует настроить хранение кеша nginx в tmpfs:

sudo su -c 'echo tmpfs /var/cache/nginx/smarty tmpfs defaults,size=1200M 0 0 >> /etc/fstab'
systemctl daemon-reload
sudo mount -a

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

На данном этапе необходимо прописать лицензионный ключ.

Для получения лицензионного ключа необходимо использовать HW key — отпечаток машины, на которой установлена Smarty. Чтобы его получить, потребуется в /etc/microimpuls/smarty/uwsgi/smarty.uwsgi поменять settings.prod на settings.smarty. После этого следует перезагрузка uWSGI:

sudo service uwsgi restart

Необходимо подождать около минуты для загрузки uWSGI и только после этого завершить работу:

sudo service uwsgi stop

При каждом рестарте uWSGI не забудьте убедиться, что старые процессы uWSGI убиты (можно проверить при помощи ps aux | grep uwsgi и обратить внимание на процессы с более ранним временем старта, убить их с помощью sudo killall -9 uwsgi при необходимости), а затем в файле /var/log/uwsgi/app/smarty.log найти значение HW key или воспользоваться командой:

sudo cat /var/log/uwsgi/app/smarty.log | grep "HW key"

Полученный HW key будет иметь следующий вид (пример):

9eb4a0c2b360c93e32cf2471780cda494705f0a9d026c69fe033d8c8

Это значение необходимо вставить в соответствующее поле в окне генерации лицензии в личном кабинете оператора (кнопка «Сгенерировать новый лицензионный ключ»).

После этого скопировать получившийся ключ со всеми параметрами лицензии (нажав кнопку под столбцом «Копировать»).

Ключ и параметры необходимо прописать в файл конфигурации /etc/microimpuls/smarty/smarty.py.

Генерация лицензии вызывается по кнопке «Сгенерировать новый лицензионный ключ» в соответствующем продукте в личном кабинете.

Копирование лицензии и всех параметров производится с помощью кнопки «Копировать» в строке с лицензионным ключом.

После добавления конфигурации лицензии необходимо проверить, что она валидна. Для этого нужно перезапустить uWSGI и проверить логи на отсутствие ошибок лицензии и на отсутствие Traceback логов из-за отсутствия дополнительных Python-библиотек.

sudo service uwsgi restart

Не забудьте убедиться, что старые процессы uWSGI убиты.

Проверка логов:

sudo tail -n 1000 /var/log/uwsgi/app/*.log | grep "*** Starting" -A 100

Лог последнего запуска не должен содержать ошибок «Key Incorrect» и «Traceback».

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

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

sudo smarty_manage migrate

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

Команда для перезапуска nginx и uWSGI с актуальными настройками:

sudo service nginx restart
sudo service uwsgi restart

Не забудьте убедиться, что старые процессы uWSGI убиты.

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

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

sudo smarty_manage setup_initial_data

В дальнейшем можно их отредактировать, добавив свои данные.

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

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

*/1 * * * * root smarty_manage cache_channel_list --settings=settings.smarty
0 9,18 * * * root smarty_manage epg_import --settings=settings.smarty
0 3 * * * root smarty_manage clean_old_messages --days_count 3 --settings=settings.smarty

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

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

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

Данная команда выведет первый сгенерированный пароль на 16 символов:

echo `pwgen -s 16 1`

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

sudo smarty_manage createsuperuser

Во время создания суперадминистратора необходимо указать сгенерированный до этого пароль.
Внимание! Важные пункты для заполнения:

  • Логин
  • Пароль
  • Подтверждения пароля

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

Для корректного отображения картинок/стилей в Django-админке необходимо исправить в каталоге /etc/nginx/sites-enabled/smarty* путь к пакету Django для текущей версии Python.
Для этого необходимо обновить пути для следующих location:

location ^~ /admin/media/css/ {
alias /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/css/;
}
location ^~ /admin/media/img/ {
alias /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/img/;
}
location ^~ /admin/media/js/ {
alias /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/js/;
}
location ^~ /media/static/admin/css/ {
alias /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/css/;
}
location ^~ /media/static/admin/img/ {
alias /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/img/;
}
location ^~ /media/static/admin/js/ {
alias /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/js/;
}

Для установленного Python версии 3.11 (проверить версию Python можно командой python —version) в alias следует вместо 2.7 указать новую версию — 3.11. Для этого надо прописать:

sudo sed -i -e 's/python2.7/python3.11/g' /etc/nginx/sites-available/smarty*

Перезапустить nginx для применения изменений:

sudo systemctl restart nginx

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

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

Настройка Smarty Portal

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

После установки портала необходимо обязательно заменить в nginx-конфигурации портала location srv1 на mw1 и после этого перезагрузить конфигурацию nginx:

sudo sed -i -e 's/srv1/mw1/g' /etc/nginx/sites-available/portal
sudo service nginx restart

После всех указанных действий в файле /etc/microimpuls/portal/client.js в поле api_key нужно ввести ключ, который можно получить в админ-панели Smarty: Общие настройки -> Общие настройки Client -> TVMW API key:

Либо воспользоваться следующей командой (заменить TVMWAPIkey на свой API ключ):

sudo sed -i -e 's/PUT API KEY HERE/'TVMWAPIkey'/g' /etc/microimpuls/portal/client.js

В конфигурации nginx по умолчанию задан специальный location /api, который направляет запросы к API в uWSGI-сокет Smarty, поэтому стандартное значение параметра api_url можно не менять.

Подробнее об опциях подключения портала к Smarty и других настройках можно узнать в разделе Опции портала.

После этого нужно открыть портал в браузере для проверки правильности настройки, введя IP-адрес сервера (порт 80 по умолчанию). Если все сделано верно, то появится экран авторизации:

Можно использовать логин/пароль демо-аккаунта 123/123.

Для открытия портала на ТВ-приставке нужно указать в настройках устройства тот же адрес портала, что и в браузере.