Files
smartsoltech_site/SCRIPTS_README.md
Andrey K. Choi bd028d09e6 🔧 Enhanced update script with remote repository selection
- Add support for origin/backup remote selection
- Improved Git conflict handling
- Enhanced backup functionality
- Updated documentation with usage examples
- Better error handling and validation
2025-11-25 06:43:01 +09:00

6.2 KiB
Raw Blame History

SmartSolTech - Скрипты управления проектом

Этот набор скриптов предназначен для автоматизации процессов разработки и развертывания проекта SmartSolTech.

Доступные скрипты

🚀 ./update.sh - Полное обновление проекта

Выполняет полный цикл обновления:

  • Создание бэкапа в удаленном репозитории
  • Обновление кода из Git (origin или backup)
  • Остановка текущих контейнеров
  • Пересборка Docker образов
  • Запуск новых контейнеров
  • Выполнение миграций Django
  • Сбор статических файлов
  • Проверка здоровья сервисов

Использование:

./update.sh                    # Обновление из origin (по умолчанию)
./update.sh origin              # Обновление из origin репозитория
./update.sh backup              # Обновление из backup репозитория
./update.sh origin backup       # Обновление из origin с бэкапом в backup
./update.sh backup origin       # Обновление из backup с бэкапом в origin
./update.sh --help              # Показать справку
./update.sh --logs              # Показать логи без обновления
./update.sh --status            # Показать статус сервисов

Примеры использования удаленных репозиториев:

# Стандартное обновление из основного репозитория
./update.sh

# Обновление из резервного репозитория (если основной недоступен)
./update.sh backup

# Обновление из основного репозитория с созданием бэкапа в резервном
./update.sh origin backup

# Переключение на резервный сервер с бэкапом в основной
./update.sh backup origin

▶️ ./start.sh - Быстрый запуск

Быстро запускает все сервисы проекта:

  • Запуск Docker контейнеров
  • Проверка статуса сервисов
  • Отображение доступных ресурсов

Использование:

./start.sh

⏹️ ./stop.sh - Остановка сервисов

Останавливает сервисы с различными опциями:

  • Простая остановка контейнеров
  • Остановка с удалением контейнеров и волюмов
  • Полная очистка (включая образы)

Использование:

./stop.sh              # Простая остановка
./stop.sh --remove      # Остановка + удаление контейнеров и волюмов
./stop.sh --clean       # Полная очистка (контейнеры + образы + волюмы)
./stop.sh --help        # Показать справку

📋 ./logs.sh - Просмотр логов

Показывает логи сервисов в реальном времени:

  • Все логи или конкретного сервиса
  • Последние N строк логов
  • Интерактивный режим

Использование:

./logs.sh              # Все логи в реальном времени
./logs.sh web           # Логи только веб-сервера
./logs.sh db            # Логи базы данных
./logs.sh pgadmin       # Логи PgAdmin
./logs.sh --tail 50     # Последние 50 строк
./logs.sh --help        # Показать справку

Доступные сервисы

После запуска будут доступны:

Требования

Убедитесь что установлены:

  • Git
  • Docker
  • Docker Compose
  • curl (для проверки здоровья)

Безопасность

  • Скрипт автоматически создает бэкапы перед обновлением
  • Локальные изменения сохраняются в Git stash
  • Staticfiles автоматически очищаются для избежания конфликтов
  • Проверка статуса сервисов после запуска

Примеры использования

Ежедневное обновление

# Полное обновление с проверкой
./update.sh

# Если что-то пошло не так - смотрим логи
./logs.sh --tail 100

Разработка

# Запуск для разработки
./start.sh

# Просмотр логов во время разработки
./logs.sh web

# Остановка после работы
./stop.sh

Полная перезагрузка

# Полная очистка и пересборка
./stop.sh --clean
./update.sh

Troubleshooting

Проблемы с контейнерами

# Проверить статус
./logs.sh --help
docker-compose ps

# Перезапустить проблемный сервис
docker-compose restart web

Проблемы с базой данных

# Проверить логи БД
./logs.sh db

# Принудительная пересборка
./stop.sh --remove
./update.sh

Проблемы с Git

# Проверить статус
git status

# Восстановить из stash если нужно
git stash list
git stash apply

Настройка автоматического обновления

Добавьте в crontab для автоматического обновления:

# Обновление каждый день в 3:00 утра
0 3 * * * cd /path/to/project && ./update.sh >> /var/log/smartsoltech-update.log 2>&1