- QUICK_START.md - Шпаргалка по основным командам
- INITIAL_DEPLOY_GUIDE.md - Подробная инструкция по первоначальному деплою
- DEPLOYMENT_GUIDE.md - Общее руководство по деплою
- DEPLOYMENT_CHEATSHEET.md - Читы по деплою
- UPLOADS_SYNC_GUIDE.md - 🆕 Синхронизация uploads на сервер
deployment-scripts/
├── README.md # Этот файл
├── config.sh # Конфигурация серверов
├── initial-deploy.sh # 🆕 Первоначальный деплой (включая БД)
├── sync-uploads.sh # 🆕 Синхронизация wp-content/uploads
├── bump-version.sh # 🆕 Увеличение версии темы
├── deploy-dev.sh # Деплой на DEV
├── deploy-prod.sh # Деплой на PROD
├── rollback.sh # Откат к предыдущей версии
├── pre-deployment-checklist.sh # Проверки перед деплоем
├── smoke-tests.sh # Smoke tests после деплоя
├── hotfix.sh # Быстрый хотфикс
├── test-archive-filter.sh # Тест фильтрации мусорных файлов
└── utils/
├── backup.sh # Бэкап БД и файлов
├── version-bump.sh # 🆕 Утилита управления версиями
├── maintenance.sh # Режим обслуживания
└── notifications.sh # Уведомления (Telegram/Email)
# Скопировать config.example.sh в config.sh и заполнить данными
cp config.example.sh config.sh
chmod 600 config.sh # Защитить credentials
# Сделать скрипты исполняемыми
chmod +x *.sh utils/*.shИспользуется ТОЛЬКО для первого развертывания на новом сервере!
# Деплой на PROD (первый раз)
./initial-deploy.sh prod
# Деплой на DEV (первый раз)
./initial-deploy.sh dev
# 🆕 Затем синхронизируйте uploads отдельно
./sync-uploads.sh dev # или prodЧто происходит:
- ✅ Проверка локального окружения (WordPress файлы, Docker)
- ✅ Проверка SSH соединения
- ✅ Проверка состояния сервера (предупреждение если уже есть установка)
- ✅ Подготовка директорий на сервере
- ✅ Клонирование Git репозитория на сервере (ветка main для prod, dev для dev)
- 🆕 Загрузка базы данных с локального Docker:
- Экспорт БД из MySQL контейнера
- Загрузка дампа на сервер
- Импорт в удаленную БД
- Автоматический search-replace URL (localhost → production/dev URL)
- ✅ Загрузка WordPress core файлов (исключая wp-content, с фильтрацией мусора)
- ℹ️ Информация о wp-content/uploads (загружается отдельно через sync-uploads.sh)
- ✅ Установка прав доступа
- ✅ Создание deployment marker
- ✅ Настройка HTTP аутентификации (для DEV: test/test)
- ✅ Проверка установки
- 🆕 Проверка подключения к базе данных
Важно:
- Локальный Docker с MySQL должен быть запущен
- Локальная БД должна быть актуальной и соответствовать текущей ветке Git
- На сервере будет создан backup существующей БД (если она есть)
- URLs автоматически заменятся с локальных на production/dev
- 🆕 wp-content/uploads НЕ загружаются автоматически - используйте
sync-uploads.sh
После первоначального деплоя синхронизируйте uploads отдельно:
# Сначала dry-run для проверки
./sync-uploads.sh dev --dry-run
# Потом реальная синхронизация
./sync-uploads.sh devПреимущества отдельной синхронизации:
- ✅ Использует rsync (надёжнее tar+scp)
- ✅ Поддерживает resume при обрыве
- ✅ Только новые/изменённые файлы
- ✅ Фильтрует системный мусор
- ✅ Не блокирует деплой при больших размерах
См. UPLOADS_SYNC_GUIDE.md для подробностей.
# Обычный деплой
./deploy-dev.sh
# Деплой БЕЗ миграций (для плагинов с ручной настройкой)
./deploy-dev.sh --skip-migrationsФлаги:
--skip-migrations— пропустить миграции БД (полезно для Polylang, WooCommerce и других плагинов, требующих ручной активации/настройки)
Процесс деплоя с ручной настройкой (например, Polylang):
# 1. Деплой без миграций
./deploy-dev.sh --skip-migrations
# 2. Ручные действия в wp-admin:
# - Активируйте плагин
# - Создайте языки, меню и т.д.
# 3. Повторный деплой С миграциями
./deploy-dev.shЧто происходит: 0. Автоматическое увеличение patch версии темы
- Проверка git статуса
- Git pull на DEV сервере
- Проверка миграций (если не --skip-migrations)
- Очистка кеша
- Smoke tests
./deploy-prod.shЧто происходит: 0. Автоматическое увеличение patch версии темы
- Pre-deployment checklist (проверки перед деплоем)
- Подтверждение от пользователя (Y/N)
- Включение режима обслуживания
- Бэкап БД и файлов
- Git pull на PROD сервере
- Миграции БД (если есть)
- Очистка кеша
- Smoke tests
- Выключение режима обслуживания
- Уведомление об успехе/ошибке
# Увеличить patch версию (1.0.5 -> 1.0.6)
./bump-version.shСкрипт автоматически увеличивает последнюю цифру версии в style.css.
Примечание:
- При деплое версия увеличивается автоматически
- Для изменения major/minor версии редактируйте
style.cssвручную - После изменения версии запустите
npm run buildв теме для сборки assets
./rollback.shИнтерактивный выбор версии для отката:
Available backups:
1) 2025-10-28_14-30-00 (2 hours ago)
2) 2025-10-27_10-15-00 (1 day ago)
3) 2025-10-26_16-45-00 (2 days ago)
Select backup to restore [1-3]:
./hotfix.sh "Fix critical bug in cart.php"Автоматически:
- Создает ветку
hotfix/fix-critical-bug-in-cart-php - После коммита спрашивает, деплоить ли сразу
- Merge в main + deploy
config.shНЕ добавлен в git (в .gitignore)- SSH ключи используются вместо паролей
- Бэкапы хранятся локально и на сервере
Скрипты могут отправлять уведомления в:
- Telegram (через bot API)
- Slack (опционально)
Настройка в config.sh.
- Bash 4.0+
- Git
- SSH доступ к серверу
- WP-CLI на сервере (для миграций и кеша)
- curl (для smoke tests)
- jq (опционально, для парсинга JSON)
# Dry run (без реальных изменений)
./deploy-prod.sh --dry-run