mirror of
https://github.com/wasrusgen/zov-tech.git
synced 2026-06-03 14:04:48 +00:00
docker-compose.staging.yml — backend-staging на порту 8001. .env.staging.example — шаблон с отдельным SHEET_ID. Caddyfile.staging.snippet — staging.api.wasrusgen1.pro. scripts/deploy-staging.sh — один скрипт для деплоя staging. app.js: BACKEND_URL читается из ?backend= параметра URL. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
49 lines
1.6 KiB
Bash
49 lines
1.6 KiB
Bash
#!/bin/bash
|
|
# Деплой staging-бэкенда на VPS.
|
|
# Использует docker-compose.staging.yml + .env.staging
|
|
#
|
|
# Запуск: bash scripts/deploy-staging.sh
|
|
# Требует: SSH-ключ ~/.ssh/zov_vps_ed25519, .env.staging на VPS
|
|
|
|
set -e
|
|
|
|
VPS="root@94.241.170.144"
|
|
SSH="ssh -i $HOME/.ssh/zov_vps_ed25519"
|
|
REMOTE_DIR="/opt/zov-tech"
|
|
|
|
echo "🚀 Деплой STAGING → $VPS"
|
|
|
|
# 1. Синхронизируем код
|
|
echo " [1/3] git pull на VPS..."
|
|
$SSH $VPS "cd $REMOTE_DIR && git pull origin master"
|
|
|
|
# 2. Проверяем .env.staging
|
|
echo " [2/3] Проверка .env.staging..."
|
|
$SSH $VPS "
|
|
if [ ! -f $REMOTE_DIR/deploy/.env.staging ]; then
|
|
echo 'ERROR: .env.staging не найден!'
|
|
echo 'Скопируйте deploy/.env.staging.example → deploy/.env.staging и заполните.'
|
|
exit 1
|
|
fi
|
|
if grep -q 'ЗАМЕНИТЕ' $REMOTE_DIR/deploy/.env.staging; then
|
|
echo 'ERROR: .env.staging содержит незаполненные поля (ЗАМЕНИТЕ)!'
|
|
exit 1
|
|
fi
|
|
echo 'OK'
|
|
"
|
|
|
|
# 3. Пересобираем и запускаем
|
|
echo " [3/3] docker compose up --build..."
|
|
$SSH $VPS "
|
|
cd $REMOTE_DIR/deploy
|
|
docker compose -f docker-compose.staging.yml --env-file .env.staging up -d --build
|
|
"
|
|
|
|
echo ""
|
|
echo "✅ Staging задеплоен!"
|
|
echo " Backend: https://staging.api.wasrusgen1.pro/healthz"
|
|
echo " MiniApp: https://wasrusgen.github.io/zov-tech/?backend=https://staging.api.wasrusgen1.pro"
|
|
echo ""
|
|
echo "🧪 Запуск smoke-тестов против staging:"
|
|
echo " SMOKE_URL='https://wasrusgen.github.io/zov-tech/?backend=https://staging.api.wasrusgen1.pro' node tests/ui_smoke.js"
|