commit 68268831106347e6f7ad6883c2d97ff4e4bc1aae Author: Sergey Paramoshkin Date: Mon Feb 19 14:33:57 2024 +0300 Initial commit diff --git a/.env b/.env new file mode 100644 index 0000000..e44d3cc --- /dev/null +++ b/.env @@ -0,0 +1,11 @@ +COMPOSE_PROJECT_NAME=testa +NETWORK=testa + +FRONT_TAG=test-nuxt +DOTDOT_TAG=test-nuxt + +MYSQL_PORT=0.0.0.0:3306 +MYSQL_ROOT_PASSWORD=root +MYSQL_DATABASE=dot +MYSQL_USER=dot +MYSQL_PASSWORD=dot diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/configs/nginx/conf.d/default.conf b/configs/nginx/conf.d/default.conf new file mode 100644 index 0000000..88ea0fc --- /dev/null +++ b/configs/nginx/conf.d/default.conf @@ -0,0 +1,102 @@ +server { + server_name testa.dot-dot.ru; + + root /application/public; + + 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 "Upgrade"; + proxy_pass http://php:9000; + } + + location @rewriteapp { + rewrite ^(.*)$ /index.php/$1 last; + } + + # location /storybook { + # alias /application/nuxt/storybook-static; + # } + + location /logout { + try_files $uri @rewriteapp; + } + + location /help { + alias /application/help-platform/src/.vuepress/dist; + } + + 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 /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-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 php:9001; + fastcgi_split_path_info ^(.+\.php)(/.*)$; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + } +} diff --git a/configs/nginx/nginx.conf b/configs/nginx/nginx.conf new file mode 100644 index 0000000..9f79d49 --- /dev/null +++ b/configs/nginx/nginx.conf @@ -0,0 +1,64 @@ +user nginx; +worker_processes 16; + +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + +events { + worker_connections 10240; + use epoll; + multi_accept on; +} +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + log_format upstream_time '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" rt=$request_time uct=$upstream_connect_time uht=$upstream_header_time urt=$upstream_response_time "$http_user_agent"'; + + log_format json escape=json '{' + '"time":"$time_iso8601",' + '"proxy_protocol_addr":"$proxy_protocol_addr",' + '"remote_addr":"$remote_addr",' + '"x-forward-for":"$proxy_add_x_forwarded_for",' + '"request_id":"$request_id",' + '"request":"$request",' + '"remote_user":"$remote_user",' + '"bytes_sent":"$bytes_sent",' + '"body_bytes_sent":"$body_bytes_sent",' + '"request_time":"$request_time",' + '"status":"$status",' + '"vhost":"$host",' + '"request_proto":"$server_protocol",' + '"path":"$uri",' + '"request_query":"$args",' + '"request_length":"$request_length",' + '"method":"$request_method",' + '"http_referrer":"$http_referer",' + '"http_user_agent":"$http_user_agent",' + '"upstream_addr":"$upstream_addr",' + '"upstream_latency":"$upstream_response_time",' + '"upstream_status":"$upstream_status",' + '"upstream_response_time":"$upstream_response_time",' + '"upstream_connect_time":"$upstream_connect_time",' + '"upstream_header_time":"$upstream_header_time",' + '"upstream_bytes_received":"$upstream_bytes_received",' + '"upstream_bytes_sent":"$upstream_bytes_sent",' + '"tls":"$ssl_protocol/$ssl_cipher"' + '}'; + + access_log /var/log/nginx/access.log json; + + server_tokens off; + charset UTF-8; + sendfile on; + tcp_nopush on; + tcp_nodelay on; + keepalive_requests 1000; + keepalive_timeout 65; + #gzip on; + map $http_upgrade $connection_upgrade { + default upgrade; + '' close; + } + resolver 127.0.0.11 ipv6=off valid=1s; + include /etc/nginx/conf.d/*.conf; +} \ No newline at end of file diff --git a/configs/nginx/templates/default b/configs/nginx/templates/default new file mode 100644 index 0000000..b53ea96 --- /dev/null +++ b/configs/nginx/templates/default @@ -0,0 +1,102 @@ +server { + server_name testa.dot-dot.ru; + + root /application/public; + + 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 "Upgrade"; + proxy_pass http://php:${PHP_SOCKET_PORT}/; + } + + location @rewriteapp { + rewrite ^(.*)$ /index.php/$1 last; + } + + location /storybook { + alias /application/nuxt/storybook-static; + } + + location /logout { + try_files $uri @rewriteapp; + } + + location /help { + alias /application/help-platform/src/.vuepress/dist; + } + + 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 /media { + try_files $uri @rewriteapp; + } + + location /img { + alias /application/public/img; + } + + 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-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 php:9001; + fastcgi_split_path_info ^(.+\.php)(/.*)$; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + } + + error_log /var/log/nginx/dot_dot_error.log; + access_log /var/log/nginx/dot_dot_access.log; +} \ No newline at end of file diff --git a/configs/nuxt/.env b/configs/nuxt/.env new file mode 100644 index 0000000..c3809e2 --- /dev/null +++ b/configs/nuxt/.env @@ -0,0 +1,12 @@ +NUXT_HOST=0.0.0.0 +NUXT_PORT=3000 +NUXT_ENV_DEVALUE_LOG_LEVEL=silent +WS_PROTOCOL=ws +BASE_URL=http://testa.dot-dot.ru +API_URL=http://testa.dot-dot.ru + +APP_HOST=dot-dot.local +APP_SCHEME=http +APP_ENVIRONMENT=development +DADATA_API_TOKEN=c9aa5fdc338a746e23ce91ceb6fdb9e635749833 +YANDEX_METRIKA_ID=50156956 diff --git a/configs/php/.env b/configs/php/.env new file mode 100644 index 0000000..8d1481e --- /dev/null +++ b/configs/php/.env @@ -0,0 +1,132 @@ +APP_ENV=dev +APP_SECRET=c35a0abba25a5396d74ec17fca238d9a + +LOCK_DSN=flock +PHP_SOCKET_PORT=8080 + +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=dot-dot.local +APP_SCHEME=http + +MAILER_DSN=null://null + +WKHTMLTOPDF_PATH="xvfb-run /usr/bin/wkhtmltopdf --enable-local-file-access" + +SP_WSDL=http://91.208.205.54:84/orawsv/XMLWEB/ +SP_LOGIN=xmlweb +SP_PASSWORD=xmlweb +SP_KEY=secret +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 + +SMSC_LOGIN=secret +SMSC_PASS=secret + +DADATA_API_TOKEN=secret +DADATA_API_SECRET=secret + +UNISENDER_API_KEY=secret + +VOICIA_API_KEY=secret +VOICIA_API_URL=https://app.voicia.ru + +UAT_1C_API_URL=http://1c.nwtlk.ru/UATtest/hs +UAT_1C_USER=secret +UAT_1C_PASSWORD=secret + +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_REGULAR_DIRECTION_URL=https://calc.dev.dot-dot.ru/v1/schedule/transport +ML_REGULAR_DIRECTION_RELEVANCE_CARRIERS_URL=https://calc.dev.dot-dot.ru/v1/schedule/carrier/scoring +ML_UNCERTAIN_DIRECTIONS_URL=https://calc.dev.dot-dot.ru/v1/classification/direction/uncertain + +YANDEX_MAPS_ACCESS_KEY=secret +YANDEX_MAPS_BASE_URL=https://api.routing.yandex.net + +GRAFANA_ADMIN_PASSWORD=admin +GRAFANA_API_URL=http://grafana:3000 +GRAFANA_PUBLIC_URL=http://grafana.dot-dot.local + +THREESELLER_USERNAME=savrickijj@rambler.ru +THREESELLER_PASSWORD=123123 + +ATISU_CLIENT_ID=f26841019e0243418395d44ed7430f2a +ATISU_APIKEY=cf6e8c5975f04047a4e39004e2ce07f3 + +###> google/apiclient ### +ANALITIC_GOOGLE_CLIENT_ID=secret +ANALITIC_GOOGLE_CLIENT_SECRET=secret +ANALITIC_GOOGLE_CLIENT_REDIRECT_URI=http://localhost/admin/analitic/google-callback +###< google/apiclient ### + +###> telegramm ### +TELEGRAM_URL=https://api.telegram.org/ +TELEGRAM_BOT_TOKEN=secret +TELEGRAM_CHAT_ID=secret +###< telegramm ### + +DEFAULT_SLUG=dotdot + +###> voicia ### +VOICIA_CALL_ID=secret +###< voicia ### + +###> openssl_encrypt parameters ### +OPENSSL_CIPHER=aes-128-gcm +OPENSSL_PASS_PHRASE=secret +OPENSSL_IV=secret +###> openssl_encrypt parameters ### + +TKKIT_API_TOKEN=secret +TKKIT_API_URL=https://capi.tk-kit.com + +###> BAIKAL### +BAIKAL_API_KEY=secret +###< BAIKAL### + +TELEGRAM_CHAT_BOT_ACCESS_TOKEN=secret + +###> NORDWHEEL### +NORDWHEEL_API_URL=https://nordw.ru +###< NORDWHEEL### + +JDE_API_URL=https://api.jde.ru + +###> SKIF### +SKIF_API_URL=sekret +SKIF_API_LOGIN=sekret +SKIF_API_PASSWORD=sekret +###< SKIF### + +###> DPD ### +DPD_PATH=https://ws.dpd.ru/services/ +DPD_CLIENT_NUMBER=secret +DPD_CLIENT_KEY=secret +###< DPD### + +###> SOVKOM### +SOVKOM_API_KEY=secret +SOVKOM_API_URL=secret +###< SOVKOM### + +MAGIC_API_URL=https://magic-trans.ru/ + +MAGIC_API_URL=https://magic-trans.ru/ diff --git a/configs/php/.env.local b/configs/php/.env.local new file mode 100644 index 0000000..c861d87 --- /dev/null +++ b/configs/php/.env.local @@ -0,0 +1,113 @@ + +NotificationBuildServicejSP_KEY=16e93b225c730920ac5741a8d8df788f + +DADATA_API_TOKEN=c9aa5fdc338a746e23ce91ceb6fdb9e635749833 +DADATA_API_SECRET=1ea37a4d310e7a6ac64211ffe5686363f04d4e68 + +ROISTAT_API_KEY=c63a71dd721df7f1b1d7b5803a84ccc7 +ROISTAT_PROJECT_ID=166751 + +UNISENDER_API_KEY=6ugo1c6yqfux9wrs8pbaom3izz9pc9huetqbdo9y + +GTD_ACCESS_TOKEN=cznMwszlx-5X_F7uQbg-uaPFhqmBP28z + +FNS_ACCESS_TOKEN=a5639b93fe4e7c9a3f1dd85537e066d36439c352 + +GOOGLE_MAPS_ACCESS_KEY=AIzaSyBCPl2LcpRvplzLUNVMVLhA3b7k46lTCTg + +NUXT_BASE_URL=testa.dot-dot.ru + +ATISU_API_TOKEN=a9698671a68441c7b3959e43995d1506 + +###> google/apiclient ### +ANALITIC_GOOGLE_CLIENT_ID=672035500859-n6cq8lb393rs5f7q46pnjrc6u9hjiomg.apps.googleusercontent.com +ANALITIC_GOOGLE_CLIENT_SECRET=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 +ANALITIC_GOOGLE_CLIENT_REDIRECT_URI=http://dot-dot.local/admin/analitic/google-callback +###< google/apiclient ### + +###> telegramm ### +TELEGRAM_BOT_TOKEN=5807192360:AAHSUZcWeY1bC7aqdmcYXOfb1CYyK0xx0Cc +TELEGRAM_CHAT_ID=-875661421 +###< telegramm ### + +###> voicia ### +VOICIA_CALL_ID=1949 +###< voicia ### + +###> ml_calculator ### +ML_CALCULATOR_URL=https://ml.dot-dot.ru/v1/classification/order/relevance +###< ml_calculator ### + +###> comagic ### +COMAGIC_URL=https://dataapi.comagic.ru/v2.0 +COMAGIC_KEY=j769gveux0brdq7wb6insegwtczvz7nsqmuntkqv +###< comagic ### + +###> carrier_scoring ### +ML_CARRIER_SCORING=https://ml.dot-dot.ru/v1/classification/carrier/scoring +###< carrier_scoring ### + +###> direction_scoring ### +ML_DIRECTION_SCORING_URL=https://ml.dot-dot.ru/v1/classification/direction/confidence +###< direction_scoring ### + +###> direction_recalculate ### +ML_DIRECTION_RECALCULATE_URL=https://calc.dev.dot-dot.ru/v1/schedule/calculate +###< direction_recalculate ### + +###< Vozovoz ### +VOZOVOZ_API_KEY=5Thue256i0n5jXpB8vQfzng0VNJKGDar7ol5x0iD +VOZOVOZ_API_URL=https://vozovoz.ru/ +###> Vozovoz ### + +###< Pek ### +PECOM_API_LOGIN=TochkaTochka +PECOM_API_PASSWORD=EB77132653DD37BCD4EF591968F504CFB04BDFC4 +PECOM_API_URL=https://kabinet.pecom.ru/ +###> Pek ### + +###< TkKit ### +TKKIT_API_TOKEN=FKIICpqz25v10RuFcNorHACFdhEtkQK8 +TKKIT_API_URL=https://capi.tk-kit.com/ +###> TkKit ### + +###> Baikal ### +BAIKAL_API_KEY=NjJiZjdiMjU0N2Y4ZTk5OTY3OTY3OGUxM2VjZjA3N2M6 +BAIKAL_API_URL=https://api.baikalsr.ru/v2 +BAIKAL_API_PARTNER_GUID=PROVERKA +###< Baikal ### + +###> DelovieLinii ### +DELLIN_API_KEY=BE38996C-F722-4691-BCF3-640B76DAB18B +DELLIN_API_URL=https://api.dellin.ru/ +DELLIN_PASSWORD=Logistika01 +DELLIN_LOGIN=km@dot-dot.ru +###< DelovieLinii ### + +###> JelDorEksp ### +JDE_API_USER=2252131242955194 +JDE_API_TOKEN=159687460352596660 +###< JelDorEksp ### + +###> Nordweel ### +NORDWHEEL_API_URL=https://nordw.ru/ +###< Nordweel ### + +###> SKIF ### +SKIF_API_URL=http://api.skif-cargo.ru/integrations/ws/orders.1cws +SKIF_API_LOGIN=DotDotAPI +SKIF_API_PASSWORD=H*GYU#7g8YG*#! +###< SKIF ### + +###> DPD ### +DPD_CLIENT_NUMBER=1001066989 +DPD_CLIENT_KEY=8D52BF0F4D272FA91AF7B8EFC64C74EA31B89C4D +###< DPD ### + +PAPA_FINANCE_LOGIN=DotDotAPI +PAPA_FINANCE_PASSWORD=DotDotAPI +PAPA_FINANCE_API_URL=DotDotAPI +###> SOVKOMTEST### +SOVKOM_API_KEY=AAk6UcV88xCCC26654rM +SOVKOM_API_URL=https://testout.sovcomins.ru +###< SOVKOMTEST### diff --git a/configs/php/.env__ b/configs/php/.env__ new file mode 100644 index 0000000..30ca3ed --- /dev/null +++ b/configs/php/.env__ @@ -0,0 +1,127 @@ +APP_ENV=dev +APP_SECRET=c35a0abba25a5396d74ec17fca238d9a + +LOCK_DSN=flock +PHP_SOCKET_PORT=8080 + +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 + +NUXT_BASE_URL=testa.dot-dot.ru +DOCUMENT_ROOT=/application +APP_HOST=dot-dot.local +APP_SCHEME=http + +MAILER_DSN=null://null + +WKHTMLTOPDF_PATH="xvfb-run /usr/bin/wkhtmltopdf --enable-local-file-access" + +SP_WSDL=http://91.208.205.54:84/orawsv/XMLWEB/ +SP_LOGIN=xmlweb +SP_PASSWORD=xmlweb +SP_KEY=secret +SP_TEST=true + +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 + +SMSC_LOGIN=secret +SMSC_PASS=secret + +DADATA_API_TOKEN=secret +DADATA_API_SECRET=secret + +UNISENDER_API_KEY=secret + +VOICIA_API_KEY=secret +VOICIA_API_URL=https://app.voicia.ru + +UAT_1C_API_URL=http://1c.nwtlk.ru/UATtest/hs +UAT_1C_USER=secret +UAT_1C_PASSWORD=secret + +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_REGULAR_DIRECTION_URL=https://calc.dev.dot-dot.ru/v1/schedule/transport +ML_REGULAR_DIRECTION_RELEVANCE_CARRIERS_URL=https://calc.dev.dot-dot.ru/v1/schedule/carrier/scoring + +YANDEX_MAPS_ACCESS_KEY=secret +YANDEX_MAPS_BASE_URL=https://api.routing.yandex.net + +GRAFANA_ADMIN_PASSWORD=admin +GRAFANA_API_URL=http://grafana:3000 +GRAFANA_PUBLIC_URL=http://grafana.dot-dot.local + +THREESELLER_USERNAME=savrickijj@rambler.ru +THREESELLER_PASSWORD=123123 + +ATISU_CLIENT_ID=f26841019e0243418395d44ed7430f2a +ATISU_APIKEY=cf6e8c5975f04047a4e39004e2ce07f3 + +###> google/apiclient ### +ANALITIC_GOOGLE_CLIENT_ID=secret +ANALITIC_GOOGLE_CLIENT_SECRET=secret +ANALITIC_GOOGLE_CLIENT_REDIRECT_URI=http://localhost/admin/analitic/google-callback +###< google/apiclient ### + +###> telegramm ### +TELEGRAM_URL=https://api.telegram.org/ +TELEGRAM_BOT_TOKEN=secret +TELEGRAM_CHAT_ID=secret +###< telegramm ### + +DEFAULT_SLUG=dotdot + +###> voicia ### +VOICIA_CALL_ID=secret +###< voicia ### + +###> openssl_encrypt parameters ### +OPENSSL_CIPHER=aes-128-gcm +OPENSSL_PASS_PHRASE=secret +OPENSSL_IV=secret +###> openssl_encrypt parameters ### + +TKKIT_API_TOKEN=secret +TKKIT_API_URL=https://capi.tk-kit.com + +###> BAIKAL### +BAIKAL_API_KEY=secret +###< BAIKAL### + +TELEGRAM_CHAT_BOT_ACCESS_TOKEN=secret + +###> NORDWHEEL### +NORDWHEEL_API_URL=https://nordw.ru +###< NORDWHEEL### + +JDE_API_URL=https://api.jde.ru + +###> SKIF### +SKIF_API_URL=sekret +SKIF_API_LOGIN=sekret +SKIF_API_PASSWORD=sekret +###< SKIF### + +###> DPD ### +DPD_PATH=https://ws.dpd.ru/services/ +DPD_CLIENT_NUMBER=secret +DPD_CLIENT_KEY=secret +###< DPD### + +###> SOVKOM### +SOVKOM_API_KEY=secret +SOVKOM_API_URL=secret +###< SOVKOM### + +MAGIC_API_URL=https://magic-trans.ru/ \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f90dcb5 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,79 @@ +version: "3.3" + +volumes: + certbot_volume: + nginx_log_volume: + mysql_data_volume: + mysql_backup_volume: + + +networks: + dd: + name: ${NETWORK} + ingress: + external: true + +services: + db: + image: mariadb:10.3.25 + restart: unless-stopped + environment: + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} + MYSQL_USER: ${MYSQL_USER} + MYSQL_DAABASE: ${MYSQL_DATABASE} + MYSQL_PASSWORD: ${MYSQL_PASSWORD} + volumes: + - mysql_data_volume:/var/lib/mysql + - mysql_backup_volume:/backups + networks: + - dd + + php: + image: registry.dot-dot.ru/dot-dot:${DOTDOT_TAG} + # command: "php-fpm && nginx -g 'daemon off;'" + restart: unless-stopped + volumes: + - ./configs/php/.env:/application/.env + - ./configs/php/.env.local:/application/.env.local + depends_on: + - db + networks: + - dd + + static: + image: registry.dot-dot.ru/dot-dot-static:${DOTDOT_TAG} + restart: unless-stopped + networks: + - dd + + nuxt: + image: registry.dot-dot.ru/front:${FRONT_TAG} + restart: unless-stopped + command: npm run start + volumes: + - ./configs/nuxt/.env:/app/.env + networks: + - dd + + nginx: + image: nginx:1.25.3-alpine3.18 + restart: unless-stopped + volumes: + - ./configs/nginx/conf.d:/etc/nginx/conf.d + - ./configs/nginx/nginx.conf:/etc/nginx/nginx.conf + - ./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 + labels: + - "traefik.enable=true" + - "traefik.http.routers.nginx.rule=Host(`testa.dot-dot.ru`)" + - "traefik.http.services.nginx.loadbalancer.server.port=80" + depends_on: + - nuxt + - php + - static + networks: + - dd + - ingress