====== Установка узла веб интерфейса (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)\\