Skip to content

userside/userside-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

76 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

EN RU

Table of contents

ERP USERSIDE Docker Bundle v3.18.2 (EN)

About the project

This project is a sample set of configuration files and scripts to run the Docker bundle of the ERP USERSIDE system. All the images required for ERP USERSIDE are already built with all the necessary dependencies and settings and are located in Docker HUB. You can build your own bundle from these samples using Docker [Compose] (https://docs.docker.com/compose/) or using other orchestration tools of your choice. You can also use the samples as is and get a working ERP USERSIDE system without any further steps. We fully rely on your understanding of containerisation in Linux, Docker, Docker Compose, Swarm and the other systems you intend to use.

These samples of the Docker environment are distributed "as is" without warranty of any kind. We also do not provide technical support for the installation, configuration and maintenance of Docker and related tools. If you are not familiar with Docker, you should use the classic installation example of ERP USERSIDE on a Linux server. For example, on a virtual machine with Linux.

Within these instructions, the version of the Docker bundle that corresponds to the minimum USERSIDE version capable of running on that version of the bundle is used. For example, on Docker-bundle version 3.13 USERSIDE versions 3.13, 3.14, 3.15 may work, on Docker-bundle version 3.16 USERSIDE 3.16, 3.17 USERSIDE may work, and on Docker-bundle version 3.18 USERSIDE 3.18, 3.19 etc., until a new version of the bundle for some new USERSIDE version becomes available.

Do not confuse the Docker bundle version with the USERSIDE version.

Most of the complex commands in the form of functions and aliases are placed in the bundle.bash file, which must be plugged into a shell session before starting the bundle.

We recommend proxying HTTP requests to the bundle using an NGINX-based reverse proxy - this will allow you to use domain name based access as well as SSL and other features that are not available when using the bundle directly (such as IP address based access rights restriction). But you can use Userside in a Docker bundle without it. If you decide to use a reverse proxy, it would be more correct to configure it before installing Userside. Recommendations on how to configure it can be found at the bottom of the article in the section "Reverse HTTP proxy".

Installation

  1. Allocate the domain name for ERP USERSIDE and create the necessary entries on the DNS server or in the /etc/hosts file on the current server, check that the name resolves to the IP address correctly.
  2. Following the instructions, download and install Docker server and plug-in Compose. If your operating system has Docker-IO installed from operating system packages, it must be removed in advance.
  3. Create a directory to contain the bundle and navigate to it. For example:
sudo mkdir -p /docker && cd $_
  1. Clone this repository into the userside subdirectory and navigate to it:
sudo git clone --depth 1 --branch=v3.18 https://github.com/userside/userside-docker.git userside && cd userside
  1. Run the initialise bundle config command - this will create copies of the samples with working filenames. You now have the files .env, compose.yaml, bundle.bash.
sudo ./init.sh
  1. Edit the .env file with sudo nano .env - specify all variable values in it ( bundle file deployment path, project name and locale, logins and passwords for services, etc.)
  2. Optionally, only if needed, make changes to compose.yaml and, if really necessary, to bundle.bash. For example, in compose.yaml file, you can include alternative files php.ini and www.conf from configs directory by uncommenting the appropriate lines, and then copying files from applications (in config directory) and editing them as necessary. Alternatively, change the IP subnet address allocated to the bundle. If you have changed the default bundle subnet address, you will also need to change the host addresses for each ports list parameter in each service. The host address is the first subnet address. In addition, you also need to change the value of the DOCKER_HOST_IP variable in bundle.bash, specifying the same host IP address there.
  3. Connect functions and aliases from bundle.bash to the current session:
source bundle.bash
  1. Run the bundle and ERP USERSIDE installation with the following command and follow the instructions:
bundle-install
  1. Create a WebSTOMP user to run websocket in one of the following ways. The password doesn't have to be too complex, but it doesn't have to be the same as any of your passwords, as they are transmitted in plaintext to the Frontend application:
    1. Alternatively, use RabbitMQ control panel. To do this open in a browser http://your.userside.net:15672 (change the domain to the one that is used for ERP USERSIDE, username and password as you specified in .env file for variables RABBITMQ_DEFAULT_USER and RABBITMQ_DEFAULT_PASS), go to tab Admin, at the bottom in section Add a user as a user name, for example, stompuser and set the password. Leave the tagged field blank. Then click Add user. Now above in section All users, click on the user you just created to open its settings. Under Permissions for Configure regexp and for Read regexp, specify ^userside-stomp:id-.* and for Write regexp, delete the value leaving the field blank. Click the Set permission button.
    2. Or by running the command and following the instructions:
      rabbitmq-create-stomp-user
      

The WebSTOMP user name and password are specified in USERSIDE in the menu: Settings - Main - Websocket. If you are using a reverse proxy before the bundle, don't forget about location for /ws (more details below in the section on reverse proxy).

Updating

Within Docker bundle version 3.16 or 3.18

No further steps are required to update ERP USERSIDE within the 3.16 and 3.18 versions (e.g. from 3.16.4 to 3.16.7 or from 3.18.1 to 3.18.3). Run the command and follow the instructions:

bundle-update

Upgrade from Docker bundle version 3.16 to version 3.18

Before upgrading something, back up the files as usual and then must back up the database to an SQL script - it will be required later:

source alias.bash

backup-make

mkdir -p ~/bundle_316
sudo sh -c "docker compose -p ${PROJECT_NAME} exec postgres pg_dump -U ${POSTGRES_USER} --no-acl -Fp -Z 5 ${POSTGRES_DB}" > ~/bundle_316/db_backup.sql.gz

A database backup will be created in your home directory. Make sure that the resulting database backup actually represents a SQL script and is not zero-sized. Only then proceed to the following steps.

ls -lh ~/bundle_316

Save the bundle files: .env, bundle.bash, docker-compose.yml (compose.yaml), Makefile in a secure place. Also save the cofigure files from the config subdirectory, if you changed them. Also, if any fine-tuning of PostgreSQL was done, copy data/db/postgresql.conf file. After deploying the new version of the bundle, you will need to configure the new bundle files by copying the values from these files.

sudo chmod -R +rX data/db
cp --parents {.env,bundle.bash,Makefile,docker-compose.yml,config/*,data/db/postgresql.conf} ~/bundle_316/
ls -lah ~/bundle_316

Save backups from the data/backup subdirectory in a secure location.

Stop the bundle:

bundle-stop

Before running the following command, check once again that you have copied all files, including backups! This command will stop and remove all containers, including all mounted volumes:

${DOCKER_COMPOSE} down -v --remove-orphans

Pull updates from repository:

sudo git pull

Configuration files

The new version 3.18 of the bundle has significant configuration differences. If you get confused while editing the configuration files, you can always start again by copying the example files and taking the values from the backed up configuration files you made earlier.

file .env
  • The USERSIDE_BASE_DIR environment variable is now called ERP_BASE_DIR. Change it's name. Also change the name of this variable in the compose.yaml file.
  • The STOMP_USER and STOMP_PASSWORD variables previously used for Makefile (abolished since 3.18) are no longer needed - they can be removed. Also be sure to check the .env file against the example file .env-example to ensure that all variables are written correctly and there are no missing or superfluous variables.
sudo diff .env .env-example
file bundle.bash

This file has changed a lot, so we recommend copying it again from the example file bundle.bash-example and making the required changes if you have done so. Preferably, do not change anything in this file and use the whole file as shown in the example file.

sudo cp bundle.bash-example bundle.bash
file compose.yaml

If you have not modified the compose.yaml file (docker-compose.yml) in previous versions of the bundle, the best choice is to copy the compose.yaml file from the example:

sudo cp compose.yaml-example compose.yaml

If changes have been made, edit the compose.yaml file considering the following changes:

  • The postgres service now uses a Docker image based on postgresql 15 (previously version 11 was used). Therefore, be sure to back up the database to a SQL script before upgrading to be able to restore to version 15. You can also remove the volume backup:/backup from the service - it is no longer needed as the backup job is now done on the host using the shortened commands from bundle.bash.
  • The poller service now has its own Docker service image usm_poller (previously a php shell was used instead of a full service image). Copy the entire poller service from the example file. Note that since Userside 3.18, most of the communication work is done by the external service usm_poller rather than the Userside kernel itself.
  • For all services that use images erpuserside/userside:3.16-xxx change the version to erpuserside/userside:3.18-xxx.
  • Change the variable name USERSIDE_BASE_DIR to ERP_BASE_DIR. Also check the compose.yaml file against the example file compose.yaml-example.

If you had to change the subnet for the bundle (subnet in the networks settings section), you also need to make sure to change the IP address in each item of the ports list for each of the services - here you need to specify the host IP address, which is the first address from the subnet (not including the subnet address itself). For example, for the subnet 172.31.254.0/25, the IP address of the host will be 172.31.254.1. Also, in the bundle.bash file, change the value of the DOCKER_HOST_IP variable.

After editing the configuration files

As the bundle.bash file is significantly different from the one originally loaded, before proceeding, you should ensure that these changes are reflected in the shell session as well. To do this, you will have to log out of your shell session and then log in again. Once you have done this, upload the updated file:

source bundle.bash

Now the postgres service needs to be started. First make sure that the correct locale, database name, username and password are specified in .env and after that, run:

${DOCKER_COMPOSE} up postgres -d

When the new container is started, a new empty database will be created.

If you made any fine-tuning in the data/db/postgresql.conf file you backed up before the upgrade, restore those settings in the new file, but under no circumstances copy the old file from version 11 over the new file. They have significant differences.

In general we recommend that you use the postgresql parameter calculators to recalculate them for version 15, as they may vary considerably.

Now restore the backup to this database:

database-restore ~/bundle_316/db_backup.sql.gz

Make sure that no errors occur when restoring the database.

After restoring, check that the data is in the database, e.g. using an SQL query:

psql -At -c "SELECT (value::jsonb)->'vn' FROM key_value WHERE key='installer.release'"

The query should return information on the current version of Userside to which the database structure corresponds.

The update can be started. Run the update command and follow the instructions:

bundle-update

Once the update is complete, you will need to recreate the WebSocket user in RabbitMQ, as the global update of RabbitMQ has likely lost it. To find out the username and password that Userside is set to, go to Settings - Main - WebSocket in the Userside interface, or create a new username and password pair if required. Create a user for WebSocket in RabbitMQ by running the following command and responding to the prompt by entering the user name and password to be created.

rabbitmq-create-stomp-user

Problems during upgrade between bundle versions

If a problem occurs during an upgrade from 3.16 to 3.18, the installer will offer to correct the error and do a repair, however this will attempt to restore the previously installed version, which will be impossible due to incompatibilities between the PHP version in the 3.18 bundle and the userside of previous versions. Especially for such cases, you can use the command:

bundle-update force

For future upgrades from 3.18.x to 3.18.y, use the erp-repair command in case of problems.

From Docker bundle version 3.12, 3.13 to version 3.16

When upgrading ERP USERSIDE to version 3.16, the Docker bundle must also be upgraded to version 3.16. The updated bundle includes a new set of containers required for background processes and a broker to manage the messages between them, which appeared in ERP USERSIDE 3.16.

Changes

  • All variable values (logins, passwords, etc.) are now placed in the .env file.
  • Redis now requires a mandatory password
  • Added services required for USERSIDE 3.16 (RabbitMQ, kernel worker, poller worker)

Upgrading procedure

  1. Back up and stop the bundle:
backup-make && bundle-stop

If Makefile is used, then:

sudo make backup && sudo make stop
  1. If you are using the v3.13 branch instead of master, switch to the v3.16 branch (or the master branch to always get the latest stable version of the bundle):
sudo git checkout v3.16
sudo git pull
  1. Rename your current docker-compose.yml file so that its contents are not overwritten by the upgrade process:
sudo mv docker-compose.yml docker-compose_3-13.yml
  1. Delete the Makefile file if you have not made any changes to it. Otherwise rename it too.
sudo rm Makefile
  1. Run the initialisation command - it creates working files by copying the example template files:
sudo ./init.sh
  1. From docker-compose_3-13.yml file, transfer all variable values to .env. Specify in the value of USERSIDE_BASE_DIR full path to the directory where the bundle is deployed (the current directory). In this example it is /docker/userside.
  2. Since version 3.16 of the bundle, a password for Redis is mandatory. If you didn't have a password before, set it in the REDIS_PASSWORD variable in .env and then add to ./data/userside/.env a variable US_REDIS_PASSWORD with exactly the same password.
  3. The .env file has variables which are responsible for the number of containers run for handler services: CORE_WORKER_NUM and POLLER_NUM. By default, these are set to 10 and 5 respectively. If you need more handlers, change these numbers here. To start with we recommend leaving them as default.
  4. Run the installation. When upgrading from version 3.13 to 3.16 of the bundle you will need to run this command, not update. In future upgrades within the 3.16 bundle you will need to use the update command.
bundle-install

If Makefile is used, then:

sudo make install
  1. Ensure that the upgrade to ERP USERSIDE 3.16 goes correctly.
  2. Delete the file docker-compose_3-13.yml - it is no longer required. If you have been saving a Makefile (step 4), transfer all your changes from it to the new Makefile and delete the old one.
sudo rm docker-compose_3-13.yml

Exploitation

Most of the commands used are enclosed in the bundle.bash file as aliases or functions. To use this set of commands, connect this file to the current shell session by executing source bundle.bash or its shortened version . bundle.bash. You can now enter aliases and functions from this file at the command line, the meaning of which will be described below.

List of special commands

Basic commands

  • bundle-start β€” run a Docker bundle
  • bundle-stop β€” stop all bundle containers
  • bundle-restart β€” restart the bundle
  • bundle-install β€” running environment initialisation for the bundle, then running the installer to install and then initialising tasks in the cron scheduler and other post-installation processes
  • erp-install β€” running the installer with the command install
  • erp-repair β€” running the installer with the command repair
  • bundle-update β€” performing all necessary procedures to complete the upgrading of the bundle and USERSIDE, including an initial backup
  • bundle-destroy β€” removal of Docker bundle and cron scheduler tasks. USERSIDE files are not deleted
  • bundle-purge β€” same as bundle-destroy, but also removes all USERSIDE files
  • bundle-logs β€” display the log of the Docker containers. As a parameter you can specify the name of the specific service
  • erp-flush-cache β€” cleaning the userside kernel caches
  • backup-make β€” performing file and database backups

Additional commands

  • psql β€” running the console utility psql to interact with the database
  • rabbitmqctl β€” running the console utility rabbitmqctl to control RabbitMQ
  • erp-stability beta β€” setting the stability level settings for the installer tool

Backup

The auto-deployment script installs and configures all necessary system components, including periodic backups (the job is set to the system cron). The archives are located in the data/backup subdirectory of the bundle.

If you need to perform an unplanned backup, run the command:

backup-make

A backup of the files and database will be created and placed in ./data/backup.

Database backup

Starting from version 3.18 of the Docker bundle, database backups are done in a SQL script instead of Dump.

To perform a database backup, you can run a command that outputs the backup to the standard output:

database-backup > database.sql.gz

Or simply:

database-backup-to-file

In the later case, a file will be created in the data/backup subdirectory with a standard name, as with automatic backups.

Restore the database from a backup copy

To restore the database from a backup SQL script, use the command:

database-restore data/backup/userside_db_2023-04-07_16-25.sql.gz

Services that run in the background and the RabbitMQ broker

To monitor the status of RabbitMQ broker is used module RabbitMQ management WEB-interface of which is available at http://your.userside.net:15672 (replace the domain with the one used for ERP USERSIDE, username and password as you set in .env file for variables RABBITMQ_DEFAULT_USER and RABBITMQ_DEFAULT_PASS).

If the background tasks are constantly running with a long delay, you should pay attention to the load of the queues (on the Queues tab) and if the queues are constantly or quite often and lasting a relatively large number of messages, you can change the number of instances of the background process running for each of them:

The erp.core queue is responsible for messages passed to the kernel handler. The number of instances of this handler can be set in the environment variable CORE_WORKER_NUM in the .env bundle file (not useride).

The usm_poller queue is responsible for messages sent to the poller module which performs hardware communication operations. The number of poller instances can be set in the environment variable POLLER_NUM in the .env bundle file (not useride).

If the values for these variables have changed, the bundle must be reloaded:

bundle-restart

Fine-tuning

We recommend fine-tuning the environment for maximum performance. The principles are described on our dedicated wiki page.

PHP and FPM

The settings for the Docker bundle services can be changed by using volumes. The compose.yaml file for php, fpm services has commented out volumes for files where additional fine-tuning options can be located.

Copy the php.ini-example and www.conf-example files in the config subdirectory to the php.ini and www.conf files respectively and edit them. Then uncomment the relevant volumes in the php and fpm services compose.yaml file and restart the bundle:

bundle-restart

PostgreSQL

The PostgreSQL configuration files are in the data/db subdirectory and can be edited right there. After editing, the bundle must also be restarted:

bundle-restart

Using additional USERSIDE modules

The compose.yaml file contains the usm_billing service which is an implementation of the billing module. This service is added as an example and can be removed from the configuration if it is not required. If you use this module, however, you need to fill in the basic parameters in the environment block of this service: USERSIDE_API_KEY, BILLING_NAME, BILLING_URL, BILLING_ID. The rest of the parameters are as required. Parameter USERSIDE_API_URL in case of using inside the bundle is not necessary: the server name will be filled in automatically.

In our repository you can find examples of how to use other modules in Docker. The examples contain a fragment of the configuration of the bundle which can be used in the compose.yaml file of your bundle and step-by-step instructions on how to install and configure the module within the bundle.

If there is no such example of use for the module you are interested in, you can create one yourself using examples from other modules.

Using multiple bundles on one server

If you need to use multiple copies of USERSIDE on one server, you should arrange multiple bundles - one for each copy. If the main directory where all the bundles are to be located is /docker (as per these instructions), and you need to use two separate copies of USERSIDE, for example, do the following

Installation

Deployment

Create a directory /docker, if not already created, and navigate to it:

sudo mkdir -p /docker && cd $_

Clone the repository twice. Provide a clear name for each bundle so that you know exactly where it is in the future:

sudo git clone --depth 1 https://github.com/userside/userside-docker.git userside-production
sudo git clone --depth 1 https://github.com/userside/userside-docker.git userside-testing

As a result, you will get two catalogues: /docker/userside-production and /docker/userside-testing, each of which will host a different version of the bundle.

Configuring

Navigate to each of the directories and initialise:

cd /docker/userside-production && sudo ./init.sh
cd /docker/userside-testing && sudo ./init.sh
File .env

Now edit the .env file in each of the folders of the bundle. You must be sure to specify the absolute path to the bundle (the ERP_BASE_DIR variable) and the project name (the PROJECT_NAME variable), for example, userside-production and userside-testing.

If necessary, change the other variables. For example, it is not necessary to run 10 copies of core_worker processes for the USERSIDE test copy and it is not necessary to run 5 copies of poller microservices either. One copy at a time is sufficient for the test copy, because the load on the test copy is supposed to be minimal.

File compose.yaml

You must now make a change to the compose.yaml bundle configuration file. Here, only the settings relating to the network need to be changed. The bundles should use different subnets and the subnet size should be large enough to fit all the containers in the bundle with some margin.

By default, the subnet 172.31.254.0/25 is used in the example file. If this subnet suits you (does not overlap with existing subnets in the enterprise), leave it as it is in one of the bundles, and change it to e.g. 172.31.254.128/25 in the second. To do this, change the value for subnet in the networks settings box.

The first node address from each subnet will be given to the host interface and the rest will be randomly assigned to the bundle containers. In this example, IP addresses 172.31.254.1 and 172.31.254.129 will be assigned to bridgeXXX interfaces on the host. These addresses are convenient to use for container port translation.

Check the ports parameter of all services in compose.yaml carefully. It contains a list of ports that need to be translated for each of the services. For example, the entry "172.31.254.1:8080:80" for the nginx service means that port 8080 of the 172.31.254.1 interface on the host should be translated to port 80 inside the container with nginx. This allows network access inside the bundle to the container by addressing the IP address of the host.

Change the addresses so that these will be the addresses of the first nodes in the relevant subnet. For the described example this is 127.31.254.1 for the first bundle and 172.31.254.129 for the second bundle.

Also in the bundle.bash files, change the value of the DOCKER_HOST_IP variable to match the specific host IP address.

Remove the comment from the line broadcasting the WebSTOMP port number 15674 of the rabbitmq service. This should be done when using a reverse proxy before the bundle.

Reverse HTTP proxy

We recommend using a reverse proxy even if you have one copy of Usersdide on your server. This allows more flexibility in configuring web access. For example, you can use SSL or configure the necessary access rights. But if a reverse proxy is not always necessary for one bundle, it is almost certainly necessary for two or more bundles.

Two bundles with one reverse proxy

Install NGINX and configure it as a reverse proxy using the following method. The example uses domain names userside.company.net for the userside working copy and test-us.company.net for the userside test copy. If you have one copy, use one server block. Example:

server {
    listen 80;
    server_name userside.company.net;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://172.31.254.1:8080;
        proxy_send_timeout 300;
        proxy_read_timeout 300;
    }

    location /ws {
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_pass http://172.31.254.1:15674/ws;
        proxy_http_version 1.1;
    }
}

server {
    listen 80;
    server_name test-us.company.net;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://172.31.254.129:8080;
        proxy_send_timeout 300;
        proxy_read_timeout 300;
    }

    location /ws {
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_pass http://172.31.254.129:15674/ws;
        proxy_http_version 1.1;
    }
}

For each copy, add to the data/userside/.env file the US_REVERSE_PROXY_TRUSTED_HOSTS environment variable whose value should contain the IP address of the NGINX host on which the reverse proxy is running. In this example, for the first copy, this would be the address 172.31.254.1, and for the second copy, 172.31.254.129, respectively. As follows:

US_REVERSE_PROXY_TRUSTED_HOSTS=172.31.254.1

It is allowed to specify both an IP address and a subnet. It is also allowed to specify a comma-separated list of addresses and subnets.

Additions and corrections

Feedback, suggestions and bug reports about this Docker environment for USERSIDE are appreciated. You can report them through the Issue system of this repository. Suggestions and corrections in the form of Poll Request are also welcome.


ERP USERSIDE Docker Bundle v3.18.2 (RU)

О ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ прСдставляСт собой Π½Π°Π±ΠΎΡ€ ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ скриптов для запуска Docker-Π±Π°Π½Π΄Π»Π° систСмы ERP USERSIDE. ВсС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ERP USERSIDE ΠΎΠ±Ρ€Π°Π·Ρ‹ ΡƒΠΆΠ΅ собраны со всСми Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ зависимостями ΠΈ настройками ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² Docker HUB. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ² ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ свой Π±Π°Π½Π΄Π», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Docker Compose Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠ»ΡŒΠ·ΡƒΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π²Π°ΠΌ, инструмСнты оркСстрации. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Π·Ρ†Π°ΠΌΠΈ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ систСму ERP USERSIDE Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ… Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… дСйствий. ΠœΡ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ полагаСмся Π½Π° вашС ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Linux, Ρ€Π°Π±ΠΎΡ‚Ρ‹ Docker, Docker Compose, Swarm ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… систСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Π”Π°Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ†Ρ‹ Docker-окруТСния Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Β«ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒΒ» Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ… Π»ΠΈΠ±ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚Π΅Ρ…Π½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΠΎ вопросам установки, настройки ΠΈ обслуТивания Docker ΠΈ связанных с Π½ΠΈΠΌ инструмСнтов. Если Π²Ρ‹ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Docker, Ρ‚ΠΎ Π²Π°ΠΌ слСдуСт Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ классичСским ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ установки ERP USERSIDE Π½Π° Linux-сСрвСр. НапримСр, Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ с Linux.

Π’ ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… этой инструкции ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вСрсия Docker-Π±Π°Π½Π΄Π»Π°, которая соотвСтствуСт минимальной вСрсии USERSIDE, способной Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° этой вСрсии Π±Π°Π½Π΄Π»Π°. НапримСр, Π½Π° вСрсии Docker-Π±Π°Π½Π΄Π»Π° 3.13 ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ USERSIDE вСрсий 3.13, 3.14, 3.15, Π½Π° вСрсии Docker-Π±Π°Π½Π΄Π»Π° 3.16 ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ USERSIDE 3.16, 3.17, Π° Π½Π° вСрсии Π±Π°Π½Π΄Π»Π° 3.18 ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ USERSIDE 3.18, 3.19 ΠΈ Ρ‚.Π΄., ΠΏΠΎΠΊΠ° Π½Π΅ появится новая вСрсия Π±Π°Π½Π΄Π»Π° для ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ вСрсии USERSIDE.

НС ΠΏΡƒΡ‚Π°ΠΉΡ‚Π΅ Π²Π΅Ρ€ΡΠΈΡŽ Docker-Π±Π°Π½Π΄Π»Π° с вСрсиСй USERSIDE.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ слоТных ΠΊΠΎΠΌΠ°Π½Π΄ Π² Π²ΠΈΠ΄Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ псСвдонимов ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² Ρ„Π°ΠΉΠ» bundle.bash, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΊ сСансу ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π½Π΄Π»ΠΎΠΌ.

ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ HTTP-запросы ΠΊ Π±Π°Π½Π΄Π»Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ рСвСрсивный прокси-сСрвСр Π½Π° Π±Π°Π·Π΅ NGINX β€” это даст Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ доступ Π½Π° основС Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SSL ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ возмоТности, нСдоступныС ΠΏΡ€ΠΈ использовании Π±Π°Π½Π΄Π»Π° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π² доступа Π½Π° основС IP адрСсов). Но Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Userside Π² Docker-Π±Π°Π½Π΄Π»Π΅ ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ. Если Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСвСрсивный прокси, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π΄ΠΎ установки Userside. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ настройкС ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π²Π½ΠΈΠ·Ρƒ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «РСвСрсивный HTTP-прокси».

Установка

  1. Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя для ERP USERSIDE ΠΈ создайтС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ записи Π½Π° DNS-сСрвСрС Π»ΠΈΠ±ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ /etc/hosts Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСрвСрС, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ имя Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π² IP-адрСс ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.
  2. БлСдуя инструкции, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΈ установитС Docker server ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ Compose. Если Π² Π’Π°ΡˆΠ΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС имССтся Docker-IO, установлСнный ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Ρ‚ΠΎ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ.
  3. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π±Π°Π½Π΄Π», ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π½Π΅Π³ΠΎ. НапримСр:
sudo mkdir -p /docker && cd $_
  1. Π‘ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ этот Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ userside ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚ΠΈΠ΅ Π² Π½Π΅Π³ΠΎ:
sudo git clone --depth 1 --branch=v3.18 https://github.com/userside/userside-docker.git userside && cd userside
  1. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ² Π±Π°Π½Π΄Π»Π° β€” ΠΎΠ½Π° создаст ΠΊΠΎΠΏΠΈΠΈ ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ² с Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ². Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ .env, compose.yaml, bundle.bash.
sudo ./init.sh
  1. ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» .env ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ sudo nano .env β€” ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π² Π½Π΅ΠΌ всС значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (ΠΏΡƒΡ‚ΡŒ для развёртывания Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π°Π½Π΄Π»Π°, имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ локаль, Π»ΠΎΠ³ΠΈΠ½Ρ‹ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ для слуТб ΠΈ Ρ‚.Π΄.)
  2. ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ нСобходимости, внСситС измСнСния Π² Ρ„Π°ΠΉΠ»Ρ‹ compose.yaml ΠΈ, Ссли Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ, Π² Ρ„Π°ΠΉΠ» bundle.bash. НапримСр, Π² Ρ„Π°ΠΉΠ»Π΅ compose.yaml Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ php.ini ΠΈ www.conf ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° configs раскоммСнтировав ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ строки, Π° Π·Π°Ρ‚Π΅ΠΌ скопировав Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΎΠ² (Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ config) ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π² ΠΈΡ… Π² соотвСтствии с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ. Или ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ адрСс выдСляСмой для Π±Π°Π½Π΄Π»Π° IP-подсСти. Если Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ адрСс подсСти Π±Π°Π½Π΄Π»Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ адрСса хостов для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° списка ports Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ сСрвисС. АдрСс хоста β€” это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ адрСс подсСти. Помимо этого Π² Ρ„Π°ΠΉΠ»Π΅ bundle.bash Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ DOCKER_HOST_IP, ΡƒΠΊΠ°Π·Π°Π² Ρ‚Π°ΠΌ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ IP-адрСс хоста.
  3. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ сСансу Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ алиасы ΠΈΠ· bundle.bash:
source bundle.bash
  1. ЗапустиитС установку Π±Π°Π½Π΄Π»Π° ΠΈ ERP USERSIDE ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈ слСдуйтС инструкциям:
bundle-install
  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ WebSTOMP-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ websocket ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… способов. ΠŸΠ°Ρ€ΠΎΠ»ΡŒ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ слишком слоТным, Π½ΠΎ ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½ΠΈ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΡˆΠΈΡ… ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ пСрСдаСтся Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π² Frontend ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:
    1. Π›ΠΈΠ±ΠΎ Ρ‡Π΅Ρ€Π΅Π· панСль управлСния RabbitMQ. Для этого ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ http://your.userside.net:15672 (Π΄ΠΎΠΌΠ΅Π½ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ERP USERSIDE, имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ Π²Ρ‹ Π·Π°Π΄Π°Π»ΠΈ Π² .env Ρ„Π°ΠΉΠ»Π΅ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… RABBITMQ_DEFAULT_USER ΠΈ RABBITMQ_DEFAULT_PASS), ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Admin, Π²Π½ΠΈΠ·Ρƒ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Add a user Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, stompuser ΠΈ Π·Π°Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. ПолС с тэгами ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ пустым. Π—Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Add user. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ΡˆΠ΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ All users ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ созданному ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Permissions для Configure regexp ΠΈ для Read regexp Π·Π°Π΄Π°ΠΉΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ^userside-stomp:id-.*, Π° для Write regexp ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, оставив ΠΏΠΎΠ»Π΅ пустым. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ Set permission.
    2. Π›ΠΈΠ±ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ слСдуя инструкциям:
      rabbitmq-create-stomp-user
      

Имя WebSTOMP-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² USERSIDE Π² мСню: Настройка - Основная - Websocket. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ рСвСрсивный прокси ΠΏΠ΅Ρ€Π΅Π΄ Π±Π°Π½Π΄Π»ΠΎΠΌ, Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΡ€ΠΎ location для /ws (Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π½ΠΈΠΆΠ΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΏΡ€ΠΎ рСвСрсивный прокси).

ОбновлСниС

Π’ ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… вСрсий Docker-Π±Π°Π½Π΄Π»Π° 3.16 ΠΈΠ»ΠΈ 3.18

Для обновлСния ERP USERSIDE Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π±Π°Π½Π΄Π»Π° вСрсий 3.16 ΠΈ 3.18 (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с 3.16.4 Π½Π° 3.16.7 ΠΈΠ»ΠΈ с 3.18.1 Π½Π° 3.18.3) Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… дСйствий Π½Π΅ трСбуСтся. ЗапуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ слСдуйтС инструкциям:

bundle-update

ОбновлСниС с вСрсии Docker-Π±Π°Π½Π΄Π»Π° 3.16 Π½Π° Π²Π΅Ρ€ΡΠΈΡŽ 3.18

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ‡Ρ‚ΠΎ Π»ΠΈΠ±ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² SQL-скрипт β€” ΠΎΠ½ пригодится ΠΏΠΎΠ·ΠΆΠ΅:

source alias.bash

backup-make

mkdir -p ~/bundle_316
sudo sh -c "docker compose -p ${PROJECT_NAME} exec postgres pg_dump -U ${POSTGRES_USER} --no-acl -Fp -Z 5 ${POSTGRES_DB}" > ~/bundle_316/db_backup.sql.gz

Π‘ΡƒΠ΄Π΅Ρ‚ создана рСзСрвная копия Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² вашСм домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π±Π΅ΠΊΠ°ΠΏ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ прСдставляСт SQL-скрипт ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€. Волько послС этого ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагам.

ls -lh ~/bundle_316

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±Π°Π½Π΄Π»Π°: .env, bundle.bash, docker-compose.yml (compose.yaml), Makefile Π² Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ мСсто. Π’Π°ΠΊΠΆΠ΅ сохранитС Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ³Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° config, Ссли Π²Ρ‹ ΠΈΡ… измСняли. Π’Π°ΠΊΠΆΠ΅, Ссли ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Ρ‚ΠΎΠ½ΠΊΠΈΠ΅ настройки PostgreSQL, скопируйтС Ρ„Π°ΠΉΠ» data/db/postgresql.conf. ПослС развСртывания Π½ΠΎΠ²ΠΎΠΉ вСрсии Π±Π°Π½Π΄Π»Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±Π°Π½Π΄Π»Π°, скопировав значСния ΠΈΠ· этих Ρ„Π°ΠΉΠ»ΠΎΠ².

sudo chmod -R +rX data/db
cp --parents {.env,bundle.bash,Makefile,docker-compose.yml,config/*,data/db/postgresql.conf} ~/bundle_316/
ls -lah ~/bundle_316

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Π² Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ мСсто Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° data/backup.

ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ Π±Π°Π½Π΄Π»:

bundle-stop

ΠŸΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΅Ρ‰Π΅ Ρ€Π°Π· ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ скопировали всС Ρ„Π°ΠΉΠ»Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ! Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° остановит ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ всС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠΌΠ°:

${DOCKER_COMPOSE} down -v --remove-orphans

ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ копию ΠΈΠ· рСпозитория:

sudo git pull

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹

Новая вСрсия 3.18 Π±Π°Π½Π΄Π»Π° ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ отличия ΠΏΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Если Π² Ρ…ΠΎΠ΄Π΅ рСдактирования Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ Π·Π°ΠΏΡƒΡ‚Π°Π΅Ρ‚Π΅ΡΡŒ, Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ сначала, скопировав Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ взяв значСния ΠΈΠ· Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ сдСлали Ρ€Π°Π½Π΅Π΅.

Ρ„Π°ΠΉΠ» .env
  • пСрСмСнная окруТСния USERSIDE_BASE_DIR Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ называСтся ERP_BASE_DIR. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅. Π’Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ compose.yaml.
  • ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ STOMP_USER ΠΈ STOMP_PASSWORD, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ€Π°Π½Π΅Π΅ для Makefile (ΡƒΠΏΡ€Π°Π·Π΄Π½Π΅Π½ начиная с 3.18) Π±ΠΎΠ»Π΅Π΅ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ β€” ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ„Π°ΠΉΠ» .env с Ρ„Π°ΠΉΠ»ΠΎΠΌ-ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ .env-example Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ записаны ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ Π½Π΅Ρ‚ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΈΠ»ΠΈ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….
sudo diff .env .env-example
Ρ„Π°ΠΉΠ» bundle.bash

Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» сильно измСнился, поэтому ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ с Ρ„Π°ΠΉΠ»Π°-ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° bundle.bash-example ΠΈ внСсти Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния, Ссли Π²Ρ‹ это Π΄Π΅Π»Π°Π»ΠΈ. Π–Π΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π² этом Ρ„Π°ΠΉΠ»Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅-ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

sudo cp bundle.bash-example bundle.bash
Ρ„Π°ΠΉΠ» compose.yaml

Если Π²Ρ‹ Π½Π΅ измСняли Ρ„Π°ΠΉΠ» compose.yaml (docker-compose.yml) Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсиях Π±Π°Π½Π΄Π»Π°, Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» compose.yaml ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

sudo cp compose.yaml-example compose.yaml

Если измСния всС ΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ, Ρ‚ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» compose.yaml учитывая ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния:

  • сСрвис postgres Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Docker-ΠΎΠ±Ρ€Π°Π·, основанный Π½Π° postgresql 15 (Π΄ΠΎ этого использовалась 11-я вСрсия). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² SQL-скрипт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ восстановлСния Π½Π° 15ΠΉ вСрсии. Π’Π°ΠΊΠΆΠ΅ Ρƒ сСрвиса ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ volume backup:/backup β€” Π² Π½Π΅ΠΌ большС Π½Π΅Ρ‚ нСобходимости, Ρ‚.ΠΊ. Ρ€Π°Π±ΠΎΡ‚Π° с Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΌΠΈ копиями Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выполняСтся Π½Π° хостС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сокращСнныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ· bundle.bash.
  • сСрвис poller Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ свой ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Docker-ΠΎΠ±Ρ€Π°Π· слуТбы usm_poller (Π΄ΠΎ этого использовалась ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° php вмСсто ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π° слуТбы). Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ вСсь сСрвис poller ΠΈΠ· Ρ„Π°ΠΉΠ»Π°-ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ начиная с вСрсии Userside 3.18 большая Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ со Π±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ связи выполняСтся Π½Π΅ самим ядром Userside, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ внСшнСй слуТбой usm_poller.
  • для всСх сСрвисов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ€Π°Π·Ρ‹ erpuserside/userside:3.16-xxx ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π²Π΅Ρ€ΡΠΈΡŽ Π½Π° erpuserside/userside:3.18-xxx.
  • ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ USERSIDE_BASE_DIR Π½Π° ERP_BASE_DIR. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ„Π°ΠΉΠ» compose.yaml с Ρ„Π°ΠΉΠ»ΠΎΠΌ-ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ compose.yaml-example.

Если Π²Π°ΠΌ Π±Ρ‹Π»ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΡΠ΅Ρ‚ΡŒ для Π±Π°Π½Π΄Π»Π° (subnet Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ настроСк networks), Ρ‚ΠΎ Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈ IP адрСс Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ элСмСнтС списка ports для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· сСрвисов β€” здСсь Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ IP-адрСс хоста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ являСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ адрСс ΠΈΠ· подсСти (Π½Π΅ считая самого адрСса подсСти). НапримСр, для подсСти 172.31.254.0/25 IP-адрСсом хоста Π±ΡƒΠ΄Π΅Ρ‚ 172.31.254.1. Π’Π°ΠΊΠΆΠ΅ Π² Ρ„Π°ΠΉΠ»Π΅ bundle.bash Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ DOCKER_HOST_IP.

ПослС рСдактирования ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» bundle.bash Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ отличаСтся ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π²Π½Π°Ρ‡Π°Π»Π΅, ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ эти измСнСния ΠΎΡ‚Ρ€Π°Π·ΠΈΠ»ΠΈΡΡŒ ΠΈ Π² сСансС ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ. Для этого Π²Π°ΠΌ придСтся Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· сСанса ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π²ΠΎΠΉΡ‚ΠΈ снова. ПослС этого Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»:

source bundle.bash

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ слуТбу postgres. Π‘Π½Π°Ρ‡Π°Π»Π° ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π² .env ΡƒΠΊΠ°Π·Π°Π½Π° вСрная локаль, имя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΈ послС этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:

${DOCKER_COMPOSE} up postgres -d

ПослС запуска Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ создана новая пустая Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ….

Если Π²Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Ρ‚ΠΎΠ½ΠΊΠΈΠ΅ настройки Π² Ρ„Π°ΠΉΠ»Π΅ data/db/postgresql.conf, Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ сдСлали Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° обновлСния, Ρ‚ΠΎ восстановитС эти настройки Π² Π½ΠΎΠ²ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ случаС Π½Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ старый Ρ„Π°ΠΉΠ» ΠΎΡ‚ 11ΠΉ вСрсии ΠΏΠΎΠ²Π΅Ρ€Ρ… Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Они ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ различия.

Π’ΠΎΠΎΠ±Ρ‰Π΅ ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² postgresql Π·Π°Π½ΠΎΠ²ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΡ… для вСрсии 15, вСдь ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ восстановитС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию Π² эту Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…:

database-restore ~/bundle_316/db_backup.sql.gz

ΠŸΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ошибок ΠΏΡ€ΠΈ восстановлСнии Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

ПослС восстановлСния ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ SQL-запрос:

psql -At -c "SELECT (value::jsonb)->'vn' FROM key_value WHERE key='installer.release'"

Запрос Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии Userside, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ соотвСтствуСт структура Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

МоТно ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ обновлСнию. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ обновлСния ΠΈ слСдуйтС инструкциям:

bundle-update

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΎΡΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π½ΠΎΠ²ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ WebSocket ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² RabbitMQ, Ρ‚.ΠΊ. ΠΏΡ€ΠΈ глобальном ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ RabbitMQ ΠΎΠ½, скорСС всСго, Π±Ρ‹Π» утСрян. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ настроСн Userside, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² интСрфСйсС Userside Π² мСню Настройки - ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ - WebSocket, Π»ΠΈΠ±ΠΎ создайтС Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ°Ρ€Ρƒ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ пароля ΠΏΠΎ ТСланию. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для WebSocket Π² RabbitMQ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ ввСдя имя создаваСмого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ.

rabbitmq-create-stomp-user

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²ΠΎ врСмя обновлСния ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиями Π±Π°Π½Π΄Π»Π°

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π²ΠΎ врСмя обновлСния с вСрсии 3.16 Π½Π° Π²Π΅Ρ€ΡΠΈΡŽ 3.18 инсталлятор ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ repair, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ дСйствии Π±ΡƒΠ΄Π΅Ρ‚ прСдпринята ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·-Π·Π° нСсовмСстимости вСрсии PHP Π² Π±Π°Π½Π΄Π»Π΅ 3.18 ΠΈ Π² userside ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсий. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Ρ‚Π°ΠΊΠΈΡ… случаСв ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

bundle-update force

ΠŸΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠ±Π²Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ с вСрсии 3.18.x Π½Π° 3.18.y Π² случаС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ erp-repair.

Π‘ вСрсии Docker-Π±Π°Π½Π΄Π»Π° 3.12, 3.13 Π΄ΠΎ вСрсии 3.16

ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ERP USERSIDE Π΄ΠΎ вСрсии 3.16 Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Docker-Π±Π°Π½Π΄Π» Π΄ΠΎ вСрсии 3.16. ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ Π±Π°Π½Π΄Π» Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… процСссов ΠΈ Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° для управлСния сообщСниями ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ появились Π² ERP USERSIDE 3.16.

ИзмСнСния

  • Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (Π»ΠΎΠ³ΠΈΠ½Ρ‹, ΠΏΠ°Ρ€ΠΎΠ»ΠΈ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅) вынСсСны Π² .env Ρ„Π°ΠΉΠ».
  • Redis Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ установки пароля
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ сСрвисы, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ USERSIDE 3.16 (RabbitMQ, Π²ΠΎΡ€ΠΊΠ΅Ρ€ ядра, Π²ΠΎΡ€ΠΊΠ΅Ρ€ ΠΏΠΎΠ»Π»Π΅Ρ€Π°)

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ обновлСния

  1. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ остановитС Ρ€Π°Π±ΠΎΡ‚Ρƒ Π±Π°Π½Π΄Π»Π°:
backup-make && bundle-stop

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Makefile, Ρ‚ΠΎ:

sudo make backup && sudo make stop
  1. Если вмСсто master Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π²Π΅Ρ‚ΠΊΡƒ v3.13, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ v3.16 (Π»ΠΈΠ±ΠΎ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ master, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всСгда ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΡΠ°ΠΌΡƒΡŽ послСднюю ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π±Π°Π½Π΄Π»Π°):
sudo git checkout v3.16
sudo git pull
  1. ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠΉΡ‚Π΅ ваш Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» docker-compose.yml Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°Ρ‚Π΅Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ содСрТимоС Π² процСссС обновлСния:
sudo mv docker-compose.yml docker-compose_3-13.yml
  1. Π£Π΄Π°Π»ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» Makefile, Ссли Π²Ρ‹ Π½Π΅ вносили Π² Π½Π΅Π³ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π˜Π½Π°Ρ‡Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½ΡƒΠΉΡ‚Π΅ ΠΈ Π΅Π³ΠΎ.
sudo rm Makefile
  1. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” ΠΎΠ½Π° создаСт Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ копируя ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:
sudo ./init.sh
  1. Из Ρ„Π°ΠΉΠ»Π° docker-compose_3-13.yml пСрСнСситС всС значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ» .env. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ USERSIDE_BASE_DIR ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ Π±Π°Π½Π΄Π» (Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ). Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это /docker/userside.
  2. Начиная с вСрсии Π±Π°Π½Π΄Π»Π° 3.16 ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для Redis обязатСлСн. Если Ρƒ вас Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ Π±Ρ‹Π»ΠΎ пароля, Π·Π°Π΄Π°ΠΉΡ‚Π΅ Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ REDIS_PASSWORD Ρ„Π°ΠΉΠ»Π° .env, Π° Π·Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Ρ„Π°ΠΉΠ» ./data/userside/.env ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ US_REDIS_PASSWORD с Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ.
  3. Π’ Ρ„Π°ΠΉΠ»Π΅ .env ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Π·Π° количСство ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², запускаСмых для сСрвисов-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²: CORE_WORKER_NUM ΠΈ POLLER_NUM. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ΠΈ установлСны Π² 10 ΠΈ 5 соотвСтствСнно. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ большС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² β€”Β ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ эти Ρ†ΠΈΡ„Ρ€Ρ‹ здСсь. Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.
  4. ЗапуститС ΠΈΠ½ΡΡ‚Π°Π»Π»ΡΡ†ΠΈΡŽ. ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ с вСрсии Π±Π°Π½Π΄Π»Π° 3.13 Π½Π° 3.16 Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π° Π½Π΅ update. Π’ дальнСйшСм ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… вСрсии Π±Π°Π½Π΄Π»Π° 3.16 Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ обновлСния.
bundle-install

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Makefile, Ρ‚ΠΎ:

sudo make install
  1. ΠŸΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ ERP USERSIDE 3.16 ΠΏΡ€ΠΎΡˆΠ»ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.
  2. Π£Π΄Π°Π»ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» docker-compose_3-13.yml β€” ΠΎΠ½ большС Π½Π΅ Π½ΡƒΠΆΠ΅Π½. Если Π²Ρ‹ сохраняли Ρ„Π°ΠΉΠ» Makefile (ΠΏ.4), пСрСнСситС ΠΈΠ· Π½Π΅Π³ΠΎ всС ваши измСнСния Π² Π½ΠΎΠ²Ρ‹ΠΉ Makefile ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ старый.
sudo rm docker-compose_3-13.yml

Эксплуатация

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Ρ„Π°ΠΉΠ»Π΅ bundle.bash Π² Π²ΠΈΠ΄Π΅ псСвдонимов ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ этот Ρ„Π°ΠΉΠ» ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ сСансу ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ source bundle.bash ΠΈΠ»ΠΈ Π΅Π΅ сокращСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ . bundle.bash. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹-псСвдонимы ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· этого Ρ„Π°ΠΉΠ»Π°, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ описано Π΄Π°Π»Π΅Π΅.

Бписок ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

  • bundle-start β€” Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Docker-Π±Π°Π½Π΄Π»
  • bundle-stop β€” ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π±Π°Π½Π΄Π»Π°
  • bundle-restart β€” ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π±Π°Π½Π΄Π»
  • bundle-install β€” запуск ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ окруТСния для Π±Π°Π½Π΄Π»Π°, Π·Π°Ρ‚Π΅ΠΌ запуск инсталлятора для установки ΠΈ послС Ρ‡Π΅Π³ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ Π² ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ΅ cron ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… постинсталляционных процСссов
  • erp-install β€” запуск инсталлятора с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ install
  • erp-repair β€” запуск инсталлятора с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ repair
  • bundle-update β€” Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ всСх Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ для провСдСния обновлСния Π±Π°Π½Π΄Π»Π° ΠΈ USERSIDE, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
  • bundle-destroy β€” ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Docker-Π±Π°Π½Π΄Π»Π° ΠΈ Π·Π°Π΄Π°Ρ‡ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° cron. Π€Π°ΠΉΠ»Ρ‹ USERSIDE Π½Π΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ
  • bundle-purge β€” Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ bundle-destroy, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ всС Ρ„Π°ΠΉΠ»Ρ‹ USERSIDE
  • bundle-logs β€” ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ сСрвиса
  • erp-flush-cache β€” очистка кэшСй ядра userside
  • backup-make β€” Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

  • psql β€” запуск консольной ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ psql для взаимодСйствия с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…
  • rabbitmqctl β€” запуск консольной ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ rabbitmqctl для управлСния RabbitMQ
  • erp-stability beta β€” настройка уровня ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ userside для инструмСнта инсталлятора

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠ΅ΠΌ автоматичСского развёртывания ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ систСмы, Π² Ρ‚ΠΎΠΌ числС пСриодичСскоС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (Π·Π°Π΄Π°Π½ΠΈΠ΅ помСщаСтся Π² систСмный cron). Архивы Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ data/backup Π±Π°Π½Π΄Π»Π°.

Если Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Π½Π΅ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, запуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

backup-make

Π‘ΡƒΠ΄Π΅Ρ‚ создана рСзСрвная копия Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π° Π² ./data/backup.

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Начиная с вСрсии Docker-Π±Π°Π½Π΄Π»Π° 3.18 Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… производится Π² SQL-скрипт вмСсто Dump.

Для выполнСния Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π²Ρ‹Π²ΠΎΠ΄ΡΡ‰ΡƒΡŽ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию Π² стандартный Π²Ρ‹Π²ΠΎΠ΄:

database-backup > database.sql.gz

Или просто:

database-backup-to-file

Π’ послСднСм случаС Π±ΡƒΠ΄Π΅Ρ‚ создан Ρ„Π°ΠΉΠ» Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ data/backup ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ стандартноС имя, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€ΠΈ автоматичСском Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΌ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

ВосстановлСниС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈΠΈ

Для восстановлСния Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ SQL-скрипта ΠΈΡΠΏΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°:

database-restore data/backup/userside_db_2023-04-07_16-25.sql.gz

Π‘Π»ΡƒΠΆΠ±Ρ‹, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ Π² Ρ„ΠΎΠ½Π΅ ΠΈ Π±Ρ€ΠΎΠΊΠ΅Ρ€ RabbitMQ

Для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° состояния Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° RabbitMQ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ RabbitMQ management WEB-интСрфСйс ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ доступСн ΠΏΠΎ адрСсу http://your.userside.net:15672 (Π΄ΠΎΠΌΠ΅Π½ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ERP USERSIDE, имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ Π²Ρ‹ Π·Π°Π΄Π°Π»ΠΈ Π² .env Ρ„Π°ΠΉΠ»Π΅ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… RABBITMQ_DEFAULT_USER ΠΈ RABBITMQ_DEFAULT_PASS).

Если Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ задания постоянно Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ с большой Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ, Π²Π°ΠΌ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ (Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Queues) ΠΈ Ссли ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ постоянно ΠΈΠ»ΠΈ довольно часто ΠΈ ΠΏΠΎΠ΄ΠΎΠ»Π³Ρƒ содСрТат ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большоС количСство сообщСний, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ количСство запускаСмых экзСмпляров Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… процСссов для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ…:

ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ erp.core ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° сообщСния, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ядра. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ экзСмпляров этого ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния CORE_WORKER_NUM Π² Ρ„Π°ΠΉΠ»Π΅ .env Π±Π°Π½Π΄Π»Π° (Π½Π΅ userside).

ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ usm_poller ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° сообщСния, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ ΠΏΠΎΠ»Π»Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ с ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ экзСмпляров ΠΏΠΎΠ»Π»Π΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния POLLER_NUM Π² Ρ„Π°ΠΉΠ»Π΅ .env Π±Π°Π½Π΄Π»Π° (Π½Π΅ userside).

Если значСния для этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… измСнялись, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π±Π°Π½Π΄Π»:

bundle-restart

Вонкая настройка

Для достиТСния максимальной ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ рСкомСндуСтся произвСсти Ρ‚ΠΎΠ½ΠΊΡƒΡŽ настройку окруТСния. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ описаны Π½Π° нашСй ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ wiki-страницС.

PHP ΠΈ FPM

Π˜Π·ΠΌΠ΅Π½ΡΡ‚ΡŒ настройки для слуТб Docker-Π±Π°Π½Π΄Π»Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΠΌΠ° (volumes) Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ Ρ„Π°ΠΉΠ»Π΅ compose.yaml для слуТб php, fpm ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠΌΠ° для Ρ„Π°ΠΉΠ»ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ для Ρ‚ΠΎΠ½ΠΊΠΎΠΉ настройки.

Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ php.ini-example ΠΈ www.conf-example Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ config Π² Ρ„Π°ΠΉΠ»Ρ‹ php.ini ΠΈ www.conf соотвСтствСнно ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΡ…. Π—Π°Ρ‚Π΅ΠΌ Ρ€Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΎΠΌΠ° (volumes) Π² слуТбах php ΠΈ fpm Ρ„Π°ΠΉΠ»Π° compose.yaml ΠΈ пСрСзапуститС Π±Π°Π½Π΄Π»:

bundle-restart

PostgreSQL

Π€Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ PostgreSQL находятся Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ data/db ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ прямо Ρ‚Π°ΠΌ. ПослС рСдактирования Π½ΡƒΠΆΠ½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π±Π°Π½Π΄Π»:

bundle-restart

ИспользованиС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ USERSIDE

Π€Π°ΠΉΠ» compose.yaml содСрТит слуТбу usm_billing ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ собой Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ модуля взаимодСйствия с Π±ΠΈΠ»Π»ΠΈΠ½Π³ΠΎΠ²Ρ‹ΠΌΠΈ систСмами. Π­Ρ‚Π° слуТба Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈ Ссли Π² Π½Π΅ΠΉ Π½Π΅Ρ‚ нСобходимости, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π° ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Если ΠΆΠ΅ Π’Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ этот ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Ρ‚ΠΎ Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ основныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² Π±Π»ΠΎΠΊΠ΅ environment этой слуТбы: USERSIDE_API_KEY, BILLING_NAME, BILLING_URL, BILLING_ID. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ β€” ΠΏΠΎ нСобходимости. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ USERSIDE_API_URL Π² случаС использования Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π°Π½Π΄Π»Π° Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ: имя сСрвСра подставится автоматичСски.

Π’ нашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Π² Docker Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ содСрТат Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±Π°Π½Π΄Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ compose.yaml вашСго Π±Π°Π½Π΄Π»Π° ΠΈ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΏΠΎ установкС ΠΈ настройкС модуля Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π°Π½Π΄Π»Π°.

Если для ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅Π³ΠΎ Вас модуля Π½Π΅Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° использования, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

ИспользованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±Π°Π½Π΄Π»ΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎΠΌ сСрвСрС

ΠŸΡ€ΠΈ нСобходимости использования Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΏΠΈΠΉ USERSIDE Π½Π° ΠΎΠ΄Π½ΠΎΠΌ сСрвСрС, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π±Π°Π½Π΄Π»ΠΎΠ² β€” ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ копию. Если основной ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ планируСтся Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всС Π±Π°Π½Π΄Π»Ρ‹, являСтся /docker (согласно этой инструкции), ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΈ USERSIDE, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°ΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅.

Установка

Π Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /docker, Ссли ΠΎΠ½ Π΅Ρ‰Π΅ Π½Π΅ создан, ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π½Π΅Π³ΠΎ:

sudo mkdir -p /docker && cd $_

Π‘ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π΄Π²Π°ΠΆΠ΄Ρ‹. Π£ΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ понятноС имя для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π°Π½Π΄Π»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π³Π΄Π΅ ΠΊΠ°ΠΊΠΎΠΉ:

sudo git clone --depth 1 https://github.com/userside/userside-docker.git userside-production
sudo git clone --depth 1 https://github.com/userside/userside-docker.git userside-testing

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π΄Π²Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°: /docker/userside-production ΠΈ /docker/userside-testing Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ своя вСрсия Π±Π°Π½Π΄Π»Π°.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ:

cd /docker/userside-production && sudo ./init.sh
cd /docker/userside-testing && sudo ./init.sh
Π€Π°ΠΉΠ» .env

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» .env Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π±Π°Π½Π΄Π»ΠΎΠ². Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Π±Π°Π½Π΄Π»Ρƒ (пСрСмСнная ERP_BASE_DIR) ΠΈ имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (пСрСмСнная PROJECT_NAME), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, userside-production ΠΈ userside-testing.

ΠŸΡ€ΠΈ нСобходимости ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. НапримСр, для тСстовой ΠΊΠΎΠΏΠΈΠΈ USERSIDE вовсС Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ 10 ΠΊΠΎΠΏΠΈΠΉ core_worker процСссов ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ 5 ΠΊΠΎΠΏΠΈΠΉ микросСрвисов ΠΏΠΎΠ»Π»Π΅Ρ€ΠΎΠ². Для тСстовой ΠΊΠΎΠΏΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ достаточно ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ копию прСдполагаСтся минимальной.

Π€Π°ΠΉΠ» compose.yaml

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ внСсти ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ΅ Π² Ρ„Π°ΠΉΠ» настройки Π±Π°Π½Π΄Π»Π° compose.yaml. Π—Π΄Π΅ΡΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ настройки, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ сСти. Π‘Π°Π½Π΄Π»Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ подсСти, Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ подсСти Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ достаточным, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π±Π°Π½Π΄Π»Π° с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ запасом.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ этого Ρ„Π°ΠΉΠ»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ΄ΡΠ΅Ρ‚ΡŒ 172.31.254.0/25. Если эта ΠΏΠΎΠ΄ΡΠ΅Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π’Π°ΠΌ (Π½Π΅ пСрСсСкаСтся с ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈΡΡ подсСтями Π½Π° прСдприятии), Ρ‚ΠΎ ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π΅Π΅ Ρ‚Π°ΠΊΠΎΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π±Π°Π½Π΄Π»ΠΎΠ², Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π½Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 172.31.254.128/25. Для этого Π² Π±Π»ΠΎΠΊΠ΅ настроСк networks Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° subnet.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ адрСс ΡƒΠ·Π»Π° ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ подсСти Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π΄Π°Π½ интСрфСйсу хоста, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ Π±Π°Π½Π΄Π»Π°. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ IP-адрСса 172.31.254.1 ΠΈ 172.31.254.129 Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ интСрфСйсам bridgeXXX Π½Π° хостС. Π­Ρ‚ΠΈ адрСса ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для трансляции ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ².

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ports всСх слуТб (services) Π² compose.yaml. Он содСрТит список ΠΏΠΎΡ€Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· сСрвисов. НапримСр, запись "172.31.254.1:8080:80" для слуТбы nginx ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ€Ρ‚ 8080 интСрфСйса с адрСсом 172.31.254.1 Π½Π° хостС Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΠΎΡ€Ρ‚ 80 Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° с nginx. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сСтСвой доступ Π²Π½ΡƒΡ‚Ρ€ΡŒ Π±Π°Π½Π΄Π»Π° ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ, ΠΎΠ±Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ IP адрСсу хоста.

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ адрСса Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΈ Π±Ρ‹Π»ΠΈ адрСса ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ² Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ подсСти. Для описываСмого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° это 127.31.254.1 для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π±Π°Π½Π΄Π»Π° ΠΈ 172.31.254.129 для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Π°Π½Π΄Π»Π°.

Π’Π°ΠΊΠΆΠ΅ Π² Ρ„Π°ΠΉΠ»Π°Ρ… bundle.bash Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ DOCKER_HOST_IP Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ IP-адрСсу хоста.

Π£Π΄Π°Π»ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ со строки, Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΡ€Ρ‚ WebSTOMP с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 15674 сСрвиса rabbitmq. Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ использовании рСвСрсивного прокси ΠΏΠ΅Ρ€Π΅Π΄ Π±Π°Π½Π΄Π»ΠΎΠΌ.

РСвСрсивный HTTP-прокси

ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСвСрсивный прокси Π΄Π°ΠΆΠ΅ Ссли Ρƒ вас Π½Π° сСрвСрС ΠΎΠ΄Π½Π° копия Usersdide. Π­Ρ‚ΠΎ позволяСт Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ web доступ. НапримСр, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SSL Π»ΠΈΠ±ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡ€Π°Π²Π° доступа. Но Ссли для ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π°Π½Π΄Π»Π° рСвСрсивный прокси Π½Π΅ всСгда Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ, Π½ΠΎ ΠΏΡ€ΠΈ использовании Π΄Π²ΡƒΡ… ΠΈ Π±ΠΎΠ»Π΅Π΅ Π±Π°Π½Π΄Π»ΠΎΠ² Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ практичСски Π±Π΅Π·ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΎΡ‡Π½Π°.

Π”Π²Π° Π±Π°Π½Π΄Π»Π° с ΠΎΠ΄Π½ΠΈΠΌ рСвСрсивным прокси

УстановитС NGINX ΠΈ настройтС Π΅Π³ΠΎ ΠΊΠ°ΠΊ рСвСрсивный прокси ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ способом. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² userside.company.net для Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ userside ΠΈ test-us.company.net для тСстовой ΠΊΠΎΠΏΠΈΠΈ userside. Если Ρƒ вас ΠΎΠ΄Π½Π° копия, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ server. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

server {
    listen 80;
    server_name userside.company.net;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://172.31.254.1:8080;
        proxy_send_timeout 300;
        proxy_read_timeout 300;
    }

    location /ws {
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_pass http://172.31.254.1:15674/ws;
        proxy_http_version 1.1;
    }
}

server {
    listen 80;
    server_name test-us.company.net;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://172.31.254.129:8080;
        proxy_send_timeout 300;
        proxy_read_timeout 300;
    }

    location /ws {
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_pass http://172.31.254.129:15674/ws;
        proxy_http_version 1.1;
    }
}

Π’ Ρ„Π°ΠΉΠ» data/userside/.env ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния US_REVERSE_PROXY_TRUSTED_HOSTS Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ IP-адрСс хоста с NGINX, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ рСвСрсивный прокси. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ для ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ это Π±ΡƒΠ΄Π΅Ρ‚ адрСс 172.31.254.1, Π° для Π²Ρ‚ΠΎΡ€ΠΎΠΉ, соотвСтствСнно, 172.31.254.129. Π’ΠΎΡ‚ Ρ‚Π°ΠΊ:

US_REVERSE_PROXY_TRUSTED_HOSTS=172.31.254.1

МоТно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ IP-адрСс, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎΠ΄ΡΠ΅Ρ‚ΡŒ. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ список адрСсов ΠΈ подсСтСй, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми.

ДополнСния ΠΈ исправлСния

Π‘ΡƒΠ΄Π΅ΠΌ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½Ρ‹ Π·Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь, прСдлоТСния ΠΈ сообщСния ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹Ρ… ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π² Π΄Π°Π½Π½ΠΎΠΌ Docker-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ для USERSIDE. О Π½ΠΈΡ… Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Issue систСму этого рСпозитория. Π’Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π΄Ρ‹ прСдлоТСниям ΠΈ исправлСниям Π² Π²ΠΈΠ΄Π΅ Poll Request.