====== Установка узла веб интерфейса (Ubuntu Server 18.04) ====== 1. Создадим пользователя mpweb (из под root): adduser mpweb 2. Создать каталог для ведения логов и назначить права (из под root): mkdir /var/log/mpweb && chown mpweb:adm /var/log/mpweb 3. Установим зависимости (из под root): apt install subversion python3 python3-pip gettext libmysqlclient-dev pip3 install virtualenv virtualenvwrapper setuptools 4. Добавим в конец /home/mpweb/.bashrc export PYTHONPATH=/usr/bin/python3 export VIRTUALENVWRAPPER_PYTHON=$PYTHONPATH export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh 5. **Это важно!!!** ВОЙДЕМ под пользователем **mpweb**!\\ \\ 6. Создадим виртуальное окружение: mkvirtualenv mpweb workon mpweb === Настройка интерфейса администратора === Все действия выполняем из под пользователя mpweb, если не указано иное.\\ 1. Создадим скрипт (/home/mpweb/mpweb.sh) получения и обновления исходников: #!/bin/sh # # Global pth=/home/mpweb/minipbx_web user=XXX # Checkout! #mkdir $pth #svn checkout --username $user http://svn.minipbx.ru/minipbx_web/mpweb $pth # # Update svn update --username $user $pth 2. Сделаем исполняемым: chmod +x /home/mpweb/mpweb.sh 3. Первый раз делаем checkout, потом update. 4. Установим зависимости: python3 ./setup.py install 5. Скопируем файл настроек и настроем его: 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 Настройка начинается с базы данных и секретных ключей: * sqlalchemy.url - строка подключения к БД minipbx; * auth.secret - секрет для авторизации; * session.key - ключ для передачи параметров сессии; * session.secret - секрет для передачи параметров сессии; Для генерации случайных ключей воспользуйтесь командой: openssl rand -hex 32 6. Для тестирования иногда нужно запускать сервер в терминале. Для этого скопируем скрипт запуска (из под root): mkdir /home/mpweb/.local/bin cp /home/mpweb/minipbx_web/scripts/run_mpweb /home/mpweb/.local/bin/ 7. Для запуска в качестве службы скопируем systemd скрипт и включим его автоматический запуск (из под root): cp /home/mpweb/minipbx_web/scripts/mpweb.service /lib/systemd/system/ systemctl enable mpweb systemctl start mpweb systemctl status mpweb 8. В каталоге minipbx_web выполнить **lcompile.sh**. Скрипт выполняет обновление перевода (ru\en)\\ 9. Не совсем правильная штука, но чтобы не выполнять при каждом обновлении setup.py, сделаем: cd /home/mpweb/.virtualenvs/mpweb/lib/python3.6/site-packages/mpweb-1.0-py3.6.egg mv mpweb mpweb.1 ln -s /home/mpweb/minipbx_web/mpweb mpweb Каталог mpweb.1 можно удалить. === Настройка интерфейса пользователя === Все действия выполняем из под пользователя mpweb, если не указано иное.\\ 1. Создадим скрипт (/home/mpweb/mpami.sh) получения и обновления исходников (из под пользователя mpweb): #!/bin/sh # # Global pth=/home/mpweb/minipbx_ami user=XXX # Checkout! #mkdir $pth #svn checkout --username $user http://svn.minipbx.ru/minipbx_web/mpami $pth # # Update svn update --username $user $pth 2. Сделаем исполняемым: chmod +x /home/mpweb/mpami.sh 3. Первый раз делаем checkout, потом update.\\ 4. Установим зависимости: bash /home/mpweb/minipbx_ami/setup.txt 5. Скопируем файл настроек и настроем его: cp /home/mpweb/minipbx_ami/mpami.ini.sample /home/mpweb/minipbx_ami/mpami.ini Настройка начинается с базы данных и секретного ключа: * [DB].url - строка подключения к БД minipbx; * [MAIN].secret_key - ключ для шифрования JWT; Для генерации случайных ключей воспользуйтесь командой: openssl rand -hex 32 6. Для тестирования иногда нужно запускать сервер в терминале. Для этого скопируем скрипт запуска (из под root): mkdir /home/mpweb/.local/bin cp /home/mpweb/minipbx_ami/bin/run_mpami /home/mpweb/.local/bin/ 7. Для запуска в качестве службы скопируем systemd скрипт и включим его автоматический запуск (из под root): cp /home/mpweb/minipbx_ami/bin/mpami.service /lib/systemd/system/ systemctl enable mpami systemctl start mpami systemctl status mpami 8. В каталоге minipbx_ami выполнить **lcompile.sh**. Скрипт выполняет обновление перевода (ru\en)\\