HOWTO: Клонування USERSIDE: различия между версиями
IronBot (обсуждение | вклад) ([IronBot] Sync EN/UK localization from RU) |
IronBot (обсуждение | вклад) ([IronBot] Fix UK localization text) |
||
| Строка 1: | Строка 1: | ||
[[HOWTO:_USERSIDE_cloning|en]] | '''uk''' | [[HOWTO:_Клонирование_USERSIDE|ru]] | |||
== | == Копія системи для тестування або досліджень == | ||
Якщо потрібно зробити копію системи, щоб перевірити нову версію перед фактичним оновленням або виконати інші дії, потрібно пройти кілька простих кроків: | |||
* | * скопіюйте файли застосунку | ||
cd /var/www/ | cd /var/www/ | ||
sudo cp -r userside userside-copy | sudo cp -r userside userside-copy | ||
* | * налаштуйте web-сервер для роботи з копією: скопіюйте файл конфігурації, відредагуйте його та перечитайте конфігурацію nginx: | ||
sudo cp /etc/nginx/conf.d/userside.conf /etc/nginx/conf.d/userside-copy.conf | sudo cp /etc/nginx/conf.d/userside.conf /etc/nginx/conf.d/userside-copy.conf | ||
sudo sed -i "s@/var/www/userside/userside3@/var/www/userside-copy/userside3@" "/etc/nginx/conf.d/userside-copy.conf" | sudo sed -i "s@/var/www/userside/userside3@/var/www/userside-copy/userside3@" "/etc/nginx/conf.d/userside-copy.conf" | ||
| Строка 16: | Строка 16: | ||
sudo systemctl reload nginx | sudo systemctl reload nginx | ||
* | * скопіюйте базу даних ''(або створіть нову базу даних і відновіть її з резервної копії)'': | ||
sudo -u postgres createdb -e --encoding="UTF-8" --locale="ru_RU.UTF-8" --owner=userside --template=userside userside_copy | sudo -u postgres createdb -e --encoding="UTF-8" --locale="ru_RU.UTF-8" --owner=userside --template=userside userside_copy | ||
Якщо база даних копіюється на інший сервер, перед відновленням потрібно створити роль, обов'язково з такою самою назвою, як у дампі: | |||
sudo -u postgres createuser userside -P | sudo -u postgres createuser userside -P | ||
* | * У версії 3.13 і новіших перейдіть до каталогу з новою копією та відредагуйте змінні середовища у файлі .env так, щоб вони працювали з новою базою даних і з іншою ''(вільною)'' базою Redis. В основній інсталяції, найімовірніше, використовується база Redis з номером 0; можна використати одну з інших 15 баз, доступних за замовчуванням. За це відповідають змінні: | ||
US_URL=http://new.domain.name | US_URL=http://new.domain.name | ||
US_DB_DSN=pgsql:host=localhost;dbname=userside_copy;port=5432 | US_DB_DSN=pgsql:host=localhost;dbname=userside_copy;port=5432 | ||
US_REDIS_DB=1 | US_REDIS_DB=1 | ||
* | * Для версій до 3.13 відредагуйте параметри підключення до бази даних у common/config/db.php і URL у userside3/main/config/config.php. | ||
* | * У версії 3.16 і новіших потрібно створити додатковий vhost для RabbitMQ, а потім указати його у файлі .env для змінної '''US_AMQP_DSN'''. У прикладі нижче як назву нового vhost використано '''copy''' ''(за потреби змініть на зручнішу назву)''. Спочатку виконайте команду створення vhost, а потім додайте права для користувачів у межах цього vhost: | ||
sudo rabbitmqctl add_vhost copy | sudo rabbitmqctl add_vhost copy | ||
sudo rabbitmqctl set_permissions -p "copy" "admin" ".*" ".*" ".*" | sudo rabbitmqctl set_permissions -p "copy" "admin" ".*" ".*" ".*" | ||
| Строка 35: | Строка 35: | ||
sudo rabbitmqctl --vhost copy set_user_tags "userside" "monitoring" | sudo rabbitmqctl --vhost copy set_user_tags "userside" "monitoring" | ||
Після цього змініть змінну US_AMQP_DSN у файлі .env так: | |||
US_AMQP_DSN=amqp://userside:yourpassword@127.0.0.1:5672/copy | US_AMQP_DSN=amqp://userside:yourpassword@127.0.0.1:5672/copy | ||
* | * У версії 3.16 і новіших також потрібно перестворити venv для мікросервісу poller: | ||
cd /var/www/userside-copy/microservice/poller | cd /var/www/userside-copy/microservice/poller | ||
sudo rm -rf venv | sudo rm -rf venv | ||
| Строка 44: | Строка 44: | ||
sudo -H venv/bin/pip install --upgrade -r requirements.txt | sudo -H venv/bin/pip install --upgrade -r requirements.txt | ||
* | * Також, починаючи з версії 3.16, потрібно скопіювати конфігурацію supervisor для фонових процесів ядра та мікросервісу poller. Зверніть увагу, що до версії 3.18 файл usm_poller.conf називався us-poller-microservice.conf: | ||
sudo cp /etc/supervisor/conf.d/us-core-worker.conf /etc/supervisor/conf.d/us-copy-core-worker.conf | sudo cp /etc/supervisor/conf.d/us-core-worker.conf /etc/supervisor/conf.d/us-copy-core-worker.conf | ||
sudo sed -i "s@us-core-worker@us-copy-core-worker@" "/etc/supervisor/conf.d/us-copy-core-worker.conf" | sudo sed -i "s@us-core-worker@us-copy-core-worker@" "/etc/supervisor/conf.d/us-copy-core-worker.conf" | ||
| Строка 55: | Строка 55: | ||
sudo systemctl restart supervisor | sudo systemctl restart supervisor | ||
* | * після цього копію можна відкрити в браузері. | ||
Текущая версия от 19:52, 23 мая 2026
Копія системи для тестування або досліджень
Якщо потрібно зробити копію системи, щоб перевірити нову версію перед фактичним оновленням або виконати інші дії, потрібно пройти кілька простих кроків:
- скопіюйте файли застосунку
cd /var/www/ sudo cp -r userside userside-copy
- налаштуйте web-сервер для роботи з копією: скопіюйте файл конфігурації, відредагуйте його та перечитайте конфігурацію nginx:
sudo cp /etc/nginx/conf.d/userside.conf /etc/nginx/conf.d/userside-copy.conf sudo sed -i "s@/var/www/userside/userside3@/var/www/userside-copy/userside3@" "/etc/nginx/conf.d/userside-copy.conf" sudo sed -i "s@/var/log/nginx/userside@/var/log/nginx/userside-copy@" "/etc/nginx/conf.d/userside-copy.conf" sudo sed -i "s@старое.доменное.имя@новое.доменное.имя@" "/etc/nginx/conf.d/userside-copy.conf" sudo systemctl reload nginx
- скопіюйте базу даних (або створіть нову базу даних і відновіть її з резервної копії):
sudo -u postgres createdb -e --encoding="UTF-8" --locale="ru_RU.UTF-8" --owner=userside --template=userside userside_copy
Якщо база даних копіюється на інший сервер, перед відновленням потрібно створити роль, обов'язково з такою самою назвою, як у дампі:
sudo -u postgres createuser userside -P
- У версії 3.13 і новіших перейдіть до каталогу з новою копією та відредагуйте змінні середовища у файлі .env так, щоб вони працювали з новою базою даних і з іншою (вільною) базою Redis. В основній інсталяції, найімовірніше, використовується база Redis з номером 0; можна використати одну з інших 15 баз, доступних за замовчуванням. За це відповідають змінні:
US_URL=http://new.domain.name US_DB_DSN=pgsql:host=localhost;dbname=userside_copy;port=5432 US_REDIS_DB=1
- Для версій до 3.13 відредагуйте параметри підключення до бази даних у common/config/db.php і URL у userside3/main/config/config.php.
- У версії 3.16 і новіших потрібно створити додатковий vhost для RabbitMQ, а потім указати його у файлі .env для змінної US_AMQP_DSN. У прикладі нижче як назву нового vhost використано copy (за потреби змініть на зручнішу назву). Спочатку виконайте команду створення vhost, а потім додайте права для користувачів у межах цього vhost:
sudo rabbitmqctl add_vhost copy sudo rabbitmqctl set_permissions -p "copy" "admin" ".*" ".*" ".*" sudo rabbitmqctl set_permissions -p "copy" "userside" ".*" ".*" ".*" sudo rabbitmqctl set_permissions -p "copy" "websock-user" "^erp-stomp:id-.*" "" "^erp-stomp:id-.*" sudo rabbitmqctl --vhost copy set_user_tags "userside" "monitoring"
Після цього змініть змінну US_AMQP_DSN у файлі .env так:
US_AMQP_DSN=amqp://userside:yourpassword@127.0.0.1:5672/copy
- У версії 3.16 і новіших також потрібно перестворити venv для мікросервісу poller:
cd /var/www/userside-copy/microservice/poller sudo rm -rf venv sudo -H python3 -m venv venv sudo -H venv/bin/pip install --upgrade -r requirements.txt
- Також, починаючи з версії 3.16, потрібно скопіювати конфігурацію supervisor для фонових процесів ядра та мікросервісу poller. Зверніть увагу, що до версії 3.18 файл usm_poller.conf називався us-poller-microservice.conf:
sudo cp /etc/supervisor/conf.d/us-core-worker.conf /etc/supervisor/conf.d/us-copy-core-worker.conf sudo sed -i "s@us-core-worker@us-copy-core-worker@" "/etc/supervisor/conf.d/us-copy-core-worker.conf" sudo sed -i "s@/var/www/userside/@/var/www/userside-copy/@" "/etc/supervisor/conf.d/us-copy-core-worker.conf"
sudo cp /etc/supervisor/conf.d/usm_poller.conf /etc/supervisor/conf.d/usm_poller_copy.conf sudo sed -i "s@usm_poller@usm_poller_copy@" "/etc/supervisor/conf.d/usm_poller_copy.conf" sudo sed -i "s@/var/www/userside/@/var/www/userside-copy/@" "/etc/supervisor/conf.d/usm_poller_copy.conf"
sudo systemctl restart supervisor
- після цього копію можна відкрити в браузері.