===== Развертывание приложения веб интерфейса администратора (Debian 13) =====
Развертывание производим на подготовленный сервер, согласно [[imain_install_deb13_web|инструкции]], все действия выполнять из под **пользователя mpweb**, если не указано иное:
1. Добавить в ~/.bashrc:
export PYENV_ROOT=/opt/pyenv
**Это важно!** Не забудьте выйти - войти пользователем!\\
2. Создадим виртуальное окружение:
python3.8 -m venv ~/.virtualenvs/mpweb
3. Для активации окружения выполняем:
source ~/.virtualenvs/mpweb/bin/activate
4. Создадим файл /home/mpweb/mpweb.update, для получения веб приложения с svn репозитария, вида:
#!/bin/bash
# Global
pth=/home/mpweb/minipbx_web
USR=
URL=http://svn.minipbx.ru/minipbx_web/mpweb
if [ "$1" = "checkout" ]; then
# Checkout!
mkdir $pth
svn checkout --username $USR --no-auth-cache $URL $pth
elif [[ "$1" = "update" || "$1" = "" ]]; then
# Update
svn update --username $USR --no-auth-cache $pth
else
echo "Unknown command!"
fi
Сделаем исполняемым и получим репозитарий:
chmod +x /home/mpweb/mpweb.update
/home/mpweb/mpweb.update checkout
5. Или, вместо пп4, скачайте и распакуйте предоставленный архив.\\
6. Установим зависимости:
source ~/.virtualenvs/mpweb/bin/activate
pip3.8 install -r /home/mpweb/minipbx_web/requirements.txt
pip3.8 install pyramid_genshi pyramid_jinja2 bcrypt
7. [Переделать] Установить egg для pyserv:
# По идее это должно работать так:
python3.8 /home/mpweb/minipbx_web/setup.py install
Но, так как задумывалось НЕ работает... Создадим руками:
mkdir ~/.virtualenvs/mpweb/lib/python3.8/site-packages/mpweb-1.0-py3.8.egg
ln -s -T /home/mpweb/minipbx_web/mpweb.egg-info ~/.virtualenvs/mpweb/lib/python3.8/site-packages/mpweb-1.0-py3.8.egg/EGG-INFO
ln -s -T ~/minipbx_web/mpweb ~/.virtualenvs/mpweb/lib/python3.8/site-packages/mpweb-1.0-py3.8.egg/mpweb
8. Скопируем файлы настроек и запускаемый скрипт:
cp /home/mpweb/minipbx_web/development.ini.sample /home/mpweb/minipbx_web/development.ini
cp /home/mpweb/minipbx_web/production.ini.sample /home/mpweb/minipbx_web/production.ini
# если каталог отсутствует то нужно выйти войти под mpweb (пере зайти в сессию)
mkdir /home/mpweb/bin
cp /home/mpweb/minipbx_web/scripts/run_mpweb /home/mpweb/bin/run_mpweb
9. Обновим языковые файлы (предоставляются в текстовом виде, нужно скомпилировать):
/home/mpweb/minipbx_web/lcompile.sh
10. Запустим:
/home/mpweb/bin/run_mpweb
Можно выполнять из без пути (просто run_mpweb), но только в том случае если файл лежит ~/bin и каталог ~/bin был создан ДО входа в текущую сессию! Если запуск выполнился без ошибок, то двигаемся дальше.\\
11. Установим службу (из под root):
cp /home/mpweb/minipbx_web/scripts/mpweb.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable mpweb
systemctl start mpweb
systemctl status mpweb
12. Распакуем из архива (www/www.tar.gz) в /var/www/ следующие каталоги (из под root):
* fontawesome/5.8.1
* webix/10.2.0
* mp
13. Настройка nginx (из под root):
* Создадим файл /etc/nginx/conf.d/http_upgrade.conf:
map $http_upgrade $connection_upgrade {
default upgrade;
"" close;
}
* Создадим файл /etc/nginx/sites-enabled/mpweb:
server {
server_name <ИМЯ ДОМЕНА>;
client_max_body_size 32m;
location / {
root /var/www/mp;
index index.html;
# kill cache
add_header Last-Modified $date_gmt;
add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
if_modified_since off;
expires off;
etag off;
}
location /webix/ {
rewrite ^/webix/(.*) /$1 break;
root /var/www/webix/10.2.0;
}
location /fa/ {
rewrite ^/fa/(.*) /$1 break;
root /var/www/fontawesome/5.8.1/;
}
location /api/ {
rewrite ^/api/(.*) /$1 break;
proxy_pass http://127.0.0.1:8000;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Connection keep-alive;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
root /var/www/mp;
listen 80;
}
Не забудьте поменять <ИМЯ ДОМЕНА>, на свое имя. И добавить ssl.\\
14. Добавим символическую ссылку и проверим конфигурацию (из под root).
ln -s /etc/nginx/sites-available/mpweb /etc/nginx/sites-enabled/
nginx -t
# если тест ОК, то
systemctl restart nginx