deploy.cmd 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :: --- НАСТРОЙКИ ---
  4. set REMOTE_HOST=148.230.71.134
  5. set REMOTE_USER=root
  6. set REMOTE_DIR=/var/www/radionica3d
  7. set CHOWN_USER=www-data
  8. :: -----------------
  9. echo [1/5] 🚀 Nachinaem NADEZHNYY deploy (TAR + SCP)...
  10. :: 1. Сборка фронтенда
  11. echo [2/5] 🔨 Sborka frontenda...
  12. python scripts/manage_locales.py split
  13. call npm run build
  14. if %ERRORLEVEL% neq 0 (echo Build failed! & exit /b %ERRORLEVEL%)
  15. :: 2. Упаковка в архив (пакуем только то, что нужно)
  16. echo [3/5] 📦 Upakovka proyekta...
  17. :: Удаляем старый архив если остался
  18. if exist deploy.tar.gz del deploy.tar.gz
  19. :: Пакуем dist, backend (без venv) и конфиги
  20. tar -czf deploy.tar.gz dist/ backend/ nginx.conf radionica-backend.service --exclude=backend/venv --exclude=backend/__pycache__ --exclude=backend/uploads
  21. if %ERRORLEVEL% neq 0 (echo Archiving failed! & exit /b %ERRORLEVEL%)
  22. :: 3. Отправка на сервер
  23. echo [4/5] 📨 Otprafka arkhiva...
  24. scp deploy.tar.gz %REMOTE_USER%@%REMOTE_HOST%:~/
  25. if %ERRORLEVEL% neq 0 (echo Upload failed! & exit /b %ERRORLEVEL%)
  26. :: 4. Команды на сервере
  27. echo [5/5] ⚙️ Nastroyka servera...
  28. 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"
  29. if %ERRORLEVEL% neq 0 (echo Remote commands failed! & exit /b %ERRORLEVEL%)
  30. :: 5. Очистка локально
  31. del deploy.tar.gz
  32. echo.
  33. echo 🎉 DEPLOY USPESHNO ZAVERSHEN!
  34. pause