This commit is contained in:
ddadmin 2025-09-12 16:40:55 +03:00
parent 11b8f358cd
commit 7f7852ad24
25 changed files with 390 additions and 662 deletions

13
.env
View File

@ -1,15 +1,16 @@
COMPOSE_PROJECT_NAME=prod COMPOSE_PROJECT_NAME=c2d
NETWORK=prod NETWORK=c2d
FRONT_TAG=master FRONT_TAG=134
DOTDOT_TAG=master DOTDOT_TAG=134
LMS_TAG=master LMS_TAG=134
HELP_TAG=master HELP_TAG=master
ADMIN_TAG=master
PHP_SOCKER_HOST=ws PHP_SOCKER_HOST=ws
PHP_SOCKET_PORT=8080 PHP_SOCKET_PORT=8080
MYSQL_PORT=0.0.0.0:3306 MYSQL_PORT=0.0.0.0:33062
MYSQL_ROOT_PASSWORD=ahwaireiNeebeeW9keiZ MYSQL_ROOT_PASSWORD=ahwaireiNeebeeW9keiZ
MYSQL_DATABASE=dot MYSQL_DATABASE=dot
MYSQL_USER=dot MYSQL_USER=dot

10
app.sh
View File

@ -87,6 +87,7 @@ init() {
up() { up() {
checkDockerCompose checkDockerCompose
docker compose up -d docker compose up -d
docker compose exec nginx nginx -t && docker compose exec nginx nginx -s reload
} }
down() { down() {
@ -125,6 +126,11 @@ purgeDb() {
log "created database dot" "info" log "created database dot" "info"
} }
chown() {
docker compose exec php bash -c 'mkdir -p /application/var/cache/prod/profiler'
docker compose exec php bash -c 'chown -R www-data:www-data /application/var/cache/prod/*'
}
composer() { composer() {
docker compose exec php php -d memory_limit=-1 /usr/local/bin/composer ${@:1} docker compose exec php php -d memory_limit=-1 /usr/local/bin/composer ${@:1}
} }
@ -149,7 +155,7 @@ case "$1" in
"tests") "tests")
composer tests;; composer tests;;
"console"*) "console"*)
docker compose exec php ./bin/console ${@:2};; docker compose exec --user www-data php ./bin/console ${@:2};;
"db") "db")
docker compose exec db mysql -uroot -p${MYSQL_ROOT_PASSWORD};; docker compose exec db mysql -uroot -p${MYSQL_ROOT_PASSWORD};;
"db-create") "db-create")
@ -166,6 +172,8 @@ case "$1" in
purgeDb;; purgeDb;;
"restore-db") "restore-db")
restoredb;; restoredb;;
"chown")
chown;;
"front"*) "front"*)
case $2 in case $2 in
*) *)

80
configs/admin/.env Normal file
View File

@ -0,0 +1,80 @@
APP_NAME="DOT-DOT admin"
APP_ENV=production
APP_KEY=base64:tt8hr1y+cfNtEPQfWtFi9OXEDgko6Qw6uxeNK7ka3YU=
APP_DEBUG=true
APP_TIMEZONE=UTC
APP_URL=https://c2dadmin.dot-dot.ru
FRONTEND_URL=https://c2dadmin.dot-dot.ru
ASSET_URL=https://c2dadmin.dot-dot.ru
APP_EMAIL_DOMAIN="dot-dot.ru"
APP_LOCALE=ru
APP_FALLBACK_LOCALE=ru
APP_FAKER_LOCALE=ru_RU
APP_MAINTENANCE_DRIVER=file
# APP_MAINTENANCE_STORE=database
BCRYPT_ROUNDS=12
LOG_CHANNEL=stack
LOG_STACK=single
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DEFAULT_DB_CONNECTION=dashboard
#Параметры подключения к базе панели управления
DASHBOARD_DB_HOST=db
DASHBOARD_DB_PORT=3306
DASHBOARD_DB_DATABASE=dashboard
DASHBOARD_DB_USERNAME=root
DASHBOARD_DB_PASSWORD=ahwaireiNeebeeW9keiZ
#Параметры подключения к базе 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=ahwaireiNeebeeW9keiZ
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=null
BROADCAST_CONNECTION=log
FILESYSTEM_DISK=local
QUEUE_CONNECTION=database
CACHE_STORE=database
CACHE_PREFIX=
MEMCACHED_HOST=127.0.0.1
REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=log
MAIL_HOST=127.0.0.1
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
VITE_APP_NAME="${APP_NAME}"
DOT_DOT_HOST=https://.dot-dot.ru

24
configs/admin/default Normal file
View File

@ -0,0 +1,24 @@
server {
server_name admin.dot-dot.ru;
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/dot2024.crt;
ssl_certificate_key /etc/nginx/ssl/dot2024.key;
index index.php index.html index.htm;
root /application/public;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
fastcgi_pass localhost:9000;
try_files $uri =404;
fastcgi_index index.php;
}
}

View File

@ -1,13 +0,0 @@
{
"type": "service_account",
"project_id": "t-t-logistics",
"private_key_id": "d43ca447a200d75f02886d06689212e27f0fd823",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCeqg8yH6kQp+eL\nJqjrwkgDHyw6xnKUqjidAV7C259tZD6BXzxcqzaqKc3DdCWyB8Eu0EpTfBsp6M+6\n3KACXXZ++Pd3bgzp3KOFRV16eDLr/xkvGUlMIKwb3saDjnPSdvrU0TqwCURQ+PEi\nPm6s4UTZ/bPp/h62q/oTxB3bQVwoOUcCljPynjAYUG49OXVbUW1yCMbgo1QUIXbU\n/b7mcNwjNyUnUX3mTjarjEVislqkO0j5XB06Hdnnb0z7OED0nJSV6ZRA0933Y4hL\nS+JFer1IuQGP3B8NpMdmOdCDpZPb4odcgt2Zw4gwqEV3iCE7OmXJtAQq/Nmd3luh\n6Sls4FVPAgMBAAECggEAPimZl4VA+0YVWPbWErxE83gon4R1itpgIN9TDZv3S+gM\n9ynlX9cyrRuAwtWEGUqhfOJdZHUIvXQ5wtfClvqgPOH1LqT+yTdJF6NUGvHx3XVO\nHB5XkcxxMeAnvY43wZsc7flleWfADMtjygtU2EXP8GpOLVyDEwWxDkJ1ghwK67Ta\ndpQWWbSnqo1alEWdELJ8y39xJrB/JSnFGc2sstfD5tx4fJ+1jI0ZvnCz3G1d42Rr\nnLaHfRoGSt5TddyvqejAXOhtL/Rhnki1XKhrl9/v1d25kUFPc+dK8z4yUXpWAHWs\nQfhPkRCaEYdTy9wbQ3T2tRATamuxYdGRGPVh47BSHQKBgQDeVHtk1MZVW0mohTCm\n+dto4QPGe0CVomQ1M6DGLv8fLpCTCpb2vdeftVjWXghZrWWaYBK3nZcyTP5+ii/g\nDW94TFWzB3a0M+tE1BGwc8Y9fifGqgcTeIxDbZzrDjmhOlebSvygX4uclmplPznl\ncaRpva3W6XJYGnCqMJf/XSaRTQKBgQC2sVHSA9X58Wy3ZTrbtTC1xGDx/2yGvoAw\n8w5pSj2w8f6wXvBV32uGWdf74s7XLS3g4I/y9nUGAJRJfzbBMwaAzjGHGX5UC6kp\nNJ5ZCfyRFOJ2hllIcsksj96RyDATry4fTc210XwXHHauz4tsqSfP6JomWggh6fj6\nTf4oq3zzCwKBgD1doiVlmUysArux74jXBBmBqhIZqOzkQrZwhprNE/veVWdQj/SQ\n17gsTNX2ZGWkN5wRknj91WK73667o5U7AB57K1hb4gbBIdoAktVaT0hfzsjF22gj\naMufsKUsavm2acHiQ7JcTOOunLVPa0KKSHArO5VLIBVzTs+a1AlXA7MtAoGAGRaw\nzc6JDBIDhAv60UFIty2IwrL5DGgM4qv+RqdTYYFaII5pIuHTuleMOaMkFJi3vDIa\nkpsV5wUdWBqIQm/nbLjkRFFT7+bKDEaVmFSuwp3Dm9NHX5Oj3OLFBfAf6hQcmV/t\n6BIkoGfgRJFr7Dgup3ah9LJYe4/OCVG8nYkvV5ECgYBFfQlhYv24M4RHQ/EbOIJY\nmZgZzcGz7nA0AWS8zeSoTizAtPwnoPElOs/+drJ+CKaAnfr8+BZ1spP2I8Sj6l9g\nXeDBlZvX7Q1baz6vdQr1KscjmWnHUbaDCrGWK+95umAVpyrabopynQt7T0GrBWKz\n+nixrt/C57fjiE2OHM8big==\n-----END PRIVATE KEY-----\n",
"client_email": "firebase-push-auth-dd@t-t-logistics.iam.gserviceaccount.com",
"client_id": "117030561604837789287",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-push-auth-dd%40t-t-logistics.iam.gserviceaccount.com",
"universe_domain": "googleapis.com"
}

View File

@ -2,11 +2,11 @@ NUXT_HOST=0.0.0.0
NUXT_PORT=3000 NUXT_PORT=3000
NUXT_ENV_DEVALUE_LOG_LEVEL=silent NUXT_ENV_DEVALUE_LOG_LEVEL=silent
WS_PROTOCOL=wss WS_PROTOCOL=wss
BASE_URL=https://lms.dot-dot.ru/ BASE_URL=https://c2d.dot-dot.ru/
API_URL=https://lms.dot-dot.ru/ API_URL=https://c2d.dot-dot.ru/
DOMAIN=lms.dot-dot.ru DOMAIN=c2d.dot-dot.ru
APP_HOST=lms.dot-dot.ru APP_HOST=c2d.dot-dot.ru
APP_SCHEME=https APP_SCHEME=https
APP_ENVIRONMENT=production APP_ENVIRONMENT=production
DADATA_API_TOKEN=c9aa5fdc338a746e23ce91ceb6fdb9e635749833 DADATA_API_TOKEN=c9aa5fdc338a746e23ce91ceb6fdb9e635749833

10
configs/lms/entrypoint.sh Executable file
View File

@ -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
"$@"

View File

@ -1,18 +1,23 @@
server { server {
listen 80; listen 80;
server_name wiki.dot-dot.ru; server_name c2dadmin.dot-dot.ru;
return 301 https://$server_name$request_uri; return 301 https://$server_name$request_uri;
} }
server { server {
listen 443 ssl; listen 443 ssl ;
server_name wiki.dot-dot.ru; server_name c2dadmin.dot-dot.ru;
ssl_certificate /etc/nginx/ssl/dot2024.crt; ssl_certificate /etc/nginx/ssl/dot2025.crt;
ssl_certificate_key /etc/nginx/ssl/dot2024.key; ssl_certificate_key /etc/nginx/ssl/dot2025.key;
client_max_body_size 10m;
access_log /var/log/nginx/c2dadmin.dot-dot.ru_access.log json;
error_log /var/log/nginx/c2dadmin.dot-dot.ru_error.log;
location / { location / {
proxy_pass http://bookstack:80; proxy_pass https://admin:443;
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade'; proxy_set_header Connection 'upgrade';

View File

@ -1,15 +1,15 @@
server { server {
listen 80; listen 80;
server_name lms.dot-dot.ru; server_name c2d.dot-dot.ru;
return 301 https://$server_name$request_uri; return 301 https://$server_name$request_uri;
} }
server { server {
listen 443 ssl; listen 443 ssl;
server_name lms.dot-dot.ru; server_name c2d.dot-dot.ru;
ssl_certificate /etc/nginx/ssl/dot2024.crt; ssl_certificate /etc/nginx/ssl/dot2025.crt;
ssl_certificate_key /etc/nginx/ssl/dot2024.key; ssl_certificate_key /etc/nginx/ssl/dot2025.key;
access_log /var/log/nginx/lms.wwater.ru_access.log json; access_log /var/log/nginx/lms.wwater.ru_access.log json;
error_log /var/log/nginx/lms.wwater.ru_error.log; error_log /var/log/nginx/lms.wwater.ru_error.log;
@ -98,7 +98,7 @@ server {
} }
location /robots.txt { location /robots.txt {
proxy_pass http://static; root /etc/nginx/other/lms.dot-dot.ru;
} }
location ~ ^/index\.php(/|$) { location ~ ^/index\.php(/|$) {

View File

@ -1,192 +0,0 @@
server {
listen 80;
server_name dot-dot.ru;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name 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;
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 {
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 /help {
# proxy_pass http://help-platform;
#}
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;
}
location /metrics {
access_log /var/log/nginx/node_exporter_access.log json;
error_log /var/log/nginx/node_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://node-exporter:9100/metrics;
}
location /cadvisor {
access_log /var/log/nginx/cadvisor_access.log json;
error_log /var/log/nginx/cadvisor_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://cadvisor:8080/metrics;
}
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;
}
}

View File

@ -1,25 +0,0 @@
server {
listen 80;
server_name demolms.dot-dot.ru demo.dot-dot.ru;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name demolms.dot-dot.ru demo.dot-dot.ru;
ssl_certificate /etc/nginx/ssl/dot2024.crt;
ssl_certificate_key /etc/nginx/ssl/dot2024.key;
location ~ /.* {
proxy_pass http://demolms-nginx;
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;
}
}

View File

@ -1,48 +0,0 @@
server {
listen 80;
server_name rabbitmq.dot-dot.ru;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name rabbitmq.dot-dot.ru;
access_log /var/log/nginx/rabbitmq.wwater.ru_access.log json;
error_log /var/log/nginx/rabbitmq.wwater.ru_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;
}
}

View File

@ -0,0 +1,32 @@
User-agent: *
Disallow: /

View File

@ -0,0 +1,2 @@
User-agent: *
Disallow: /

View File

@ -0,0 +1,107 @@
-----BEGIN CERTIFICATE-----
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
DIQhj8h1rzW2eyc=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFjTCCA3WgAwIBAgIRAIN9TriekS/nLK07x2kt3CAwDQYJKoZIhvcNAQELBQAw
TDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkds
b2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMjUwNTIxMDIzNjUyWhcN
MjcwNTIxMDAwMDAwWjBVMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2ln
biBudi1zYTErMCkGA1UEAxMiR2xvYmFsU2lnbiBHQ0MgUjYgQWxwaGFTU0wgQ0Eg
MjAyNTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ/oiu0Bviq52UUE
ADbFWmgu3rC7KDSMoorLN1Wd03McG3Z1aP71DlPCE33838r72Dfuj5M9LXfiQLJp
Au6MwNExmKOzothw4x0zGf5oBYyrCMGm3fBpLPafwYQ3MchBOWMTbf83rKUPLH48
KCJ0MnU8GUl8oA/J81wIvbbKPuNrFf6hvJDccjzc4NyxLz3A89zjV2g5whCg5O0u
9YX4Zxk9JHuc/LvllOJO4waAYLjbWBJkz3rV3ts1SmSYnJqmyRTIjXwQgRvhEYqt
DbRskt0W7M6cPwCze3GTBN2UHNpHkMs3YmVxku68I0aOQn5+uz//fDROP3z1Z/7I
APteRtECAwEAAaOCAV8wggFbMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggr
BgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU
xbSTj28r3B5Iv7cQMIXO0bK7SC0wHwYDVR0jBBgwFoAUrmwFo5MT4qLn4tcc1sfw
f8hnU6AwewYIKwYBBQUHAQEEbzBtMC4GCCsGAQUFBzABhiJodHRwOi8vb2NzcDIu
Z2xvYmFsc2lnbi5jb20vcm9vdHI2MDsGCCsGAQUFBzAChi9odHRwOi8vc2VjdXJl
Lmdsb2JhbHNpZ24uY29tL2NhY2VydC9yb290LXI2LmNydDA2BgNVHR8ELzAtMCug
KaAnhiVodHRwOi8vY3JsLmdsb2JhbHNpZ24uY29tL3Jvb3QtcjYuY3JsMCEGA1Ud
IAQaMBgwCAYGZ4EMAQIBMAwGCisGAQQBoDIKAQMwDQYJKoZIhvcNAQELBQADggIB
AB/uvBuZf4CiuSahwiXn4geF52roAH+6jxsEPTXTfb7bbeMDXsYgRRsOTNA70ruZ
Tnz5DfFMuBhNoFhIFb0qR1izdy6VkdKOqFPNF2dOFI1EcnY9l2ory9mrzHqVbrL4
vzUd17FLUVyjTVU7PAv4nxyhnO1GTeT83YlrdRF31NyR6bvZVTEERHmpbWSgeveJ
LRtaMzlGWiLZ8IwkH7o6GH3jp/KPtDW4Npu8w64HrRZdN2pqQhi7+YKwfHM7H+2U
dM1BGN0sjOWMVbMSB9MtCsleS2Mb7TRZEbOHxECJLLIluQypZr7Pol3+hAqrhyKI
k+6y+Da0NeDuWxW59Ku4NvClqW1UFX1SpfNGhzVfp/CH+vPM1tySomx2jE0EnYZu
GwVucXPBsp5nUWqUV9+143glVuS7GTg9hFPjNBInn17HbCoIIQIOzj5Vd9bK3A9U
GxXNpwenDHEalCsD/4eQYDHPhFE7sNe0D/OXu+FAM02VZkARx37Jp4bDdujvgL9P
vZPR3wThvDN1CTU8Bc3xea3yKFAraKcPZLkhReQUAm2VpR+HSJRPlUpYizlF9WkL
h3KcAVCBJWvnOkVwxyU5QJMcnwW95JlOtx+9100GL99jHE5rs3gXp7F4bg8H01QT
9jVOhBBmQ7nQoXuwI0tqal2QUqZz3eeu62CU7xBwtfYR
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEg
MB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2Jh
bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQx
MjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjET
MBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQssgrRI
xutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1k
ZguSgMpE3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxD
aNc9PIrFsmbVkJq3MQbFvuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJw
LnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqMPKq0pPbzlUoSB239jLKJz9CgYXfIWHSw
1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+azayOeSsJDa38O+2HBNX
k7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05OWgtH8wY2
SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/h
bguyCLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4n
WUx2OVvq+aWh2IMP0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpY
rZxCRXluDocZXFSxZba/jJvcE+kNb7gu3GduyYsRtYQUigAZcIN5kZeR1Bonvzce
MgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTAD
AQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNVHSMEGDAWgBSu
bAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN
nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGt
Ixg93eFyRJa0lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr61
55wsTLxDKZmOMNOsIeDjHfrYBzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLj
vUYAGm0CuiVdjaExUd1URhxN25mW7xocBFymFe944Hn+Xds+qkxV/ZoVqW/hpvvf
cDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr3TsTjxKM4kEaSHpz
oHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB10jZp
nOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfs
pA9MRf/TuTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+v
JJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R
8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+tJDfLRVpOoERIyNiwmcUVhAn21klJwGW4
5hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA=
-----END CERTIFICATE-----

View File

@ -0,0 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

View File

@ -1,16 +0,0 @@
NUXT_HOST=0.0.0.0
NUXT_PORT=3000
NUXT_ENV_DEVALUE_LOG_LEVEL=silent
WS_PROTOCOL=wss
BASE_URL=dot-dot.ru
API_URL=https://dot-dot.ru/
DOMAIN=dot-dot.ru
APP_HOST=dot-dot.ru
APP_SCHEME=https
APP_ENVIRONMENT=production
DADATA_API_TOKEN=c9aa5fdc338a746e23ce91ceb6fdb9e635749833
YANDEX_METRIKA_ID=50156956
PHONE_KEY=qwefghzcx
SMARTCAPTCHA_CLIENT_KEY=ysc1_GLQZ8QPaFh0eXqZ5KaRM0WJYqoP9vL0uqhujfcw75c1487df

View File

@ -1,55 +0,0 @@
#!/bin/sh
DOMAIN="${DOMAIN:-dot-dot.local}"
APP_HOST="${APP_HOST:-dot-dot.local}"
API_URL="{API_URL:-${DOMAIN}}"
APP_SCHEME="${APP_SCHEME:-http}"
API_URL="${APP_SCHEME}://${DOMAIN}/"
BASE_URL="${APP_SCHEME}://${DOMAIN}"
APP_ENVIRONMENT="${APP_ENVIRONMENT:-development}"
WS_PROTOCOL=${WS_PROTOCOL:-ws}
for x in $(grep -lr baseURL .nuxt/);do
sed -i -e "s#\"baseURL\":\"http://dot-dot.local\"#\"baseURL\":\"${BASE_URL}\"#g" $x
done
for x in $(grep -lr APP_SCHEME .nuxt/);do
sed -i -e "s#\"APP_SCHEME\":\"http\"#\"APP_SCHEME\":\"${APP_SCHEME}\"#g" $x
sed -i -e "s#APP_SCHEME:\"http\"#\"APP_SCHEME\":\"${APP_SCHEME}\"#g" $x
done
for x in $(grep -lr APP_HOST .nuxt/);do
sed -i -e "s#\"APP_HOST\":\"dot-dot.local\"#\"APP_HOST\":\"${APP_HOST}\"#g" $x
done
for x in $(grep -lr BASE_URL .nuxt/);do
sed -i -e "s#\"BASE_URL\":\"http://dot-dot.local\"#\"BASE_URL\":\"${BASE_URL}\"#g" $x
done
for x in $(grep -lr API_URL .nuxt/);do
sed -i -e "s#\"API_URL\":\"http://dot-dot.local/\"#\"API_URL\":\"${API_URL}\"#g" $x
done
for x in $(grep -lr APP_ENVIRONMENT .nuxt/);do
sed -i -e "s#\"APP_ENVIRONMENT\":\"development\"#\"APP_ENVIRONMENT\":\"${APP_ENVIRONMENT}\"#g" $x
sed -i -e "s#\"APP_ENVIRONMENT\": \"development\"#\"APP_ENVIRONMENT\":\"${APP_ENVIRONMENT}\"#g" $x
sed -i -e "s#APP_ENVIRONMENT:\"development\"#\"APP_ENVIRONMENT\":\"${APP_ENVIRONMENT}\"#g" $x
done
for x in $(grep -lr WS_PROTOCOL .nuxt/);do
sed -i -e "s#\"WS_PROTOCOL\":\"ws\"#\"WS_PROTOCOL\":\"${WS_PROTOCOL}\"#g" $x
sed -i -e "s#WS_PROTOCOL:\"ws\"#\"WS_PROTOCOL\":\"${WS_PROTOCOL}\"#g" $x
sed -i -e "s#\"WS_PROTOCOL\": \"ws\"#\"WS_PROTOCOL\": \"${WS_PROTOCOL}\"#g" $x
done
for x in $(grep -lr dot-dot.local .nuxt/);do
echo "replace dot-dot.local to ${DOMAIN} in $x"
sed -i -e "s#dot-dot.local#${DOMAIN}#g" $x;
done
for x in $(grep -lr http://${DOMAIN} .nuxt/);do
echo "replace http://${DOMAIN} to ${APP_SCHEME}://${DOMAIN} in $x"
sed -i -e "s#http://${DOMAIN}#${APP_SCHEME}://${DOMAIN}#g" $x;
done
"$@"

View File

@ -10,7 +10,7 @@ DATABASE_URL_DOT=mysql://root:ahwaireiNeebeeW9keiZ@db:3306/dot?serverVersion=mar
DATABASE_URL_DOT_STATISTIC=mysql://root:ahwaireiNeebeeW9keiZ@db:3306/dot_statistic?serverVersion=mariadb-10.3.25 DATABASE_URL_DOT_STATISTIC=mysql://root:ahwaireiNeebeeW9keiZ@db:3306/dot_statistic?serverVersion=mariadb-10.3.25
DOCUMENT_ROOT=/application DOCUMENT_ROOT=/application
APP_HOST=dot-dot.ru APP_HOST=c2d.dot-dot.ru
APP_SCHEME=https APP_SCHEME=https
MAILER_DSN=null://null MAILER_DSN=null://null
@ -132,3 +132,17 @@ SOVKOM_API_URL=secret
###< SOVKOM### ###< SOVKOM###
MAGIC_API_URL=https://magic-trans.ru/ MAGIC_API_URL=https://magic-trans.ru/
SMS_PROVIDER=prostor-sms
PROSTOR_SMS_END_POINT_URL=http://api.prostor-sms.ru
PROSTOR_SMS_LOGIN=secret
PROSTOR_SMS_PASSWORD=secret
###> OTK ###
OTK_API_END_POINT_URL="https://test-api.otk.su"
OTK_API_TOKEN="Q5vBE9jusg38Rk7wHt2bzycT4K6pePFZ"
###< OTK ###
ACCOUNTING_AUDIT_URL=https://crm.dot-dot.ru
ACCOUNTING_AUDIT_LOGIN=secret
ACCOUNTING_AUDIT_PASSWORD=secret

View File

@ -1,4 +1,5 @@
APP_ENV=prod
APP_ENV=dev
DATABASE_URL=mysql://root:ahwaireiNeebeeW9keiZ@db:3306/dot?serverVersion=mariadb-10.3.25 DATABASE_URL=mysql://root:ahwaireiNeebeeW9keiZ@db:3306/dot?serverVersion=mariadb-10.3.25
@ -139,9 +140,6 @@ DPD_CLIENT_NUMBER=1001066989
DPD_CLIENT_KEY=8D52BF0F4D272FA91AF7B8EFC64C74EA31B89C4D DPD_CLIENT_KEY=8D52BF0F4D272FA91AF7B8EFC64C74EA31B89C4D
###< DPD ### ###< DPD ###
ACCOUNTING_AUDIT_URL="https://crm.dot-dot.ru/TTLBuhreport/hs/TT/reconciliationreport"
PAPA_FINANCE_API_URL=https://prod.papafinance.ru/api/ttn PAPA_FINANCE_API_URL=https://prod.papafinance.ru/api/ttn
PAPA_FINANCE_PASSWORD='4sw$!cN#2j$tvcm2' PAPA_FINANCE_PASSWORD='4sw$!cN#2j$tvcm2'
PAPA_FINANCE_LOGIN=tochka-tochka-logistika PAPA_FINANCE_LOGIN=tochka-tochka-logistika
@ -193,3 +191,16 @@ USER_TRUST_CHECK_BACKEND=true
###< API_KONTUR_FOCUS### ###< API_KONTUR_FOCUS###
QUEUE_DSN_USER_TRUST=amqp://ddadmin:Utahth9aeshahgh3saik@rabbitmq:5672/%2f/USER_TRUST QUEUE_DSN_USER_TRUST=amqp://ddadmin:Utahth9aeshahgh3saik@rabbitmq:5672/%2f/USER_TRUST
PROSTOR_SMS_LOGIN=ap142656
PROSTOR_SMS_PASSWORD=808350
###> OTK ###
OTK_API_END_POINT_URL="https://api.otk.su"
OTK_API_TOKEN="wSMxTp3ye9mtPcNG7CbQszq6VLK38jaQ"
###< OTK ###
ACCOUNTING_AUDIT_LOGIN=ReportServis
ACCOUNTING_AUDIT_PASSWORD=fE7mubiv
ML_CALCULATOR_SPOT_URL=https://ml.dot-dot.ru/v1/price_calculator/spot

View File

@ -1,180 +0,0 @@
APP_ENV=prod
DATABASE_URL=mysql://root:ahwaireiNeebeeW9keiZ@db:3306/dot?serverVersion=mariadb-10.3.25
DOCUMENT_ROOT=/application
APP_HOST=dot-dot.ru
APP_SCHEME=https
TEST_HOST=https://dot-dot.ru
MAILER_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
SP_KEY=16e93b225c730920ac5741a8d8df788f
SP_TEST=false
SBERBANK_LOGIN=dot-dot_1-api
SBERBANK_PASSWORD=kepwir-2gocfi-Mudpet
SBERBANK_TESTMODE=false
DEFAULT_EMAIL=no_reply@dot-dot.ru
ADMIN_EMAIL=orders@dot-dot.ru
ACCOUNTANT_EMAIL=ksg@dot-dot.ru
SALES_EMAIL=sale.ftl@dot-dot.ru
LOGIST_EMAIL=nd@dot-dot.ru
LEAD_EMAIL=lead.hunter@dot-dot.ru
APP_SEND_REAL_SMS=true
SMSC_LOGIN=Dot-Dot
SMSC_PASS=OY4loBiCYTHjMoadyfru
DADATA_API_TOKEN=c9aa5fdc338a746e23ce91ceb6fdb9e635749833
DADATA_API_SECRET=1ea37a4d310e7a6ac64211ffe5686363f04d4e68
ROISTAT_API_KEY=c63a71dd721df7f1b1d7b5803a84ccc7
ROISTAT_PROJECT_ID=154928
UNISENDER_API_KEY=6ugo1c6yqfux9wrs8pbaom3izz9pc9huetqbdo9y
GTD_ACCESS_TOKEN=5fgNQ_gZ95OmyOLl7nKJhtJ4LcWVQNbl
FNS_ACCESS_TOKEN=a5639b93fe4e7c9a3f1dd85537e066d36439c352
GOOGLE_MAPS_ACCESS_KEY=AIzaSyCLqawvvNm0Oj1Nt8yaQ-CdvQ1190oPaug
GRAFANA_ADMIN_PASSWORD=uyt>bE8AZ2ctthyx
GRAFANA_API_URL=https://grafana.dev.dot-dot.ru
GRAFANA_PUBLIC_URL=https://grafana.dev.dot-dot.ru
YANDEX_MAPS_ACCESS_KEY=f706092a-d705-4665-a16a-0811bd2a2c89
THREESELLER_USERNAME=tk@dot-dot.ru
THREESELLER_PASSWORD=Logistika01
NUXT_BASE_URL=dot-dot.ru
ATISU_API_TOKEN_OLD=a9698671a68441c7b3959e43995d1506
ATISU_API_TOKEN=46b599c3ab7f4574b560f48ea005d9f3
###> google/apiclient ###
ANALITIC_GOOGLE_CLIENT_ID=672035500859-32f85hchubthu9givkdtgkqhvjg00c8e.apps.googleusercontent.com
ANALITIC_GOOGLE_CLIENT_SECRET=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
ANALITIC_GOOGLE_CLIENT_REDIRECT_URI=https://dot-dot.ru/admin/analitic/google-callback
###< google/apiclient ###
###> telegramm ###
TELEGRAM_BOT_TOKEN=5807192360:AAHSUZcWeY1bC7aqdmcYXOfb1CYyK0xx0Cc
TELEGRAM_CHAT_ID=-875661421
TELEGRAM_CHAT_BOT_ACCESS_TOKEN=88c53d63aa87b39e1c27c8db2764e5b7
###< telegramm ###
VOICIA_API_KEY=7589ed2721e50e299eb3baf2e3100a6b
###> voicia ###
VOICIA_CALL_ID=8788
###< voicia ###
###> ml_calculator ###
ML_CALCULATOR_URL=https://ml.dot-dot.ru/v2/classification/order/relevance
###< ml_calculator ###
UAT_1C_API_URL=http://1c.nwtlk.ru/UAT/hs
UAT_1C_USER=ТТ_Запросы
UAT_1C_PASSWORD=9421354
###> carrier_scoring ###
ML_CARRIER_SCORING=https://ml.dot-dot.ru/v2/classification/carrier/scoring
###< carrier_scoring ###
###> direction_scoring ###
ML_DIRECTION_SCORING_URL=https://ml.dot-dot.ru/v3/classification/direction/confidence
###< direction_scoring ###
###< 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 ###
ACCOUNTING_AUDIT_URL="https://crm.dot-dot.ru/TTLBuhreport/hs/TT/reconciliationreport"
PAPA_FINANCE_API_URL=https://prod.papafinance.ru/api/ttn
PAPA_FINANCE_PASSWORD='4sw$!cN#2j$tvcm2'
PAPA_FINANCE_LOGIN=tochka-tochka-logistika
ML_REGULAR_DIRECTION_URL=https://ml.dot-dot.ru/v2/schedule/transport
###> SP_V3 ###
SP_V3_KEY=16e93b225c730920ac5741a8d8df788f
SP_V3_URL=https://spasskievorota.ru/services/work/cargo_3.php
###< SP_V3 ###
ML_DIRECTION_RECALCULATE_URL=https://ml.dot-dot.ru/v2/schedule/calculate
ML_REGULAR_DIRECTION_CHAIN_URL=https://ml.dot-dot.ru/v1/schedule/chains
###> YandexTracker ###
YTRACKER_API_TOKEN="y0_AgAEA7qkKFmeAAjF8AAAAADXovQd6htdkt7LTDW_sNHCz7qV9zdVHaQ"
YTRACKER_ORGANISATION_ID=355207
###< YandexTracker ###
SMARTCAPTCHA_SERVER_KEY=ysc2_GLQZ8QPaFh0eXqZ5KaRMuRRZOX7qNNMy7P9Mq82V6c4e7b81
ML_REGULAR_DIRECTION_RELEVANCE_CARRIERS_URL=https://ml.dot-dot.ru/v2/schedule/carrier/scoring
ML_UNCERTAIN_DIRECTIONS_URL=https://ml.dot-dot.ru/v1/classification/direction/uncertain
###> sentry/sentry-symfony ###
SENTRY_DSN="https://eedc2e8b1310ec9b04c2b0da8490dc01@sentry.dot-dot.ru/3"
SENTRY_SERVER_NAME=prod
SENTRY_SERVER_USER_NAME=admin
###< sentry/sentry-symfony ###
ML_CALCULATOR_TRADE_ONLY_URL=https://ml.dot-dot.ru/v1/tender/price
ML_REGULAR_DIRECTION_HISTORY_ORDER_URL=https://ml.dot-dot.ru/v1/schedule/transport/orders
QUEUE_DSN_OC_CARRIER_OFFERS=amqp://ddadmin:Utahth9aeshahgh3saik@rabbitmq:4369/%2f/OC_CARRIER_OFFERS

View File

@ -1,18 +1,14 @@
version: "3.3"
volumes: volumes:
certbot_volume: certbot_volume:
nginx_log_volume: nginx_log_volume:
mysql_data_volume: mysql_data_volume:
mysql_backup_volume: mysql_backup_volume:
php_var_volume: php_var_volume:
bookstack_data_volume:
rabbitmq_volume: rabbitmq_volume:
redis_volume: redis_volume:
php_support_volume: php_support_volume:
x-defaults-php: &defaults-php x-defaults-php: &defaults-php
image: registry.dot-dot.ru/dot-dot:${DOTDOT_TAG} image: registry.dot-dot.ru/dot-dot:${DOTDOT_TAG}
restart: unless-stopped restart: unless-stopped
@ -26,7 +22,6 @@ x-defaults-php: &defaults-php
- ./configs/php/firebase-fcm-dotdot-key.json:/application/config/firebase-fcm-dotdot-key.json - ./configs/php/firebase-fcm-dotdot-key.json:/application/config/firebase-fcm-dotdot-key.json
depends_on: depends_on:
- db - db
- rabbitmq
networks: networks:
- dd - dd
@ -95,8 +90,10 @@ services:
command: npm run start command: npm run start
volumes: volumes:
- ./configs/lms/.env:/app/.env - ./configs/lms/.env:/app/.env
- ./configs/lms/entrypoint.sh:/entrypoint.sh
env_file: env_file:
- ./configs/lms/.env - ./configs/lms/.env
entrypoint: /entrypoint.sh
networks: networks:
- dd - dd
@ -106,18 +103,6 @@ services:
networks: networks:
- dd - dd
nuxt:
image: registry.dot-dot.ru/front:${FRONT_TAG}
restart: unless-stopped
command: npm run start
volumes:
- ./configs/nuxt/.env:/application/nuxt/.env
- ./configs/nuxt/entrypoint.sh:/entrypoint.sh
env_file:
- ./configs/nuxt/.env
networks:
- dd
nginx: nginx:
image: nginx:1.25.3-alpine3.18 image: nginx:1.25.3-alpine3.18
restart: unless-stopped restart: unless-stopped
@ -129,78 +114,15 @@ services:
- ./configs/nginx/other:/etc/nginx/other - ./configs/nginx/other:/etc/nginx/other
- certbot_volume:/etc/letsencrypt - certbot_volume:/etc/letsencrypt
- nginx_log_volume:/var/log/nginx - nginx_log_volume:/var/log/nginx
ports:
- 80:80
- 443:443
labels:
- "traefik.enable=true"
- "traefik.http.routers.nginx${NETWORK}.rule=Host(`${NETWORK}.dot-dot.ru`)"
- "traefik.http.services.nginx${NETWORK}.loadbalancer.server.port=80"
depends_on: depends_on:
- nuxt - lms
- php - php
- static - static
networks: networks:
ingress:
dd: dd:
ingress:
aliases: aliases:
- nginx - c2d-nginx
node-exporter:
image: prom/node-exporter:v1.7.0
container_name: node-exporter
restart: unless-stopped
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- '--path.procfs=/host/proc'
- '--path.rootfs=/rootfs'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
networks:
- dd
cadvisor:
image: gcr.io/cadvisor/cadvisor:v0.47.2
restart: unless-stopped
container_name: cadvisor
volumes:
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
- /dev/disk:/dev/disk:ro
devices:
- /dev/kmsg:/dev/kmsg
networks:
- dd
bookstack:
image: ghcr.io/linuxserver/bookstack:24.02.3
restart: unless-stopped
container_name: bookstack
environment:
- PUID=1000
- PGID=1000
- APP_URL="https://wiki.dot-dot.ru"
- DB_HOST=db
- DB_USER=root
- DB_PASS=${MYSQL_ROOT_PASSWORD}
- DB_DATABASE=bookstack
- MAIL_DRIVER=${MAIL_DRIVER}
- MAIL_HOST=${MAIL_HOST}
- MAIL_PORT=${MAIL_PORT}
- MAIL_USERNAME=${MAIL_USERNAME}
- MAIL_PASSWORD=${MAIL_PASSWORD}
- MAIL_ENCRYPTION=${MAIL_ENCRYPTION}
- MAIL_FROM=${MAIL_FROM}
- MAIL_FROM_NAME=${MAIL_FROM_NAME}
volumes:
- ./configs/bookstack:/config #- bookstack_data_volume:
networks:
- dd
rabbitmq: rabbitmq:
image: rabbitmq:3.12.1-management-alpine image: rabbitmq:3.12.1-management-alpine
@ -235,3 +157,16 @@ services:
- "--redis.password=${REDIS_PASSWORD}" - "--redis.password=${REDIS_PASSWORD}"
networks: networks:
dd: {} dd: {}
admin:
image: registry.dot-dot.ru/admin:${ADMIN_TAG}
restart: unless-stopped
command: sh -c 'php-fpm -D; nginx'
volumes:
- ./configs/admin/default:/etc/nginx/sites-enabled/default
- ./configs/admin/.env:/application/.env
- ./configs/nginx/ssl:/etc/nginx/ssl
depends_on:
- db
networks:
dd:

View File

@ -1,7 +0,0 @@
#!/bin/bash
volume='/var/lib/docker/volumes/prod_php_var_volume/_data/log'
for x in $(sudo ls -l $volume | grep root | awk -F' ' '{print $9}');do
sudo chown 82:82 $volume/$x;
done

View File

@ -1,16 +0,0 @@
#!/bin/bash
SS_CONTAINER='backup_db'
BACK_DIR='/var/tmp/db/backups'
# Remote backup
MYSQL_CRED='-uroot -pahwaireiNeebeeW9keiZ'
HOST=$(hostname -s)
DATABASES=$(docker exec -i -u root prod-db-1 mysql ${MYSQL_CRED} -s -AN -e 'show databases' | grep -vE "information_schema|analytics|performance_schema|trash|sys")
for database in ${DATABASES}; do
DUMPFILE="${database}.$(date +%a).sql.gz"
docker exec -i -u root prod-db-1 mysqldump ${MYSQL_CRED} --max_allowed_packet=1G --add-drop-table --single-transaction --extended-insert ${database} | gzip -c > $BACK_DIR/${DUMPFILE} 2>&1
rclone move $BACK_DIR/${DUMPFILE} selectel:backup_db/dot/${DUMPFILE}
#rm -vf $BACK_DIR/${DUMPFILE} 2>&1
done