Развертывание приложения веб интерфейса пользователя (Debian 13)

азвертывание производим на подготовленный сервер, согласно инструкции, все действия выполнять из под пользователя 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):

13. Настройка nginx (из под root):

    map $http_upgrade $connection_upgrade {
        default upgrade;
        "" close;
    }
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