@echo off setlocal enabledelayedexpansion :: --- НАСТРОЙКИ --- set REMOTE_HOST=148.230.71.134 set REMOTE_USER=root set REMOTE_DIR=/var/www/radionica3d set CHOWN_USER=www-data :: ----------------- echo [1/5] 🚀 Nachinaem NADEZHNYY deploy (TAR + SCP)... :: 1. Сборка фронтенда echo [2/5] 🔨 Sborka frontenda... python scripts/manage_locales.py split call npm run build if %ERRORLEVEL% neq 0 (echo Build failed! & exit /b %ERRORLEVEL%) :: 2. Упаковка в архив (пакуем только то, что нужно) echo [3/5] 📦 Upakovka proyekta... :: Удаляем старый архив если остался if exist deploy.tar.gz del deploy.tar.gz :: Пакуем dist, backend (без venv) и конфиги tar -czf deploy.tar.gz dist/ backend/ nginx.conf radionica-backend.service --exclude=backend/venv --exclude=backend/__pycache__ --exclude=backend/uploads if %ERRORLEVEL% neq 0 (echo Archiving failed! & exit /b %ERRORLEVEL%) :: 3. Отправка на сервер echo [4/5] 📨 Otprafka arkhiva... scp deploy.tar.gz %REMOTE_USER%@%REMOTE_HOST%:~/ if %ERRORLEVEL% neq 0 (echo Upload failed! & exit /b %ERRORLEVEL%) :: 4. Команды на сервере echo [5/5] ⚙️ Nastroyka servera... ssh %REMOTE_USER%@%REMOTE_HOST% "mkdir -p ~/tmp_deploy_dir && tar -xzf ~/deploy.tar.gz -C ~/tmp_deploy_dir && sudo mkdir -p %REMOTE_DIR%/html && sudo mkdir -p %REMOTE_DIR%/backend && sudo cp -r ~/tmp_deploy_dir/dist/* %REMOTE_DIR%/html/ && cd %REMOTE_DIR%/backend && ([ -d venv ] || python3 -m venv venv) && source venv/bin/activate && (cmp -s ~/tmp_deploy_dir/backend/requirements.txt requirements.txt || (cp ~/tmp_deploy_dir/backend/requirements.txt requirements.txt && pip install -r requirements.txt && pip install gunicorn uvicorn)) && sudo cp -r ~/tmp_deploy_dir/backend/* . && sudo cp ~/tmp_deploy_dir/nginx.conf /etc/nginx/sites-available/radionica3d && sudo ln -sf /etc/nginx/sites-available/radionica3d /etc/nginx/sites-enabled/ && (sudo nginx -t && sudo systemctl restart nginx) && sudo cp ~/tmp_deploy_dir/radionica-backend.service /etc/systemd/system/ && sudo systemctl daemon-reload && sudo systemctl restart radionica-backend && sudo chown -R %CHOWN_USER%:%CHOWN_USER% %REMOTE_DIR% && rm ~/deploy.tar.gz && rm -rf ~/tmp_deploy_dir" if %ERRORLEVEL% neq 0 (echo Remote commands failed! & exit /b %ERRORLEVEL%) :: 5. Очистка локально del deploy.tar.gz echo. echo 🎉 DEPLOY USPESHNO ZAVERSHEN! pause