diff --git a/.env b/.env index 2f13983..c1da530 100644 --- a/.env +++ b/.env @@ -1,12 +1,11 @@ COMPOSE_PROJECT_NAME=testb NETWORK=testb -FRONT_TAG=master -# FRONT_TAG=master -DOTDOT_TAG=master -# DOTDOT_TAG=master -LMS_TAG=master +FRONT_TAG=develop +DOTDOT_TAG=DD-3776-STORY +LMS_TAG=DD-3776-STORY DASHBORD_TAG=master +ADMIN_TAG=master MYSQL_PORT=0.0.0.0:33062 MYSQL_ROOT_PASSWORD=root diff --git a/configs/admin/.env b/configs/admin/.env new file mode 100644 index 0000000..5e9f18d --- /dev/null +++ b/configs/admin/.env @@ -0,0 +1,3 @@ +NUXT_HOST=0.0.0.0 +NUXT_PORT=3000 +DOMAIN=testbadmin.dot-dot.ru diff --git a/configs/admin/entrypoint.sh b/configs/admin/entrypoint.sh new file mode 100755 index 0000000..ddc99b3 --- /dev/null +++ b/configs/admin/entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +DOMAIN="${DOMAIN:-lmsadmin.dot-dot.ru}" + +for x in $(grep -lrw "lmsadmin.dot-dot.ru" .nuxt/);do + echo "replace lmsadmin.dot-dot.ru to https://${DOMAIN} in $x" + sed -i -e "s/lmsadmin.dot-dot.ru/${DOMAIN}/g" $x; +done + +"$@" diff --git a/configs/dashboard/.env b/configs/dashboard/.env index 0c90a25..b035e7f 100644 --- a/configs/dashboard/.env +++ b/configs/dashboard/.env @@ -1,11 +1,11 @@ -APP_NAME="DOT-DOT DASHBOARD" -APP_ENV=local -APP_KEY=base64:UdElHcbd1MSsWoLOn8LietbdAhHiyT/C6+dpy+kYfkQ= +APP_NAME="DOT-DOT admin" +APP_ENV=production +APP_KEY=base64:tt8hr1y+cfNtEPQfWtFi9OXEDgko6Qw6uxeNK7ka3YU= APP_DEBUG=true APP_TIMEZONE=UTC -APP_URL=https://testbdashboard.dot-dot.ru -FRONTEND_URL=https://testbdashboard.dot-dot.ru -ASSET_URL=https://testbdashboard.dot-dot.ru +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_LOCALE=ru @@ -25,6 +25,7 @@ LOG_LEVEL=debug DEFAULT_DB_CONNECTION=dashboard #Параметры подключения к базе панели управления + DASHBOARD_DB_HOST=db DASHBOARD_DB_PORT=3306 DASHBOARD_DB_DATABASE=dashboard @@ -32,11 +33,12 @@ DASHBOARD_DB_USERNAME=root DASHBOARD_DB_PASSWORD=root #Параметры подключения к базе dot-dot + DOT_DOT_DB_HOST=db DOT_DOT_DB_PORT=3306 DOT_DOT_DB_DATABASE=dot -DOT_DOT_DB_USERNAME=root -DOT_DOT_DB_PASSWORD=root +DOT_DOT_DB_USERNAME=dot +DOT_DOT_DB_PASSWORD=dot SESSION_DRIVER=database SESSION_LIFETIME=120 @@ -76,3 +78,5 @@ AWS_USE_PATH_STYLE_ENDPOINT=false VITE_APP_NAME="${APP_NAME}" OCTANE_SERVER=frankenphp + +DOT_DOT_HOST=https://testb.dot-dot.ru diff --git a/configs/dashboard/config/admin.json b/configs/dashboard/config/admin.json deleted file mode 100644 index 7bb5922..0000000 --- a/configs/dashboard/config/admin.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - admin { - disabled false - } -} \ No newline at end of file diff --git a/configs/dashboard/config/caddy/autosave.json b/configs/dashboard/config/caddy/autosave.json deleted file mode 100644 index c266fc1..0000000 --- a/configs/dashboard/config/caddy/autosave.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "apps": { - "frankenphp": {}, - "http": { - "servers": { - "srv0": { - "listen": [ - ":443" - ], - "routes": [ - { - "handle": [ - { - "handler": "subroute", - "routes": [ - { - "handle": [ - { - "handler": "vars", - "root": "public/" - }, - { - "encodings": { - "br": {}, - "gzip": {}, - "zstd": {} - }, - "handler": "encode", - "prefer": [ - "zstd", - "br", - "gzip" - ] - } - ] - }, - { - "handle": [ - { - "handler": "static_response", - "headers": { - "Location": [ - "{http.request.orig_uri.path}/" - ] - }, - "status_code": 308 - } - ], - "match": [ - { - "file": { - "try_files": [ - "{http.request.uri.path}/index.php" - ] - }, - "not": [ - { - "path": [ - "*/" - ] - } - ] - } - ] - }, - { - "handle": [ - { - "handler": "rewrite", - "uri": "{http.matchers.file.relative}" - } - ], - "match": [ - { - "file": { - "split_path": [ - ".php" - ], - "try_files": [ - "{http.request.uri.path}", - "{http.request.uri.path}/index.php", - "index.php" - ] - } - } - ] - }, - { - "handle": [ - { - "handler": "php", - "split_path": [ - ".php" - ] - } - ], - "match": [ - { - "path": [ - "*.php" - ] - } - ] - }, - { - "handle": [ - { - "handler": "file_server" - } - ] - } - ] - } - ], - "match": [ - { - "host": [ - "testbdashboard.dot-dot.ru" - ] - } - ], - "terminal": true - } - ] - } - } - } - } -} \ No newline at end of file diff --git a/configs/dashboard/config/composer/.htaccess b/configs/dashboard/config/composer/.htaccess deleted file mode 100644 index 14249c5..0000000 --- a/configs/dashboard/config/composer/.htaccess +++ /dev/null @@ -1 +0,0 @@ -Deny from all \ No newline at end of file diff --git a/configs/lms/.env b/configs/lms/.env old mode 100644 new mode 100755 diff --git a/configs/lms/entrypoint.sh b/configs/lms/entrypoint.sh new file mode 100755 index 0000000..228fdbc --- /dev/null +++ b/configs/lms/entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/sh -x + +DOMAIN="${DOMAIN:-lms.dot-dot.ru}" + +for x in $(grep -lrw "lms.dot-dot.ru" .nuxt/);do + echo "replace lms.dot-dot.ru to https://${DOMAIN} in $x" + sed -i -e "s/lms.dot-dot.ru/${DOMAIN}/g" $x; +done + +"$@" diff --git a/configs/nginx/conf.d/admin.conf b/configs/nginx/conf.d/admin.conf new file mode 100644 index 0000000..4561249 --- /dev/null +++ b/configs/nginx/conf.d/admin.conf @@ -0,0 +1,16 @@ +server { + server_name testbadmin.dot-dot.ru; + client_max_body_size 10m; + + location / { + proxy_pass http://dashboard: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/default.conf b/configs/nginx/conf.d/default.conf old mode 100644 new mode 100755 diff --git a/configs/nginx/conf.d/lms.conf b/configs/nginx/conf.d/lms.conf old mode 100644 new mode 100755 diff --git a/configs/nginx/conf.d/rabbitmq.conf b/configs/nginx/conf.d/rabbitmq.conf new file mode 100755 index 0000000..c1b8c5f --- /dev/null +++ b/configs/nginx/conf.d/rabbitmq.conf @@ -0,0 +1,48 @@ +server { + listen 80; + server_name testbrabbitmq.dot-dot.ru; + return 301 https://$server_name$request_uri; +} + +server { + listen 443 ssl; + server_name testbrabbitmq.dot-dot.ru; + + access_log /var/log/nginx/rabbitmq_access.log json; + error_log /var/log/nginx/rabbitmq_error.log; + + ssl_certificate /etc/nginx/ssl/dot2024.crt; + ssl_certificate_key /etc/nginx/ssl/dot2024.key; + + proxy_buffer_size 128k; + proxy_buffers 4 128k; + client_body_buffer_size 32k; + client_header_buffer_size 256k; + large_client_header_buffers 4 256k; + + location / { + client_max_body_size 600m; + 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_pass http://rabbitmq:15672; + proxy_connect_timeout 600; + proxy_send_timeout 600; + proxy_read_timeout 600; + send_timeout 600; + } + + location /metrics { + client_max_body_size 600m; + 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_pass http://rabbitmq:15692/metrics; + proxy_connect_timeout 600; + proxy_send_timeout 600; + proxy_read_timeout 600; + send_timeout 600; + } +} \ No newline at end of file diff --git a/configs/nginx/nginx.conf b/configs/nginx/nginx.conf old mode 100644 new mode 100755 diff --git a/configs/nginx/ssl/dot2023.crt b/configs/nginx/ssl/dot2023.crt old mode 100644 new mode 100755 diff --git a/configs/nginx/ssl/dot2023.key b/configs/nginx/ssl/dot2023.key old mode 100644 new mode 100755 diff --git a/configs/nginx/ssl/dot2024.crt b/configs/nginx/ssl/dot2024.crt old mode 100644 new mode 100755 diff --git a/configs/nginx/ssl/dot2024.key b/configs/nginx/ssl/dot2024.key old mode 100644 new mode 100755 diff --git a/configs/nuxt/.env b/configs/nuxt/.env old mode 100644 new mode 100755 diff --git a/configs/nuxt/entrypoint.sh b/configs/nuxt/entrypoint.sh new file mode 100755 index 0000000..a1dc972 --- /dev/null +++ b/configs/nuxt/entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +DOMAIN="${DOMAIN:-dot-dot.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; +done + +"$@" diff --git a/configs/php/.env b/configs/php/.env old mode 100644 new mode 100755 diff --git a/configs/php/.env.local b/configs/php/.env.local old mode 100644 new mode 100755 index 5fda34a..acb2e90 --- a/configs/php/.env.local +++ b/configs/php/.env.local @@ -127,9 +127,9 @@ YTRACKER_ORGANISATION_ID=355207 SMARTCAPTCHA_SERVER_KEY=ysc2_GLQZ8QPaFh0eXqZ5KaRMuRRZOX7qNNMy7P9Mq82V6c4e7b81 ###> sentry/sentry-symfony ### -SENTRY_DSN="https://69bb249adbab80b23cf043b276a27fde@sentry.dot-dot.ru/4" -SENTRY_SERVER_NAME=pre-prod -SENTRY_SERVER_USER_NAME=admin +SENTRY_DSN="https://1127a3ada375b040486c3ab0d86cbcab@sentry.dot-dot.ru/5" +SENTRY_SERVER_NAME=testb +SENTRY_SERVER_USER_NAME=sozonov ###< sentry/sentry-symfony ### ML_CALCULATOR_TRADE_ONLY_URL=https://ml.dot-dot.ru/v1/tender/price @@ -153,7 +153,7 @@ USER_TRUST_API_KONTUR_FOCUS_API_TOKEN=3208d29d15c507395db770d0e65f3711e40374df USER_TRUST_CHECK_BACKEND=true ###< API_KONTUR_FOCUS### -QUEUE_DSN_USER_TRUST=amqp://guest:guest@rabbitmq:5672/%2f/USER_TRUST +QUEUE_DSN_USER_TRUST=amqp://ddadmin:Utahth9aeshahgh3saik@rabbitmq:5672/%2f/USER_TRUST CHROMIUM_BROWSER_SYS_PATH="/usr/bin/chromium-browser" @@ -165,3 +165,9 @@ OTK_API_TOKEN="Q5vBE9jusg38Rk7wHt2bzycT4K6pePFZ" ACCOUNTING_AUDIT_LOGIN=ReportServis ACCOUNTING_AUDIT_PASSWORD=fE7mubiv + +FNS_ACCESS_TOKEN=a5639b93fe4e7c9a3f1dd85537e066d36439c35 + + +ML_CALCULATOR_SPOT_URL=https://ml.dot-dot.ru/v1/price_calculator/spot +ML_CARRIER_SCORING=https://ml.dot-dot.ru/v1/classification/carrier/scoring diff --git a/configs/rabbitmq/definitions.json b/configs/rabbitmq/definitions.json new file mode 100755 index 0000000..1dcf26f --- /dev/null +++ b/configs/rabbitmq/definitions.json @@ -0,0 +1,151 @@ +{ + "rabbit_version": "3.12.1", + "rabbitmq_version": "3.12.1", + "product_name": "RabbitMQ", + "product_version": "3.12.1", + "users": [ + { + "name": "ddadmin", + "password_hash": "iitSzcQJwX/NeX6ENPfc3ITxfyWBAwz4+8Cz1yZBzibz5zHv", + "hashing_algorithm": "rabbit_password_hashing_sha256", + "tags": [ + "administrator" + ], + "limits": {} + }, + { + "name": "guest", + "password_hash": "Yn3TgLYeK0bubvTm0HXfYnqh39XM2sCaA3C6b/fN928iFB8E", + "hashing_algorithm": "rabbit_password_hashing_sha256", + "tags": [ + "management" + ], + "limits": {} + } + ], + "vhosts": [ + { + "name": "/" + } + ], + "permissions": [ + { + "user": "ddadmin", + "vhost": "/", + "configure": ".*", + "write": ".*", + "read": ".*" + }, + { + "user": "guest", + "vhost": "/", + "configure": ".*", + "write": ".*", + "read": ".*" + } + ], + "topic_permissions": [ + { + "user": "guest", + "vhost": "/", + "exchange": "", + "write": ".*", + "read": ".*" + } + ], + "parameters": [], + "global_parameters": [ + { + "name": "internal_cluster_id", + "value": "rabbitmq-cluster-id-IdnQKai-TysuN7ZwZMtH5w" + } + ], + "policies": [], + "queues": [ + { + "name": "OC_CARRIER_OFFERS", + "vhost": "/", + "durable": true, + "auto_delete": false, + "arguments": {} + }, + { + "name": "STATISTIC_EXPORT", + "vhost": "/", + "durable": true, + "auto_delete": false, + "arguments": {} + }, + { + "name": "USER_TRUST", + "vhost": "/", + "durable": true, + "auto_delete": false, + "arguments": {} + } + ], + "exchanges": [ + { + "name": "STATISTIC_EXPORT", + "vhost": "/", + "type": "fanout", + "durable": true, + "auto_delete": false, + "internal": false, + "arguments": {} + }, + { + "name": "USER_TRUST", + "vhost": "/", + "type": "fanout", + "durable": true, + "auto_delete": false, + "internal": false, + "arguments": {} + }, + { + "name": "OC_CARRIER_OFFERS", + "vhost": "/", + "type": "fanout", + "durable": true, + "auto_delete": false, + "internal": false, + "arguments": {} + }, + { + "name": "delays", + "vhost": "/", + "type": "direct", + "durable": true, + "auto_delete": false, + "internal": false, + "arguments": {} + } + ], + "bindings": [ + { + "source": "OC_CARRIER_OFFERS", + "vhost": "/", + "destination": "OC_CARRIER_OFFERS", + "destination_type": "queue", + "routing_key": "", + "arguments": {} + }, + { + "source": "STATISTIC_EXPORT", + "vhost": "/", + "destination": "STATISTIC_EXPORT", + "destination_type": "queue", + "routing_key": "", + "arguments": {} + }, + { + "source": "USER_TRUST", + "vhost": "/", + "destination": "USER_TRUST", + "destination_type": "queue", + "routing_key": "", + "arguments": {} + } + ] +} \ No newline at end of file diff --git a/configs/rabbitmq/enabled_plugins b/configs/rabbitmq/enabled_plugins old mode 100644 new mode 100755 index e69de29..318ea04 --- a/configs/rabbitmq/enabled_plugins +++ b/configs/rabbitmq/enabled_plugins @@ -0,0 +1 @@ +[rabbitmq_management,rabbitmq_prometheus]. \ No newline at end of file diff --git a/configs/rabbitmq/rabbitmq.conf b/configs/rabbitmq/rabbitmq.conf new file mode 100755 index 0000000..916cb91 --- /dev/null +++ b/configs/rabbitmq/rabbitmq.conf @@ -0,0 +1 @@ +management.load_definitions = /etc/rabbitmq/definitions.json \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index de2f0c3..4dee9c9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -58,8 +58,10 @@ services: command: npm run start volumes: - ./configs/nuxt/.env:/app/.env + - ./configs/nuxt/entrypoint.sh:/entrypoint.sh env_file: - ./configs/nuxt/.env + entrypoint: /entrypoint.sh networks: - dd @@ -69,28 +71,28 @@ services: command: npm run start volumes: - ./configs/lms/.env:/app/.env + - ./configs/lms/entrypoint.sh:/entrypoint.sh env_file: - ./configs/lms/.env + entrypoint: /entrypoint.sh networks: - dd - dashboard: + admin: image: registry.dot-dot.ru/dashboard:${DASHBORD_TAG} - # command: sh -c "php-fpm -D && nginx -g 'daemon off;'" command: frankenphp php-server -r /application/public restart: unless-stopped environment: - - SERVER_NAME=testbdashboard.dot-dot.ru + - SERVER_NAME=testbadmin.dot-dot.ru volumes: - ./configs/dashboard/.env:/application/.env - - ./configs/dashboard/config:/config depends_on: - db networks: dd: ingress: aliases: - - ${NETWORK}-dashboard + - ${NETWORK}-admin nginx: image: nginx:1.25.3-alpine3.18 @@ -120,6 +122,8 @@ services: volumes: - rabbitmq_volume:/var/lib/rabbitmq - ./configs/rabbitmq/enabled_plugins:/etc/rabbitmq/enabled_plugins + - ./configs/rabbitmq/definitions.json:/etc/rabbitmq/definitions.json + - ./configs/rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf environment: - RABBITMQ_DEFAULT_USER=${RABBITMQ_USERNAME} - RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASSWORD}