From 9994cd783fb55742b9047112e00a4c58e21691c6 Mon Sep 17 00:00:00 2001 From: ddadmin Date: Fri, 4 Jul 2025 10:58:42 +0300 Subject: [PATCH] update --- .env | 13 +- configs/admin/.env | 12 +- configs/admin/default | 7 +- configs/cabinet/.env | 8 +- configs/lms/.env | 8 +- configs/lms/entrypoint.sh | 2 +- configs/nginx/conf.d/admin.conf | 15 +- configs/nginx/conf.d/cabinet.conf | 104 ++++++++++++- configs/nginx/conf.d/default.conf | 146 ------------------ configs/nginx/conf.d/{lms.conf => demo.conf} | 9 +- configs/nginx/conf.d/landing.conf | 31 ++++ configs/nginx/conf.d/rabbitmq.conf | 13 +- configs/nuxt/.env | 8 +- configs/nuxt/entrypoint.sh | 8 +- configs/php/.env | 52 +++++-- configs/php/.env.local | 45 ++++-- docker-compose.yml | 19 ++- ...port-9531e25a70b2a89c8e2ea8932261d767.xlsx | Bin 9975 -> 0 bytes ...port-9531e25a70b2a89c8e2ea8932261d767.xlsx | Bin 16753 -> 0 bytes 19 files changed, 267 insertions(+), 233 deletions(-) delete mode 100755 configs/nginx/conf.d/default.conf rename configs/nginx/conf.d/{lms.conf => demo.conf} (92%) create mode 100644 configs/nginx/conf.d/landing.conf delete mode 100644 kpi-logist-report-9531e25a70b2a89c8e2ea8932261d767.xlsx delete mode 100644 kpi-manager-report-9531e25a70b2a89c8e2ea8932261d767.xlsx diff --git a/.env b/.env index 9f15aad..c65b763 100644 --- a/.env +++ b/.env @@ -1,13 +1,14 @@ -COMPOSE_PROJECT_NAME=testb -NETWORK=testb +COMPOSE_PROJECT_NAME=spottorg +NETWORK=spottorg FRONT_TAG=develop -DOTDOT_TAG=DD-3615-STORY -LMS_TAG=DD-3615-STORY +DOTDOT_TAG=DDB-1768-BACK +LMS_TAG=master ADMIN_TAG=master -CABINET_TAG=master +LANDING_TAG=master +CABINET_TAG=DD-4000_TD-436 -MYSQL_PORT=0.0.0.0:33062 +MYSQL_PORT=0.0.0.0:33063 MYSQL_ROOT_PASSWORD=root MYSQL_DATABASE=dot MYSQL_USER=dot diff --git a/configs/admin/.env b/configs/admin/.env index fc8dd66..78b1ba3 100644 --- a/configs/admin/.env +++ b/configs/admin/.env @@ -1,12 +1,12 @@ APP_NAME="DOT-DOT admin" APP_ENV=production -APP_KEY=base64:54d0glUSEueuhTWS0B45/WMCLlnbgFKpUP2hfgE7Xs4= +APP_KEY=base64:d5GXAhiyEWygEx+TdyNalRaR6UnkBhPznY0ycsDuOoY= APP_DEBUG=true APP_TIMEZONE=UTC -APP_URL=https://testbadmin.dot-dot.ru -FRONTEND_URL=https://testbadmin.dot-dot.ru -ASSET_URL=https://testbadmin.dot-dot.ru -APP_EMAIL_DOMAIN="dot-dot.ru" +APP_URL=https://demoadmin.spottorg.ru +FRONTEND_URL=https://demoadmin.spottorg.ru +ASSET_URL=https://demoadmin.spottorg.ru +APP_EMAIL_DOMAIN="spottorg.ru" APP_LOCALE=ru APP_FALLBACK_LOCALE=ru @@ -77,4 +77,4 @@ AWS_USE_PATH_STYLE_ENDPOINT=false VITE_APP_NAME="${APP_NAME}" -DOT_DOT_HOST=https://testb.dot-dot.ru +DOT_DOT_HOST=https://demo.spottorg.ru diff --git a/configs/admin/default b/configs/admin/default index becb0bc..7f6842c 100644 --- a/configs/admin/default +++ b/configs/admin/default @@ -1,9 +1,10 @@ server { - server_name testbadmin.dot-dot.ru; + server_name demoadmin.spottorg.ru; listen 443 ssl; - ssl_certificate /etc/nginx/ssl/dot2024.crt; - ssl_certificate_key /etc/nginx/ssl/dot2024.key; + ssl_certificate /etc/letsencrypt/live/spottorg.ru/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/spottorg.ru/privkey.pem; + ssl_trusted_certificate /etc/letsencrypt/live/spottorg.ru/chain.pem; index index.php index.html index.htm; diff --git a/configs/cabinet/.env b/configs/cabinet/.env index 309209f..493b13a 100755 --- a/configs/cabinet/.env +++ b/configs/cabinet/.env @@ -2,11 +2,11 @@ NUXT_HOST=0.0.0.0 NUXT_PORT=3000 NUXT_ENV_DEVALUE_LOG_LEVEL=silent WS_PROTOCOL=wss -BASE_URL=testbcabinet.dot-dot.ru -API_URL=https://testb.dot-dot.ru/ -DOMAIN=testbcabinet.dot-dot.ru +BASE_URL=democabinet.spottorg.ru +API_URL=https://demo.spottorg.ru/ +DOMAIN=democabinet.spottorg.ru -APP_HOST=testb.dot-dot.ru +APP_HOST=demo.spottorg.ru APP_SCHEME=https APP_ENVIRONMENT=production DADATA_API_TOKEN=c9aa5fdc338a746e23ce91ceb6fdb9e635749833 diff --git a/configs/lms/.env b/configs/lms/.env index b584f6a..04de5ce 100755 --- a/configs/lms/.env +++ b/configs/lms/.env @@ -2,11 +2,11 @@ NUXT_HOST=0.0.0.0 NUXT_PORT=3000 NUXT_ENV_DEVALUE_LOG_LEVEL=silent WS_PROTOCOL=wss -BASE_URL=https://testblms.dot-dot.ru/ -API_URL=https://testblms.dot-dot.ru/ -DOMAIN=testblms.dot-dot.ru +BASE_URL=https://demo.spottorg.ru/ +API_URL=https://demo.spottorg.ru/ +DOMAIN=demo.spottorg.ru -APP_HOST=testblms.dot-dot.ru +APP_HOST=demo.spottorg.ru APP_SCHEME=https APP_ENVIRONMENT=production DADATA_API_TOKEN=c9aa5fdc338a746e23ce91ceb6fdb9e635749833 diff --git a/configs/lms/entrypoint.sh b/configs/lms/entrypoint.sh index 228fdbc..1cfecb8 100755 --- a/configs/lms/entrypoint.sh +++ b/configs/lms/entrypoint.sh @@ -1,6 +1,6 @@ #!/bin/sh -x -DOMAIN="${DOMAIN:-lms.dot-dot.ru}" +DOMAIN="${DOMAIN:-demo.spottorg.ru}" for x in $(grep -lrw "lms.dot-dot.ru" .nuxt/);do echo "replace lms.dot-dot.ru to https://${DOMAIN} in $x" diff --git a/configs/nginx/conf.d/admin.conf b/configs/nginx/conf.d/admin.conf index ac9426e..e1eed13 100644 --- a/configs/nginx/conf.d/admin.conf +++ b/configs/nginx/conf.d/admin.conf @@ -1,20 +1,21 @@ server { listen 80; - server_name testbadmin.dot-dot.ru; + server_name demoadmin.spottorg.ru; return 301 https://$server_name$request_uri; } server { - listen 443 ssl ; - server_name testbadmin.dot-dot.ru; + listen 443 ssl; + server_name demoadmin.spottorg.ru; - ssl_certificate /etc/nginx/ssl/dot2024.crt; - ssl_certificate_key /etc/nginx/ssl/dot2024.key; + ssl_certificate /etc/letsencrypt/live/spottorg.ru/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/spottorg.ru/privkey.pem; + ssl_trusted_certificate /etc/letsencrypt/live/spottorg.ru/chain.pem; client_max_body_size 10m; - access_log /var/log/nginx/testbadmin.dot-dot.ru_access.log json; - error_log /var/log/nginx/testbadmin.dot-dot.ru_error.log; + access_log /var/log/nginx/demoadmin.spottorg.ru_access.log json; + error_log /var/log/nginx/demoadmin.spottorg.ru_error.log; location / { proxy_pass https://admin:443; diff --git a/configs/nginx/conf.d/cabinet.conf b/configs/nginx/conf.d/cabinet.conf index 40ad346..5929f04 100644 --- a/configs/nginx/conf.d/cabinet.conf +++ b/configs/nginx/conf.d/cabinet.conf @@ -1,12 +1,15 @@ server { listen 443 ssl ; - server_name testacabinet.dot-dot.ru; + server_name democabinet.spottorg.ru; - ssl_certificate /etc/nginx/ssl/dot2024.crt; - ssl_certificate_key /etc/nginx/ssl/dot2024.key; + ssl_certificate /etc/letsencrypt/live/spottorg.ru/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/spottorg.ru/privkey.pem; + ssl_trusted_certificate /etc/letsencrypt/live/spottorg.ru/chain.pem; client_max_body_size 10m; + root /application/public; + location / { proxy_pass http://cabinet:3000; proxy_http_version 1.1; @@ -18,4 +21,99 @@ server { proxy_buffering off; proxy_cache off; } + + location /socket.io/auctionreload { + access_log /var/log/nginx/ws_access.log json; + error_log /var/log/nginx/ws_error.log; + + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + proxy_set_header Host $host; + proxy_pass http://php:8080/; + } + + + location @rewriteapp { + rewrite ^(.*)$ /index.php/$1 last; + } + + # location /storybook { + # alias /application/nuxt/storybook-static; + # } + + location /logout { + try_files $uri @rewriteapp; + } + + location /api { + rewrite ^(.*)$ /index.php/$1 last; + } + + location /clockwork { + rewrite ^(.*)$ /index.php/$1 last; + } + + location /__clockwork { + rewrite ^(.*)$ /index.php/$1 last; + } + + location /pdf { + rewrite ^(.*)$ /index.php/$1 last; + } + + location /1c { + rewrite ^(.*)$ /index.php/$1 last; + } + + location /socket { + try_files $uri @rewriteapp; + } + + location /admin { + try_files $uri @rewriteapp; + } + + location ~* \/admin\/.*(js|jpg|png|css|woff|woff2)$ { + proxy_pass http://static; + } + + location /media { + try_files $uri @rewriteapp; + } + + location /img { + proxy_pass http://static; + # alias /application/public/img; + # try_files $uri /index.php$request_uri; + # expires 6M; + } + + location /robots.txt { + proxy_pass http://static; + } + + location ~ ^/index\.php(/|$) { + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' $http_origin; + add_header 'Access-Control-Allow-Credentials' 'true'; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE'; + add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Expeditor-Domain,Authorization'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + + #add_header 'Access-Control-Allow-Origin' $http_origin; + add_header 'Access-Control-Allow-Origin' *; + add_header 'Access-Control-Allow-Credentials' 'true'; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE'; + add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Expeditor-Domain,Authorization'; + + fastcgi_pass backend:9001; + fastcgi_split_path_info ^(.+\.php)(/.*)$; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + } } diff --git a/configs/nginx/conf.d/default.conf b/configs/nginx/conf.d/default.conf deleted file mode 100755 index 863d234..0000000 --- a/configs/nginx/conf.d/default.conf +++ /dev/null @@ -1,146 +0,0 @@ -server { - listen 80; - server_name testb.dot-dot.ru; - return 301 https://$server_name$request_uri; -} - -server { - listen 443 ssl ; - server_name testb.dot-dot.ru; - - ssl_certificate /etc/nginx/ssl/dot2024.crt; - ssl_certificate_key /etc/nginx/ssl/dot2024.key; - - - root /application/public; - - client_max_body_size 30m; - client_body_buffer_size 30M; - - location / { - proxy_pass http://nuxt:3000; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header Host $host; - proxy_cache_bypass $http_upgrade; - chunked_transfer_encoding off; - proxy_buffering off; - proxy_cache off; - } - - location /socket.io/auctionreload { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - proxy_set_header Host $host; - proxy_pass http://php:8080/; - } - - location @rewriteapp { - rewrite ^(.*)$ /index.php/$1 last; - } - - # location /storybook { - # alias /application/nuxt/storybook-static; - # } - - location /logout { - try_files $uri @rewriteapp; - } - - location /api { - rewrite ^(.*)$ /index.php/$1 last; - } - - location /clockwork { - rewrite ^(.*)$ /index.php/$1 last; - } - - location /__clockwork { - rewrite ^(.*)$ /index.php/$1 last; - } - - location /pdf { - rewrite ^(.*)$ /index.php/$1 last; - } - - location /1c { - rewrite ^(.*)$ /index.php/$1 last; - } - - location /socket { - try_files $uri @rewriteapp; - } - - location /admin { - try_files $uri @rewriteapp; - } - - location ~* \/admin\/.*(js|jpg|png|css|woff|woff2)$ { - proxy_pass http://static; - } - - location /media { - try_files $uri @rewriteapp; - } - - location /img { - proxy_pass http://static; - # alias /application/public/img; - # try_files $uri /index.php$request_uri; - # expires 6M; - } - - location ~ ^/index\.php(/|$) { - if ($request_method = 'OPTIONS') { - add_header 'Access-Control-Allow-Origin' $http_origin; - add_header 'Access-Control-Allow-Credentials' 'true'; - add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE'; - add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Expeditor-Domain,Authorization'; - add_header 'Access-Control-Max-Age' 1728000; - add_header 'Content-Type' 'text/plain charset=UTF-8'; - add_header 'Content-Length' 0; - return 204; - } - - #add_header 'Access-Control-Allow-Origin' $http_origin; - add_header 'Access-Control-Allow-Origin' *; - add_header 'Access-Control-Allow-Credentials' 'true'; - add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE'; - add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Expeditor-Domain,Authorization'; - - fastcgi_pass backend:9001; - fastcgi_split_path_info ^(.+\.php)(/.*)$; - include fastcgi_params; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - } - - # location /mysql_exporter { - # access_log /var/log/nginx/mysql_exporter_access.log json; - # error_log /var/log/nginx/mysql_exporter_error.log; - - # #if ($allow = 0) { - # # return 403; - # #} - # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - # proxy_set_header X-Scheme $scheme; - # proxy_set_header Host $http_host; - # proxy_redirect off; - # proxy_http_version 1.1; - # proxy_pass http://mysqld-exporter:9104/metrics; - # } - # location /redis_exporter { - # access_log /var/log/nginx/mysql_exporter_access.log json; - # error_log /var/log/nginx/mysql_exporter_error.log; - # #if ($allow = 0) { - # # return 403; - # #} - # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - # proxy_set_header X-Scheme $scheme; - # proxy_set_header Host $http_host; - # proxy_redirect off; - # proxy_http_version 1.1; - # proxy_pass http://redis-exporter:9121/metrics; - # } -} diff --git a/configs/nginx/conf.d/lms.conf b/configs/nginx/conf.d/demo.conf similarity index 92% rename from configs/nginx/conf.d/lms.conf rename to configs/nginx/conf.d/demo.conf index 20dcaa1..ea1c28b 100755 --- a/configs/nginx/conf.d/lms.conf +++ b/configs/nginx/conf.d/demo.conf @@ -1,15 +1,16 @@ server { listen 80; - server_name testblms.dot-dot.ru; + server_name demo.spottorg.ru; return 301 https://$server_name$request_uri; } server { listen 443 ssl; - server_name testblms.dot-dot.ru; + server_name demo.spottorg.ru; - ssl_certificate /etc/nginx/ssl/dot2024.crt; - ssl_certificate_key /etc/nginx/ssl/dot2024.key; + ssl_certificate /etc/letsencrypt/live/spottorg.ru/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/spottorg.ru/privkey.pem; + ssl_trusted_certificate /etc/letsencrypt/live/spottorg.ru/chain.pem; root /application/public; diff --git a/configs/nginx/conf.d/landing.conf b/configs/nginx/conf.d/landing.conf new file mode 100644 index 0000000..35ff255 --- /dev/null +++ b/configs/nginx/conf.d/landing.conf @@ -0,0 +1,31 @@ +server { + listen 80; + server_name spottorg.ru; + return 301 https://$server_name$request_uri; +} + +server { + listen 443 ssl; + server_name spottorg.ru; + + ssl_certificate /etc/letsencrypt/live/spottorg.ru/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/spottorg.ru/privkey.pem; + ssl_trusted_certificate /etc/letsencrypt/live/spottorg.ru/chain.pem; + + client_max_body_size 10m; + + access_log /var/log/nginx/spottorg.ru_access.log json; + error_log /var/log/nginx/spottorg.ru_error.log; + + location / { + proxy_pass http://landing:80; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + chunked_transfer_encoding off; + proxy_buffering off; + proxy_cache off; + } +} diff --git a/configs/nginx/conf.d/rabbitmq.conf b/configs/nginx/conf.d/rabbitmq.conf index 5658153..50ff6d5 100755 --- a/configs/nginx/conf.d/rabbitmq.conf +++ b/configs/nginx/conf.d/rabbitmq.conf @@ -1,18 +1,19 @@ server { listen 80; - server_name testbrabbitmq.dot-dot.ru; + server_name demorabbitmq.spottorg.ru; return 301 https://$server_name$request_uri; } server { listen 443 ssl; - server_name testbrabbitmq.dot-dot.ru; + server_name demorabbitmq.spottorg.ru; - access_log /var/log/nginx/rabbitmqtestb.dot-dot.ru_access.log json; - error_log /var/log/nginx/rabbitmqtestb.dot-dot.ru_error.log; + access_log /var/log/nginx/rabbitmqdemo.spottorg.ru_access.log json; + error_log /var/log/nginx/rabbitmqdemo.spottorg.ru_error.log; - ssl_certificate /etc/nginx/ssl/dot2024.crt; - ssl_certificate_key /etc/nginx/ssl/dot2024.key; + ssl_certificate /etc/letsencrypt/live/spottorg.ru/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/spottorg.ru/privkey.pem; + ssl_trusted_certificate /etc/letsencrypt/live/spottorg.ru/chain.pem; proxy_buffer_size 128k; proxy_buffers 4 128k; diff --git a/configs/nuxt/.env b/configs/nuxt/.env index d803978..26a54d8 100755 --- a/configs/nuxt/.env +++ b/configs/nuxt/.env @@ -2,11 +2,11 @@ NUXT_HOST=0.0.0.0 NUXT_PORT=3000 NUXT_ENV_DEVALUE_LOG_LEVEL=silent WS_PROTOCOL=wss -BASE_URL=testb.dot-dot.ru -API_URL=https://testb.dot-dot.ru/ -DOMAIN=testb.dot-dot.ru +BASE_URL=demo.spottorg.ru +API_URL=https://demo.spottorg.ru/ +DOMAIN=demo.spottorg.ru -APP_HOST=testb.dot-dot.ru +APP_HOST=demo.spottorg.ru APP_SCHEME=https APP_ENVIRONMENT=production DADATA_API_TOKEN=c9aa5fdc338a746e23ce91ceb6fdb9e635749833 diff --git a/configs/nuxt/entrypoint.sh b/configs/nuxt/entrypoint.sh index a1dc972..b7fde9b 100755 --- a/configs/nuxt/entrypoint.sh +++ b/configs/nuxt/entrypoint.sh @@ -1,10 +1,10 @@ #!/bin/sh -DOMAIN="${DOMAIN:-dot-dot.ru}" +DOMAIN="${DOMAIN:-spottorg.ru}" -for x in $(grep -lrw "dot-dot.ru" .nuxt/);do - echo "replace dot-dot.ru to https://${DOMAIN} in $x" - sed -i -e "s/dot-dot.ru/${DOMAIN}/g" $x; +for x in $(grep -lrw "spottorg.ru" .nuxt/);do + echo "replace spottorg.ru to https://${DOMAIN} in $x" + sed -i -e "s/spottorg.ru/${DOMAIN}/g" $x; done "$@" diff --git a/configs/php/.env b/configs/php/.env index 5abd326..c435f28 100755 --- a/configs/php/.env +++ b/configs/php/.env @@ -9,7 +9,7 @@ DATABASE_URL_DOT=mysql://root:root@db:3306/dot?serverVersion=mariadb-10.3.25 DATABASE_URL_DOT_STATISTIC=mysql://root:root@db:3306/dot_statistic?serverVersion=mariadb-10.3.25 DOCUMENT_ROOT=/application -APP_HOST=testb.dot-dot.ru +APP_HOST=demo.spottorg.ru APP_SCHEME=https MAILER_DSN=null://null @@ -25,13 +25,13 @@ SP_TEST=true SP_V3_URL=https://spasskievorota.ru/services/test/cargo_3.php SP_V3_KEY=secret -DEFAULT_EMAIL=no_reply@dot-dot.ru -ADMIN_EMAIL=change.this@dot-dot.ru -ACCOUNTANT_EMAIL=noreplay@dot-dot.ru -SALES_EMAIL=sale.ftl@dot-dot.ru -LOGIST_EMAIL=nd@dot-dot.ru -LEAD_EMAIL=change.this@dot-dot.ru -VOSTOK_EMAIL=vostok@dot-dot.ru +DEFAULT_EMAIL=no_reply@spottorg.ru +ADMIN_EMAIL=change.this@spottorg.ru +ACCOUNTANT_EMAIL=noreplay@spottorg.ru +SALES_EMAIL=sale.ftl@spottorg.ru +LOGIST_EMAIL=nd@spottorg.ru +LEAD_EMAIL=change.this@spottorg.ru +VOSTOK_EMAIL=vostok@spottorg.ru SMSC_LOGIN=secret SMSC_PASS=secret @@ -53,13 +53,13 @@ FNS_ACCESS_TOKEN=secret GOOGLE_MAPS_ACCESS_KEY=secret GOOGLE_MAPS_BASE_URL=https://maps.google.com -ML_CALCULATOR_URL=https://calc.dev.dot-dot.ru/v1/calculate +ML_CALCULATOR_URL=https://calc.dev.spottorg.ru/v1/calculate -ML_REGULAR_DIRECTION_URL=https://calc.dev.dot-dot.ru/v2/schedule/transport -ML_REGULAR_DIRECTION_CHAIN_URL=https://calc.dev.dot-dot.ru/v1/schedule/chains -ML_REGULAR_DIRECTION_RELEVANCE_CARRIERS_URL=https://calc.dev.dot-dot.ru/v1/schedule/carrier/scoring -ML_REGULAR_DIRECTION_CHAIN_RELEVANCE_CARRIERS_URL=https://calc.dev.dot-dot.ru/v1/schedule/chains/carrier/scoring -ML_UNCERTAIN_DIRECTIONS_URL=https://calc.dev.dot-dot.ru/v1/classification/direction/uncertain +ML_REGULAR_DIRECTION_URL=https://calc.dev.spottorg.ru/v2/schedule/transport +ML_REGULAR_DIRECTION_CHAIN_URL=https://calc.dev.spottorg.ru/v1/schedule/chains +ML_REGULAR_DIRECTION_RELEVANCE_CARRIERS_URL=https://calc.dev.spottorg.ru/v1/schedule/carrier/scoring +ML_REGULAR_DIRECTION_CHAIN_RELEVANCE_CARRIERS_URL=https://calc.dev.spottorg.ru/v1/schedule/chains/carrier/scoring +ML_UNCERTAIN_DIRECTIONS_URL=https://calc.dev.spottorg.ru/v1/classification/direction/uncertain YANDEX_MAPS_ACCESS_KEY=secret YANDEX_MAPS_BASE_URL=https://api.routing.yandex.net @@ -139,6 +139,28 @@ PROSTOR_SMS_END_POINT_URL=http://api.prostor-sms.ru PROSTOR_SMS_LOGIN=secret PROSTOR_SMS_PASSWORD=secret -ACCOUNTING_AUDIT_URL=https://crm.dot-dot.ru +ACCOUNTING_AUDIT_URL=https://crm.spottorg.ru ACCOUNTING_AUDIT_LOGIN=secret ACCOUNTING_AUDIT_PASSWORD=secret + +APP_LMS_HOST=demolms.spottorg.ru +APP_CARGO_CARRIER_HOST=democabinet.spottorg.ru + + +QUEUE_DSN_AUCTION_CARRIER_VERIFICATION=amqp://ddadmin:Utahth9aeshahgh3saik@rabbitmq:5672/%2f/AUCTION_CARRIER_VERIFICATION + +###DD-3816### +###> KONTUR_DIADOC### +API_KONTUR_DIADOC_END_POINT_URL=https://diadoc-api.kontur.ru +API_KONTUR_DIADOC_API_TOKEN=API-3701ccdb-7bdf-4f29-bbe0-3a0278eee913 +API_KONTUR_DIADOC_LOGIN=LOGIN +API_KONTUR_DIADOC_PASSWORD=PASSWORD +API_KONTUR_DIADOC_SELF_BOX_ID='322d597d-964d-48a8-baa5-2380161826f8' +###< KONTUR_DIADOC### + +###> KONTUR_DIADOC### +SIGNER_DOCS_API_URL=https://testcsigner.spottorg.ru +SIGNER_DOCS_API_TOKEN=secret +SIGNER_URL=https://testcsigner.spottorg.ru +SIGNER_API_TOKEN='siofdhgt2349875t3iqhf1h2g*^&^%&^GHJGJCxgf' +###< KONTUR_DIADOC### diff --git a/configs/php/.env.local b/configs/php/.env.local index 5e51dd6..6d67af5 100755 --- a/configs/php/.env.local +++ b/configs/php/.env.local @@ -1,5 +1,5 @@ CONTAINER_NAME=php -APP_ENV=prod +APP_ENV=dev NotificationBuildServicejSP_KEY=16e93b225c730920ac5741a8d8df788f DADATA_API_TOKEN=c9aa5fdc338a746e23ce91ceb6fdb9e635749833 @@ -16,7 +16,7 @@ FNS_ACCESS_TOKEN=a5639b93fe4e7c9a3f1dd85537e066d36439c352 GOOGLE_MAPS_ACCESS_KEY=AIzaSyBCPl2LcpRvplzLUNVMVLhA3b7k46lTCTg -NUXT_BASE_URL=testb.dot-dot.ru +NUXT_BASE_URL=demo.spottorg.ru ATISU_API_TOKEN=46b599c3ab7f4574b560f48ea005d9f3 @@ -36,7 +36,7 @@ VOICIA_CALL_ID=1949 ###< voicia ### ###> ml_calculator ### -ML_CALCULATOR_URL=https://ml.dot-dot.ru/v2/classification/order/relevance +ML_CALCULATOR_URL=https://ml.spottorg.ru/v2/classification/order/relevance ###< ml_calculator ### ###> comagic ### @@ -45,15 +45,15 @@ COMAGIC_KEY=j769gveux0brdq7wb6insegwtczvz7nsqmuntkqv ###< comagic ### ###> carrier_scoring ### -ML_CARRIER_SCORING=https://ml.dot-dot.ru/v2/classification/carrier/scoring +ML_CARRIER_SCORING=https://ml.spottorg.ru/v2/classification/carrier/scoring ###< carrier_scoring ### ###> direction_scoring ### -ML_DIRECTION_SCORING_URL=https://ml.dot-dot.ru/v3/classification/direction/confidence +ML_DIRECTION_SCORING_URL=https://ml.spottorg.ru/v3/classification/direction/confidence ###< direction_scoring ### ###> direction_recalculate ### -ML_DIRECTION_RECALCULATE_URL=https://ml.dot-dot.ru/v2/schedule/calculate +ML_DIRECTION_RECALCULATE_URL=https://ml.spottorg.ru/v2/schedule/calculate ###< direction_recalculate ### ###< Vozovoz ### @@ -82,7 +82,7 @@ BAIKAL_API_PARTNER_GUID=PROVERKA DELLIN_API_KEY=BE38996C-F722-4691-BCF3-640B76DAB18B DELLIN_API_URL=https://api.dellin.ru/ DELLIN_PASSWORD=Logistika01 -DELLIN_LOGIN=km@dot-dot.ru +DELLIN_LOGIN=km@spottorg.ru ###< DelovieLinii ### ###> JelDorEksp ### @@ -113,11 +113,11 @@ SOVKOM_API_KEY=AAk6UcV88xCCC26654rM SOVKOM_API_URL=https://testout.sovcomins.ru ###< SOVKOMTEST### -ML_REGULAR_DIRECTION_RELEVANCE_CARRIERS_URL=https://ml.dot-dot.ru/v2/schedule/carrier/scoring +ML_REGULAR_DIRECTION_RELEVANCE_CARRIERS_URL=https://ml.spottorg.ru/v2/schedule/carrier/scoring -ML_REGULAR_DIRECTION_URL=https://ml.dot-dot.ru/v2/schedule/transport +ML_REGULAR_DIRECTION_URL=https://ml.spottorg.ru/v2/schedule/transport -ACCOUNTING_AUDIT_URL="https://crm.dot-dot.ru/TTLBuhreport/hs/TT/reconciliationreport" +ACCOUNTING_AUDIT_URL="https://crm.spottorg.ru/TTLBuhreport/hs/TT/reconciliationreport" ###> YandexTracker ### YTRACKER_API_TOKEN="y0_AgAEA7qkKFmeAAjF8AAAAADXovQd6htdkt7LTDW_sNHCz7qV9zdVHaQ" @@ -127,14 +127,14 @@ YTRACKER_ORGANISATION_ID=355207 SMARTCAPTCHA_SERVER_KEY=ysc2_GLQZ8QPaFh0eXqZ5KaRMuRRZOX7qNNMy7P9Mq82V6c4e7b81 ###> sentry/sentry-symfony ### -SENTRY_DSN="https://69bb249adbab80b23cf043b276a27fde@sentry.dot-dot.ru/4" +SENTRY_DSN="https://69bb249adbab80b23cf043b276a27fde@sentry.spottorg.ru/4" SENTRY_SERVER_NAME=pre-prod SENTRY_SERVER_USER_NAME=admin ###< sentry/sentry-symfony ### -ML_CALCULATOR_TRADE_ONLY_URL=https://ml.dot-dot.ru/v1/tender/price +ML_CALCULATOR_TRADE_ONLY_URL=https://ml.spottorg.ru/v1/tender/price -ML_REGULAR_DIRECTION_HISTORY_ORDER_URL=https://ml.dot-dot.ru/v1/schedule/transport/orders +ML_REGULAR_DIRECTION_HISTORY_ORDER_URL=https://ml.spottorg.ru/v1/schedule/transport/orders #QUEUE_DSN_OC_CARRIER_OFFERS=amqp://guest:guest@rabbitmq:5672/%2f/OC_CARRIER_OFFERS #QUEUE_DSN_STATISTIC_EXPORT=amqp://guest:guest@rabbitmq:5672/%2f/STATISTIC_EXPORT @@ -167,11 +167,26 @@ OTK_API_TOKEN="Q5vBE9jusg38Rk7wHt2bzycT4K6pePFZ" ACCOUNTING_AUDIT_LOGIN=ReportServis ACCOUNTING_AUDIT_PASSWORD=fE7mubiv -ML_CALCULATOR_SPOT_URL=https://ml.dot-dot.ru/v1/price_calculator/spot +ML_CALCULATOR_SPOT_URL=https://ml.spottorg.ru/v1/price_calculator/spot ###DD-3705### -ML_CARRIER_SCORING=https://ml.dot-dot.ru/v3/classification/carrier/scoring +ML_CARRIER_SCORING=https://ml.spottorg.ru/v3/classification/carrier/scoring QUEUE_DSN_RELEVANT_CARRIER_EXPORT=amqp://ddadmin:Utahth9aeshahgh3saik@rabbitmq:5672/%2f/RELEVANT_CARRIER_EXPORT ###DD-3705### PLATFORM_NAME=СПОТТОРГ + +APP_LMS_HOST=demolms.spottorg.ru +APP_CARGO_CARRIER_HOST=democabinet.spottorg.ru + + +###> KONTUR_DIADOC### +SIGNER_DOCS_API_URL=https://stagingsigner.spottorg.ru +SIGNER_DOCS_API_TOKEN='siofdhgt2349875t3iqhf1h2g*^&^%&^GHJGJCxgf' +###< KONTUR_DIADOC### + + +QUEUE_DSN_AUCTION_CARRIER_VERIFICATION=amqp://ddadmin:Utahth9aeshahgh3saik@rabbitmq:5672/%2f/AUCTION_CARRIER_VERIFICATION + +AILER_DSN_YANDEX=smtp://no_reply@dot-dot.ru:gqwaofmeyvxefrqk@smtp.yandex.ru:587 +MAILER_DSN=smtp://no_reply@dot-dot.ru:NRTk7rXhesHQpi3YWB92@smtp.mail.ru:465 diff --git a/docker-compose.yml b/docker-compose.yml index 7384276..ecc343e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,6 +18,7 @@ x-defaults-php: &defaults-php - ./configs/php/.env.local:/application/.env.local - ./configs/php/zz-docker.conf:/usr/local/etc/php-fpm.d/zz-docker.conf - php_var_volume:/application/var + - /etc/letsencrypt:/etc/letsencrypt - php_support_volume:/application/var/support-issue - ./configs/php/www.conf:/usr/local/etc/php-fpm.d/www.conf - ./configs/php/firebase-fcm-dotdot-key.json:/application/config/firebase-fcm-dotdot-key.json @@ -25,10 +26,9 @@ x-defaults-php: &defaults-php - db - rabbitmq extra_hosts: - - "sentry.dot-dot.ru:192.168.100.111" - - "testbsigner.dot-dot.ru:192.168.100.110" - - "testb.dot-dot.ru:192.168.100.110" - - "testblms.dot-dot.ru:192.168.100.110" + - "demo.spottorg.ru:192.168.90.100" + - "democabinet.spottorg.ru:192.168.90.100" + - "demoadmin.spottorg.ru:192.168.90.100" networks: - dd @@ -119,6 +119,7 @@ services: - ./configs/admin/default:/etc/nginx/sites-enabled/default - ./configs/admin/.env:/application/.env - ./configs/nginx/ssl:/etc/nginx/ssl + - /etc/letsencrypt:/etc/letsencrypt depends_on: - db networks: @@ -134,8 +135,8 @@ services: - ./configs/nginx/www:/var/www - ./configs/nginx/ssl:/etc/nginx/ssl - ./configs/nginx/other:/etc/nginx/other - - certbot_volume:/etc/letsencrypt - nginx_log_volume:/var/log/nginx + - /etc/letsencrypt:/etc/letsencrypt depends_on: - nuxt - php @@ -190,3 +191,11 @@ services: entrypoint: /entrypoint.sh networks: - dd + + landing: + image: registry.dot-dot.ru/landing:${LANDING_TAG} + command: sh -c 'nginx; php-fpm -R' + user: root + restart: unless-stopped + networks: + - dd diff --git a/kpi-logist-report-9531e25a70b2a89c8e2ea8932261d767.xlsx b/kpi-logist-report-9531e25a70b2a89c8e2ea8932261d767.xlsx deleted file mode 100644 index 506ed8853804933f70785ef7c4929d6c1c9ec694..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9975 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 diff --git a/kpi-manager-report-9531e25a70b2a89c8e2ea8932261d767.xlsx b/kpi-manager-report-9531e25a70b2a89c8e2ea8932261d767.xlsx deleted file mode 100644 index 71d9e6fdb51bcbc47b32bfe50628ccfb61f660ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16753 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