🔧 Restructure scripts and add CLI tool
✨ New features: - Add CLI tool for container command execution - Reorganize all scripts into bin/ directory - Create convenient wrappers in project root - Add local changes auto-commit functionality - Enhanced backup repository management 📁 Structure changes: - Move all scripts to bin/ directory - Create wrapper scripts in root (cli, update, start, stop, logs) - Add setup-backup.sh for backup repository management - Update documentation with new CLI examples 🛠️ CLI capabilities: - Django commands (shell, migrate, collectstatic, etc.) - System commands (bash, logs, status) - Container management (restart, status) - Interactive and non-interactive modes 📚 Documentation: - Updated SCRIPTS_README.md with CLI examples - Added troubleshooting section - Comprehensive usage examples
This commit is contained in:
@@ -2,9 +2,28 @@
|
||||
|
||||
Этот набор скриптов предназначен для автоматизации процессов разработки и развертывания проекта SmartSolTech.
|
||||
|
||||
## Структура проекта
|
||||
|
||||
```
|
||||
smartsoltech.kr/
|
||||
├── cli # CLI для работы с контейнером веб-приложения
|
||||
├── update # Полное обновление проекта
|
||||
├── start # Быстрый запуск сервисов
|
||||
├── stop # Остановка сервисов
|
||||
├── logs # Просмотр логов
|
||||
└── bin/ # Папка со всеми служебными скриптами
|
||||
├── cli.sh # CLI скрипт (основной)
|
||||
├── update.sh # Скрипт обновления (основной)
|
||||
├── start.sh # Скрипт запуска
|
||||
├── stop.sh # Скрипт остановки
|
||||
├── logs.sh # Скрипт логов
|
||||
├── demo.sh # Демонстрация возможностей
|
||||
└── setup-backup.sh # Настройка backup репозитория
|
||||
```
|
||||
|
||||
## Доступные скрипты
|
||||
|
||||
### 🚀 `./update.sh` - Полное обновление проекта
|
||||
### 🚀 `./update` - Полное обновление проекта
|
||||
Выполняет полный цикл обновления:
|
||||
- Создание бэкапа в удаленном репозитории
|
||||
- Обновление кода из Git (origin или backup)
|
||||
@@ -17,32 +36,72 @@
|
||||
|
||||
**Использование:**
|
||||
```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 # Показать статус сервисов
|
||||
./update # Обновление из origin (по умолчанию)
|
||||
./update origin # Обновление из origin репозитория
|
||||
./update backup # Обновление из backup репозитория
|
||||
./update origin backup # Обновление из origin с бэкапом в backup
|
||||
./update backup origin # Обновление из backup с бэкапом в origin
|
||||
./update --help # Показать справку
|
||||
./update --logs # Показать логи без обновления
|
||||
./update --status # Показать статус сервисов
|
||||
```
|
||||
|
||||
**Примеры использования удаленных репозиториев:**
|
||||
```bash
|
||||
# Стандартное обновление из основного репозитория
|
||||
./update.sh
|
||||
./update
|
||||
|
||||
# Обновление из резервного репозитория (если основной недоступен)
|
||||
./update.sh backup
|
||||
./update backup
|
||||
|
||||
# Обновление из основного репозитория с созданием бэкапа в резервном
|
||||
./update.sh origin backup
|
||||
./update origin backup
|
||||
|
||||
# Переключение на резервный сервер с бэкапом в основной
|
||||
./update.sh backup origin
|
||||
./update backup origin
|
||||
```
|
||||
|
||||
### ▶️ `./start.sh` - Быстрый запуск
|
||||
### 💻 `./cli` - CLI для работы с контейнером веб-приложения
|
||||
Интерфейс командной строки для выполнения команд внутри контейнера Django:
|
||||
- Django команды (shell, migrate, collectstatic и др.)
|
||||
- Системные команды (bash, ps, logs)
|
||||
- Управление контейнером (restart, status)
|
||||
|
||||
**Использование:**
|
||||
```bash
|
||||
./cli shell # Django shell
|
||||
./cli bash # Bash в контейнере
|
||||
./cli migrate # Выполнить миграции
|
||||
./cli makemigrations # Создать миграции
|
||||
./cli createsuperuser # Создать суперпользователя
|
||||
./cli collectstatic # Собрать статические файлы
|
||||
./cli manage <command> # Произвольная Django команда
|
||||
./cli exec <command> # Произвольная системная команда
|
||||
./cli logs [количество_строк] # Логи приложения
|
||||
./cli status # Статус контейнеров
|
||||
./cli restart # Перезапуск веб-контейнера
|
||||
./cli --help # Показать справку
|
||||
```
|
||||
|
||||
**Примеры использования CLI:**
|
||||
```bash
|
||||
# Django разработка
|
||||
./cli shell # Интерактивная оболочка Django
|
||||
./cli manage showmigrations # Показать статус миграций
|
||||
./cli dbshell # Подключиться к базе данных
|
||||
|
||||
# Системное администрирование
|
||||
./cli bash # Зайти в контейнер
|
||||
./cli exec cat /app/requirements.txt # Посмотреть зависимости
|
||||
./cli ps # Процессы в контейнере
|
||||
./cli logs 100 # Последние 100 строк логов
|
||||
|
||||
# Управление
|
||||
./cli status # Статус всех сервисов
|
||||
./cli restart # Перезапуск веб-сервера
|
||||
```
|
||||
|
||||
### ▶️ `./start` - Быстрый запуск
|
||||
Быстро запускает все сервисы проекта:
|
||||
- Запуск Docker контейнеров
|
||||
- Проверка статуса сервисов
|
||||
@@ -50,10 +109,10 @@
|
||||
|
||||
**Использование:**
|
||||
```bash
|
||||
./start.sh
|
||||
./start
|
||||
```
|
||||
|
||||
### ⏹️ `./stop.sh` - Остановка сервисов
|
||||
### ⏹️ `./stop` - Остановка сервисов
|
||||
Останавливает сервисы с различными опциями:
|
||||
- Простая остановка контейнеров
|
||||
- Остановка с удалением контейнеров и волюмов
|
||||
@@ -61,13 +120,13 @@
|
||||
|
||||
**Использование:**
|
||||
```bash
|
||||
./stop.sh # Простая остановка
|
||||
./stop.sh --remove # Остановка + удаление контейнеров и волюмов
|
||||
./stop.sh --clean # Полная очистка (контейнеры + образы + волюмы)
|
||||
./stop.sh --help # Показать справку
|
||||
./stop # Простая остановка
|
||||
./stop --remove # Остановка + удаление контейнеров и волюмов
|
||||
./stop --clean # Полная очистка (контейнеры + образы + волюмы)
|
||||
./stop --help # Показать справку
|
||||
```
|
||||
|
||||
### 📋 `./logs.sh` - Просмотр логов
|
||||
### 📋 `./logs` - Просмотр логов
|
||||
Показывает логи сервисов в реальном времени:
|
||||
- Все логи или конкретного сервиса
|
||||
- Последние N строк логов
|
||||
@@ -75,14 +134,31 @@
|
||||
|
||||
**Использование:**
|
||||
```bash
|
||||
./logs.sh # Все логи в реальном времени
|
||||
./logs.sh web # Логи только веб-сервера
|
||||
./logs.sh db # Логи базы данных
|
||||
./logs.sh pgadmin # Логи PgAdmin
|
||||
./logs.sh --tail 50 # Последние 50 строк
|
||||
./logs.sh --help # Показать справку
|
||||
./logs # Все логи в реальном времени
|
||||
./logs web # Логи только веб-сервера
|
||||
./logs db # Логи базы данных
|
||||
./logs pgadmin # Логи PgAdmin
|
||||
./logs --tail 50 # Последние 50 строк
|
||||
./logs --help # Показать справку
|
||||
```
|
||||
|
||||
## Служебные скрипты в папке bin/
|
||||
|
||||
### 🛠️ `./bin/setup-backup.sh` - Настройка backup репозитория
|
||||
Помогает настроить дополнительный удаленный репозиторий для резервного копирования.
|
||||
|
||||
**Использование:**
|
||||
```bash
|
||||
./bin/setup-backup.sh # Интерактивная настройка
|
||||
./bin/setup-backup.sh <URL> # Добавить backup репозиторий
|
||||
./bin/setup-backup.sh <URL> <name> # Добавить с именем
|
||||
./bin/setup-backup.sh --remove <name> # Удалить backup репозиторий
|
||||
./bin/setup-backup.sh --list # Показать все репозитории
|
||||
```
|
||||
|
||||
### 🎯 `./bin/demo.sh` - Демонстрация возможностей
|
||||
Показывает примеры использования всех скриптов и текущий статус проекта.
|
||||
|
||||
## Доступные сервисы
|
||||
|
||||
После запуска будут доступны:
|
||||
@@ -110,29 +186,57 @@
|
||||
### Ежедневное обновление
|
||||
```bash
|
||||
# Полное обновление с проверкой
|
||||
./update.sh
|
||||
./update
|
||||
|
||||
# Если что-то пошло не так - смотрим логи
|
||||
./logs.sh --tail 100
|
||||
./logs --tail 100
|
||||
|
||||
# Заходим в контейнер для диагностики
|
||||
./cli bash
|
||||
```
|
||||
|
||||
### Разработка
|
||||
```bash
|
||||
# Запуск для разработки
|
||||
./start.sh
|
||||
./start
|
||||
|
||||
# Работа с Django
|
||||
./cli shell # Django shell для тестирования
|
||||
./cli makemigrations # Создание миграций
|
||||
./cli migrate # Применение миграций
|
||||
|
||||
# Просмотр логов во время разработки
|
||||
./logs.sh web
|
||||
./logs web
|
||||
|
||||
# Перезапуск после изменений
|
||||
./cli restart
|
||||
|
||||
# Остановка после работы
|
||||
./stop.sh
|
||||
./stop
|
||||
```
|
||||
|
||||
### Администрирование
|
||||
```bash
|
||||
# Создание суперпользователя
|
||||
./cli createsuperuser
|
||||
|
||||
# Сбор статических файлов
|
||||
./cli collectstatic
|
||||
|
||||
# Проверка состояния
|
||||
./cli status
|
||||
./cli logs 50
|
||||
|
||||
# Управление контейнером
|
||||
./cli exec ps aux # Процессы в контейнере
|
||||
./cli exec df -h # Дисковое пространство
|
||||
```
|
||||
|
||||
### Полная перезагрузка
|
||||
```bash
|
||||
# Полная очистка и пересборка
|
||||
./stop.sh --clean
|
||||
./update.sh
|
||||
./stop --clean
|
||||
./update
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
@@ -140,21 +244,36 @@
|
||||
### Проблемы с контейнерами
|
||||
```bash
|
||||
# Проверить статус
|
||||
./logs.sh --help
|
||||
docker-compose ps
|
||||
./cli status
|
||||
./logs --help
|
||||
|
||||
# Перезапустить проблемный сервис
|
||||
docker-compose restart web
|
||||
./cli restart
|
||||
```
|
||||
|
||||
### Проблемы с базой данных
|
||||
```bash
|
||||
# Проверить логи БД
|
||||
./logs.sh db
|
||||
./logs db
|
||||
|
||||
# Зайти в базу данных
|
||||
./cli dbshell
|
||||
|
||||
# Принудительная пересборка
|
||||
./stop.sh --remove
|
||||
./update.sh
|
||||
./stop --remove
|
||||
./update
|
||||
```
|
||||
|
||||
### Проблемы с Django
|
||||
```bash
|
||||
# Django shell для диагностики
|
||||
./cli shell
|
||||
|
||||
# Проверка миграций
|
||||
./cli manage showmigrations
|
||||
|
||||
# Проверка конфигурации
|
||||
./cli check
|
||||
```
|
||||
|
||||
### Проблемы с Git
|
||||
|
||||
Reference in New Issue
Block a user