===== Развертывание приложения веб интерфейса пользователя (Debian 13) ===== азвертывание производим на подготовленный сервер, согласно [[imain_install_deb13_web|инструкции]], все действия выполнять из под **пользователя mpweb**, если не указано иное: 1. Добавить в ~/.bashrc: export PYENV_ROOT=/opt/pyenv **Это важно!** Не забудьте выйти - войти пользователем!\\ 2. Создадим виртуальное окружение: python3.8 -m venv ~/.virtualenvs/mpami 3. Для активации окружения выполняем: source ~/.virtualenvs/mpami/bin/activate 4. Создадим файл /home/mpweb/mpami.update, для получения веб приложения с svn репозитария, вида: #!/bin/bash # Global pth=/home/mpweb/minipbx_ami USR= URL=http://svn.minipbx.ru/minipbx_web/mpami 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/mpami.update /home/mpweb/mpami.update checkout 5. Или, вместо пп4, скачайте и распакуйте предоставленный архив.\\ 6. Установим зависимости: source ~/.virtualenvs/mpami/bin/activate pip3.8 install -r /home/mpweb/minipbx_ami/requirements.txt pip3.8 install python-multipart aiomysql aiosqlite 7. Если вы будете использовать другое место для хранения внутренней DB (параметр DB.internal_url в mpami.ini), то необходимо этот путь создать и дать права для пользователя mpweb (из под root): mkdir /var/lib/mpami chown mpweb:mpweb -R /var/lib/mpami Также, если будет использоваться кэш для медиа файлов (параметр media_cache.path в mpami.ini), то необходимо этот путь создать и дать права для пользователя mpweb (из под root): mkdir /var/www/media_cache chown mpweb:mpweb -R /var/www/media_cache 8. Скопируем файлы настроек и запускаемый скрипт: cp /home/mpweb/minipbx_ami/mpami.ini.sample /home/mpweb/minipbx_ami/mpami.ini # если каталог отсутствует то нужно выйти войти под mpweb (пере зайти в сессию) mkdir /home/mpweb/bin cp /home/mpweb/minipbx_ami/scripts/run_mpami /home/mpweb/bin/run_mpami 9. Обновим языковые файлы (предоставляются в текстовом виде, нужно скомпилировать): /home/mpweb/minipbx_ami/lcompile.sh 10. Запустим: /home/mpweb/bin/run_mpami Можно выполнять из без пути (просто run_mpami), но только в том случае если файл лежит ~/bin и каталог ~/bin был создан ДО входа в текущую сессию! Если запуск выполнился без ошибок, то двигаемся дальше.\\ 11. Установим службу (из под root): cp /home/mpweb/minipbx_ami/bin/mpami.service /etc/systemd/system/ systemctl daemon-reload systemctl enable mpami systemctl start mpami systemctl status mpami 12. Распакуем из архива (www/www.tar.gz) в /var/www/ следующие каталоги (из под root): * fontawesome/5.8.1 * webix/10.2.0 * ump 13. Настройка nginx (из под root): * Создадим файл /etc/nginx/conf.d/http_upgrade.conf: map $http_upgrade $connection_upgrade { default upgrade; "" close; } * Создадим файл /etc/nginx/sites-enabled/mpami: server { server_name <ИМЯ ДОМЕНА>; client_max_body_size 32m; location / { root /var/www/ump; 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:8008; 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; } location /media_cache/ { rewrite ^/media_cache/(.*) /$1 break; root /var/www/media_cache/; } location /ws { proxy_pass http://127.0.0.1:8008; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } root /var/www/ump; listen 80; } Не забудьте поменять <ИМЯ ДОМЕНА>, на свое имя. И добавить ssl.\\ 14. Добавим символическую ссылку и проверим конфигурацию (из под root). ln -s /etc/nginx/sites-available/mpami /etc/nginx/sites-enabled/ nginx -t # если тест ОК, то systemctl restart nginx