HOWTO: Клонування USERSIDE: различия между версиями

Материал из WiKi - UserSide
([IronBot] Sync EN/UK localization from RU)
 
([IronBot] Fix UK localization text)
 
Строка 1: Строка 1:
[[HOWTO:_USERSIDE_cloning|en]] | '''uk''' | [[HOWTO:_Клонирование_USERSIDE|ru]]
[[HOWTO:_USERSIDE_cloning|en]] | '''uk''' | [[HOWTO:_Клонирование_USERSIDE|ru]]


== Copy of system for testing or research ==
== Копія системи для тестування або досліджень ==


If you need to make a copy of the system to try out the new version before the actual upgrade, or to do anything else, there are a few simple steps to follow:
Якщо потрібно зробити копію системи, щоб перевірити нову версію перед фактичним оновленням або виконати інші дії, потрібно пройти кілька простих кроків:


* copy the application files
* скопіюйте файли застосунку
  cd /var/www/
  cd /var/www/
  sudo cp -r userside userside-copy
  sudo cp -r userside userside-copy


* configure the web server to work with the copy - copy the configuration file, edit and re-read the nginx configuration:
* налаштуйте 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


* Copy the database (or create a new database and restore it from a backup):
* скопіюйте базу даних ''(або створіть нову базу даних і відновіть її з резервної копії)'':
  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
If you are copying the database to another server, you will need to create a role, necessarily the same as in the dump, before restoring it:
Якщо база даних копіюється на інший сервер, перед відновленням потрібно створити роль, обов'язково з такою самою назвою, як у дампі:
  sudo -u postgres createuser userside -P
  sudo -u postgres createuser userside -P


* In version 3.13 and newer, go to the directory with the new copy, edit the environment variables in the .env file so that they work with the new database and with the other (free) redis database (in the main installation you probably have the redis database number 0; you can use the other 15 available by default). Variables are responsible for this:
* У версії 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


* For versions up to 3.13, edit the database connection parameters in common/config/db.php and the URL in userside3/main/config/config.php
* Для версій до 3.13 відредагуйте параметри підключення до бази даних у common/config/db.php і URL у userside3/main/config/config.php.


* In version 3.16 and newer you need to create an additional vhost for RabbitMQ, and then specify it in the .env file for the '''US_AMQP_DSN''' variable. The example below uses '''copy''' as the name of the new vhost (change to something more convenient for you if necessary). First run the command that creates the vhost, then add permissions for users within that vhost:
* У версії 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"


Now change the variable US_AMQP_DSN of the .env file this way:
Після цього змініть змінну 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


* In version 3.16 and newer you will also need to recreate the venv for the poller microservice:
* У версії 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


* Also starting with version 3.16 you will need to copy the supervisor configuration for the kernel background processes and the poller microservice. Also note that before version 3.18 the usm_poller.conf file was called us-poller-microservice.conf:
* Також, починаючи з версії 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


* it is now possible to open your copy in the browser.
* після цього копію можна відкрити в браузері.

Текущая версия от 19:52, 23 мая 2026

en | uk | ru

Копія системи для тестування або досліджень

Якщо потрібно зробити копію системи, щоб перевірити нову версію перед фактичним оновленням або виконати інші дії, потрібно пройти кілька простих кроків:

  • скопіюйте файли застосунку
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
  • після цього копію можна відкрити в браузері.