update config

This commit is contained in:
ddadmin 2024-04-19 13:46:42 +03:00
parent 6826883110
commit f8b4263b2f
10 changed files with 232 additions and 155 deletions

10
.env
View File

@ -1,10 +1,10 @@
COMPOSE_PROJECT_NAME=testa
NETWORK=testa
COMPOSE_PROJECT_NAME=teste
NETWORK=teste
FRONT_TAG=test-nuxt
DOTDOT_TAG=test-nuxt
FRONT_TAG=DDB-1256-d
DOTDOT_TAG=DDB-1256-d
MYSQL_PORT=0.0.0.0:3306
MYSQL_PORT=0.0.0.0:33065
MYSQL_ROOT_PASSWORD=root
MYSQL_DATABASE=dot
MYSQL_USER=dot

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
backups/*

177
app.sh Executable file
View File

@ -0,0 +1,177 @@
DIRECTORY=`dirname $0`
MYSQL_ROOT_PASSWORD=$(grep MYSQL_ROOT_PASSWORD $DIRECTORY"/.env" | xargs)
MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD#*=}
help() {
echo "run $0 [COMMAND] "
echo '
"init" - run init flow
"up" - up -d all services
"down" - down all services without volumes
"composer" - run composer ${@:2}
"psalm" - run composer analyse
"php-fixer" - run composer cs
"deptrac" - run composer deptrac
"tests" - run composer tests
"console" - run docker compose exec php ./bin/console ${@:2}
"db" - run mysql shell
"db-create" - crate database
"backup-dev" -
"backup-create" -
"backup-exec" -
"restore-dev" -
"purge-db" - purge database
"restore-db" - restore database from s3 backup
"front" - exec front container
'
}
log() {
RED='\e[31m'
GREEN='\e[32m'
case $2 in
info)
printf "${GREEN}${1}\e[0m\n"
;;
error)
printf "${RED}${1}\e[0m\n"
;;
*)
printf "${1}"
;;
esac
}
## restore last backup from s3 storage
restoredb() {
log "run restore database"
sudo rclone copy --verbose selectel:backup_db/dot/dot.$(date +%a).sql.gz backups/
zcat backups/dot.$(date +%a).sql.gz | docker compose exec -T db mysql -uroot -p${MYSQL_ROOT_PASSWORD} dot
}
checkDockerCompose() {
if ! [ -f "docker-compose.yml" ]; then
log "docker-compose.yml not exist. Run init command" "error"
exit
fi
}
init() {
dumpfile=$(ls backups/ | sort | tail -1)
if ! [ -f backups/${dumpfile} ]; then
log "put dot.sql to backups directory" "error"
exit
fi
if ! [ -f ".env" ]; then
log ".env not exist. Run init command" "error"
exit
fi
up
docker compose exec php composer install
# docker compose exec front npm i
# docker compose exec front npm run build
if ! docker compose exec db mysql -uroot -proot -e "show databases" | grep "dot "; then
createDatabase "dot"
execBackup "dot" ${dumpfile}
fi
}
up() {
checkDockerCompose
docker compose up -d
}
down() {
checkDockerCompose
docker compose down
}
createDatabase() {
docker compose exec db mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "create database $1"
log "create database $1" "info"
}
createBackup() {
docker compose exec db mysqldump -uroot -p${MYSQL_ROOT_PASSWORD} $1 > backups/$2.sql
}
createBackupWithExceptions() {
docker compose exec db mysqldump -uroot -p${MYSQL_ROOT_PASSWORD} --ignore-table=dot.ml_calculator_log dot > backups/dot_develop.sql
docker compose exec db mysqldump -uroot -p${MYSQL_ROOT_PASSWORD} --no-data dot ml_calculator_log >> backups/dot_develop.sql
}
execBackup() {
zcat backups/$2 | docker compose exec -T db mysql -uroot -p${MYSQL_ROOT_PASSWORD} $1
log "exec $2.sql backup" "info"
}
execDevBackup() {
docker compose exec -T db mysql -uroot -p${MYSQL_ROOT_PASSWORD} dot < backups/dot_develop.sql
log "exec dot_develop.sql backup" "info"
}
purgeDb() {
docker compose exec db mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "drop database dot"
log "dropped database dot" "info"
docker compose exec db mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "create database dot"
log "created database dot" "info"
}
composer() {
docker compose exec php php -d memory_limit=-1 /usr/local/bin/composer ${@:1}
}
case "$1" in
"help")
help;;
"init")
init;;
"up")
up;;
"down")
down;;
"composer"*)
composer ${@:2};;
"psalm"*)
composer analyse;;
"php-fixer")
composer cs;;
"deptrac")
composer deptrac;;
"tests")
composer tests;;
"console"*)
docker compose exec php ./bin/console ${@:2};;
"db")
docker compose exec db mysql -uroot -p${MYSQL_ROOT_PASSWORD};;
"db-create")
createDatabase $2;;
"backup-dev"*)
createBackupWithExceptions $2;;
"backup-create"*)
createBackup $2 $3;;
"backup-exec"*)
execBackup $2 $3;;
"restore-dev"*)
execDevBackup;;
"purge-db"*)
purgeDb;;
"restore-db")
restoredb;;
"front"*)
case $2 in
*)
docker compose exec nuxt ${@:2};;
esac;;
*)
help
#docker compose exec php ./bin/console ${@:1};;
esac

View File

@ -1,5 +1,5 @@
server {
server_name testa.dot-dot.ru;
server_name teste.dot-dot.ru;
root /application/public;
@ -34,9 +34,9 @@ server {
try_files $uri @rewriteapp;
}
location /help {
alias /application/help-platform/src/.vuepress/dist;
}
# location /help {
# alias /application/help-platform/src/.vuepress/dist;
#}
location /api {
rewrite ^(.*)$ /index.php/$1 last;
@ -66,6 +66,10 @@ server {
try_files $uri @rewriteapp;
}
location ~* \/admin\/.*(js|jpg|png|css|woff|woff2)$ {
proxy_pass http://static;
}
location /media {
try_files $uri @rewriteapp;
}
@ -89,7 +93,8 @@ server {
return 204;
}
add_header 'Access-Control-Allow-Origin' $http_origin;
#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';

View File

@ -1,5 +1,5 @@
server {
server_name testa.dot-dot.ru;
server_name teste.dot-dot.ru;
root /application/public;

View File

@ -1,12 +1,13 @@
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
WS_PROTOCOL=wss
BASE_URL=teste.dot-dot.ru
API_URL=https://teste.dot-dot.ru/
DOMAIN=teste.dot-dot.ru
APP_HOST=dot-dot.local
APP_SCHEME=http
APP_HOST=teste.dot-dot.ru
APP_SCHEME=https
APP_ENVIRONMENT=development
DADATA_API_TOKEN=c9aa5fdc338a746e23ce91ceb6fdb9e635749833
YANDEX_METRIKA_ID=50156956

View File

@ -8,7 +8,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=dot-dot.local
APP_HOST=teste.dot-dot.ru
APP_SCHEME=http
MAILER_DSN=null://null
@ -40,7 +40,7 @@ DADATA_API_SECRET=secret
UNISENDER_API_KEY=secret
VOICIA_API_KEY=secret
VOICIA_API_KEY=7589ed2721e50e299eb3baf2e3100a6b
VOICIA_API_URL=https://app.voicia.ru
UAT_1C_API_URL=http://1c.nwtlk.ru/UATtest/hs
@ -54,8 +54,10 @@ 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_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
YANDEX_MAPS_ACCESS_KEY=secret

View File

@ -15,7 +15,7 @@ FNS_ACCESS_TOKEN=a5639b93fe4e7c9a3f1dd85537e066d36439c352
GOOGLE_MAPS_ACCESS_KEY=AIzaSyBCPl2LcpRvplzLUNVMVLhA3b7k46lTCTg
NUXT_BASE_URL=testa.dot-dot.ru
NUXT_BASE_URL=teste.dot-dot.ru
ATISU_API_TOKEN=a9698671a68441c7b3959e43995d1506
@ -31,7 +31,8 @@ TELEGRAM_CHAT_ID=-875661421
###< telegramm ###
###> voicia ###
VOICIA_CALL_ID=1949
VOICIA_API_KEY=7589ed2721e50e299eb3baf2e3100a6b
VOICIA_CALL_ID=8788
###< voicia ###
###> ml_calculator ###
@ -44,15 +45,15 @@ COMAGIC_KEY=j769gveux0brdq7wb6insegwtczvz7nsqmuntkqv
###< comagic ###
###> carrier_scoring ###
ML_CARRIER_SCORING=https://ml.dot-dot.ru/v1/classification/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/v1/classification/direction/confidence
ML_DIRECTION_SCORING_URL=https://ml.dot-dot.ru/v2/classification/direction/confidence
###< direction_scoring ###
###> direction_recalculate ###
ML_DIRECTION_RECALCULATE_URL=https://calc.dev.dot-dot.ru/v1/schedule/calculate
ML_DIRECTION_RECALCULATE_URL=https://ml.dot-dot.ru/v2/schedule/calculate
###< direction_recalculate ###
###< Vozovoz ###
@ -111,3 +112,14 @@ PAPA_FINANCE_API_URL=DotDotAPI
SOVKOM_API_KEY=AAk6UcV88xCCC26654rM
SOVKOM_API_URL=https://testout.sovcomins.ru
###< SOVKOMTEST###
ML_REGULAR_DIRECTION_URL=https://ml.dot-dot.ru/v2/schedule/transport
###> YandexTracker ###
YTRACKER_API_TOKEN="y0_AgAEA7qkKFmeAAjF8AAAAADXovQd6htdkt7LTDW_sNHCz7qV9zdVHaQ"
YTRACKER_ORGANISATION_ID=355207
###< YandexTracker ###
ML_REGULAR_DIRECTION_RELEVANCE_CARRIERS_URL=https://ml.dot-dot.ru/v1/schedule/carrier/scoring
ML_REGULAR_DIRECTION_CHAIN_URL=https://ml.dot-dot.ru/v1/schedule/chains
ML_REGULAR_DIRECTION_CHAIN_RELEVANCE_CARRIERS_URL=https://ml.dot-dot.ru/v1/schedule/chains/carrier/scoring

View File

@ -1,127 +0,0 @@
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/

View File

@ -5,6 +5,7 @@ volumes:
nginx_log_volume:
mysql_data_volume:
mysql_backup_volume:
php_var_volume:
networks:
@ -20,8 +21,10 @@ services:
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_USER: ${MYSQL_USER}
MYSQL_DAABASE: ${MYSQL_DATABASE}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
ports:
- ${MYSQL_PORT}:3306
volumes:
- mysql_data_volume:/var/lib/mysql
- mysql_backup_volume:/backups
@ -35,6 +38,7 @@ services:
volumes:
- ./configs/php/.env:/application/.env
- ./configs/php/.env.local:/application/.env.local
- php_var_volume:/application/var
depends_on:
- db
networks:
@ -52,6 +56,8 @@ services:
command: npm run start
volumes:
- ./configs/nuxt/.env:/app/.env
env_file:
- ./configs/nuxt/.env
networks:
- dd
@ -68,8 +74,8 @@ services:
- 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"
- "traefik.http.routers.nginx${NETWORK}.rule=Host(`${NETWORK}.dot-dot.ru`)"
- "traefik.http.services.nginx${NETWORK}.loadbalancer.server.port=80"
depends_on:
- nuxt
- php