- Add support for origin/backup remote selection - Improved Git conflict handling - Enhanced backup functionality - Updated documentation with usage examples - Better error handling and validation
176 lines
6.2 KiB
Markdown
176 lines
6.2 KiB
Markdown
# SmartSolTech - Скрипты управления проектом
|
||
|
||
Этот набор скриптов предназначен для автоматизации процессов разработки и развертывания проекта SmartSolTech.
|
||
|
||
## Доступные скрипты
|
||
|
||
### 🚀 `./update.sh` - Полное обновление проекта
|
||
Выполняет полный цикл обновления:
|
||
- Создание бэкапа в удаленном репозитории
|
||
- Обновление кода из Git (origin или backup)
|
||
- Остановка текущих контейнеров
|
||
- Пересборка Docker образов
|
||
- Запуск новых контейнеров
|
||
- Выполнение миграций Django
|
||
- Сбор статических файлов
|
||
- Проверка здоровья сервисов
|
||
|
||
**Использование:**
|
||
```bash
|
||
./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 # Показать статус сервисов
|
||
```
|
||
|
||
**Примеры использования удаленных репозиториев:**
|
||
```bash
|
||
# Стандартное обновление из основного репозитория
|
||
./update.sh
|
||
|
||
# Обновление из резервного репозитория (если основной недоступен)
|
||
./update.sh backup
|
||
|
||
# Обновление из основного репозитория с созданием бэкапа в резервном
|
||
./update.sh origin backup
|
||
|
||
# Переключение на резервный сервер с бэкапом в основной
|
||
./update.sh backup origin
|
||
```
|
||
|
||
### ▶️ `./start.sh` - Быстрый запуск
|
||
Быстро запускает все сервисы проекта:
|
||
- Запуск Docker контейнеров
|
||
- Проверка статуса сервисов
|
||
- Отображение доступных ресурсов
|
||
|
||
**Использование:**
|
||
```bash
|
||
./start.sh
|
||
```
|
||
|
||
### ⏹️ `./stop.sh` - Остановка сервисов
|
||
Останавливает сервисы с различными опциями:
|
||
- Простая остановка контейнеров
|
||
- Остановка с удалением контейнеров и волюмов
|
||
- Полная очистка (включая образы)
|
||
|
||
**Использование:**
|
||
```bash
|
||
./stop.sh # Простая остановка
|
||
./stop.sh --remove # Остановка + удаление контейнеров и волюмов
|
||
./stop.sh --clean # Полная очистка (контейнеры + образы + волюмы)
|
||
./stop.sh --help # Показать справку
|
||
```
|
||
|
||
### 📋 `./logs.sh` - Просмотр логов
|
||
Показывает логи сервисов в реальном времени:
|
||
- Все логи или конкретного сервиса
|
||
- Последние N строк логов
|
||
- Интерактивный режим
|
||
|
||
**Использование:**
|
||
```bash
|
||
./logs.sh # Все логи в реальном времени
|
||
./logs.sh web # Логи только веб-сервера
|
||
./logs.sh db # Логи базы данных
|
||
./logs.sh pgadmin # Логи PgAdmin
|
||
./logs.sh --tail 50 # Последние 50 строк
|
||
./logs.sh --help # Показать справку
|
||
```
|
||
|
||
## Доступные сервисы
|
||
|
||
После запуска будут доступны:
|
||
- **Веб-сайт**: http://localhost:8000
|
||
- **Админка Django**: http://localhost:8000/admin
|
||
- **PgAdmin**: http://localhost:8080
|
||
|
||
## Требования
|
||
|
||
Убедитесь что установлены:
|
||
- Git
|
||
- Docker
|
||
- Docker Compose
|
||
- curl (для проверки здоровья)
|
||
|
||
## Безопасность
|
||
|
||
- Скрипт автоматически создает бэкапы перед обновлением
|
||
- Локальные изменения сохраняются в Git stash
|
||
- Staticfiles автоматически очищаются для избежания конфликтов
|
||
- Проверка статуса сервисов после запуска
|
||
|
||
## Примеры использования
|
||
|
||
### Ежедневное обновление
|
||
```bash
|
||
# Полное обновление с проверкой
|
||
./update.sh
|
||
|
||
# Если что-то пошло не так - смотрим логи
|
||
./logs.sh --tail 100
|
||
```
|
||
|
||
### Разработка
|
||
```bash
|
||
# Запуск для разработки
|
||
./start.sh
|
||
|
||
# Просмотр логов во время разработки
|
||
./logs.sh web
|
||
|
||
# Остановка после работы
|
||
./stop.sh
|
||
```
|
||
|
||
### Полная перезагрузка
|
||
```bash
|
||
# Полная очистка и пересборка
|
||
./stop.sh --clean
|
||
./update.sh
|
||
```
|
||
|
||
## Troubleshooting
|
||
|
||
### Проблемы с контейнерами
|
||
```bash
|
||
# Проверить статус
|
||
./logs.sh --help
|
||
docker-compose ps
|
||
|
||
# Перезапустить проблемный сервис
|
||
docker-compose restart web
|
||
```
|
||
|
||
### Проблемы с базой данных
|
||
```bash
|
||
# Проверить логи БД
|
||
./logs.sh db
|
||
|
||
# Принудительная пересборка
|
||
./stop.sh --remove
|
||
./update.sh
|
||
```
|
||
|
||
### Проблемы с Git
|
||
```bash
|
||
# Проверить статус
|
||
git status
|
||
|
||
# Восстановить из stash если нужно
|
||
git stash list
|
||
git stash apply
|
||
```
|
||
|
||
## Настройка автоматического обновления
|
||
|
||
Добавьте в crontab для автоматического обновления:
|
||
```bash
|
||
# Обновление каждый день в 3:00 утра
|
||
0 3 * * * cd /path/to/project && ./update.sh >> /var/log/smartsoltech-update.log 2>&1
|
||
``` |