chore: reorganize project structure and prepare for deployment
- Organize files into logical directories (docs/, scripts/, tests/) - Add comprehensive documentation (README, CONTRIBUTING, CHANGELOG) - Create deployment automation scripts - Add Docker production configuration - Update .gitignore and add .dockerignore - Remove temporary and test files from root - Improve settings.py with DEBUG from env variable Added: - README.md with project overview - CONTRIBUTING.md for contributors - CHANGELOG.md for version tracking - PROJECT_STATUS.md with current state - docker-compose.prod.yml for production - nginx.conf for production web server - scripts/deploy.sh for automated deployment - scripts/check-config.sh for configuration validation - scripts/setup-ssl.sh for SSL certificate setup - docs/DEPLOYMENT.md with detailed deployment guide - docs/ENV_VARIABLES.md with all environment variables Moved: - Documentation to docs/ - Scripts to scripts/ - Test files to tests/ Removed: - .history/ directory - Test response JSON files from root - settings_production.py (merged into settings.py) This commit prepares the project for: - Production deployment - Team collaboration - Docker containerization - Proper documentation
This commit is contained in:
154
scripts/README.md
Normal file
154
scripts/README.md
Normal file
@@ -0,0 +1,154 @@
|
||||
# Scripts
|
||||
|
||||
Скрипты для управления и деплоя SmartSolTech.
|
||||
|
||||
## Доступные скрипты
|
||||
|
||||
### 🚀 deploy.sh
|
||||
Автоматический деплой приложения в Docker.
|
||||
|
||||
**Использование:**
|
||||
```bash
|
||||
chmod +x deploy.sh
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
**Что делает:**
|
||||
- Проверяет наличие .env файла
|
||||
- Останавливает существующие контейнеры
|
||||
- Собирает Docker образы
|
||||
- Запускает PostgreSQL
|
||||
- Применяет миграции БД
|
||||
- Собирает статику
|
||||
- Запускает все сервисы
|
||||
|
||||
---
|
||||
|
||||
### 🔍 check-config.sh
|
||||
Проверка конфигурации проекта перед деплоем.
|
||||
|
||||
**Использование:**
|
||||
```bash
|
||||
chmod +x check-config.sh
|
||||
./check-config.sh
|
||||
```
|
||||
|
||||
**Проверяет:**
|
||||
- Наличие .env файла и обязательных переменных
|
||||
- Установку Docker и Docker Compose
|
||||
- Наличие необходимых файлов
|
||||
- Права доступа к скриптам
|
||||
|
||||
---
|
||||
|
||||
### 🔒 setup-ssl.sh
|
||||
Настройка SSL сертификатов Let's Encrypt для production.
|
||||
|
||||
**Использование:**
|
||||
```bash
|
||||
chmod +x setup-ssl.sh
|
||||
./setup-ssl.sh your-domain.com admin@your-domain.com
|
||||
```
|
||||
|
||||
**Параметры:**
|
||||
- `domain` - Ваш домен (например, smartsoltech.kr)
|
||||
- `email` - Email для уведомлений Let's Encrypt
|
||||
|
||||
**Что делает:**
|
||||
- Создает директории для сертификатов
|
||||
- Запрашивает SSL сертификат через Certbot
|
||||
- Генерирует конфигурацию Nginx с HTTPS
|
||||
- Настраивает автоматическое обновление сертификатов
|
||||
|
||||
---
|
||||
|
||||
### 📱 update_telegram_token.py
|
||||
Обновление токена Telegram бота в базе данных.
|
||||
|
||||
**Использование:**
|
||||
```bash
|
||||
# Внутри Docker контейнера
|
||||
docker-compose exec web python scripts/update_telegram_token.py
|
||||
|
||||
# Или напрямую с Python
|
||||
python scripts/update_telegram_token.py
|
||||
```
|
||||
|
||||
**Что делает:**
|
||||
- Проверяет валидность нового токена
|
||||
- Обновляет токен в базе данных
|
||||
- Сохраняет информацию о боте
|
||||
|
||||
**Получение токена:**
|
||||
1. Откройте [@BotFather](https://t.me/BotFather) в Telegram
|
||||
2. Отправьте `/mybots`
|
||||
3. Выберите своего бота
|
||||
4. Нажмите "API Token"
|
||||
|
||||
---
|
||||
|
||||
### 🔄 update_bot_token.sh
|
||||
Shell скрипт для обновления токена бота (обертка для Python скрипта).
|
||||
|
||||
**Использование:**
|
||||
```bash
|
||||
chmod +x update_bot_token.sh
|
||||
./update_bot_token.sh "YOUR_BOT_TOKEN"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Общие рекомендации
|
||||
|
||||
### Права доступа
|
||||
Все скрипты должны быть исполняемыми:
|
||||
```bash
|
||||
chmod +x scripts/*.sh
|
||||
```
|
||||
|
||||
### Production деплой
|
||||
Для production используйте:
|
||||
```bash
|
||||
# 1. Проверьте конфигурацию
|
||||
./scripts/check-config.sh
|
||||
|
||||
# 2. Настройте SSL (опционально)
|
||||
./scripts/setup-ssl.sh your-domain.com your-email@example.com
|
||||
|
||||
# 3. Запустите деплой с production конфигурацией
|
||||
docker-compose -f docker-compose.prod.yml up -d
|
||||
```
|
||||
|
||||
### Development
|
||||
Для разработки:
|
||||
```bash
|
||||
# Используйте обычный docker-compose.yml
|
||||
./scripts/deploy.sh
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Скрипт не запускается
|
||||
```bash
|
||||
# Проверьте права доступа
|
||||
ls -la scripts/
|
||||
|
||||
# Добавьте права на выполнение
|
||||
chmod +x scripts/*.sh
|
||||
```
|
||||
|
||||
### Ошибка "command not found"
|
||||
```bash
|
||||
# Запускайте скрипты с ./
|
||||
./scripts/deploy.sh
|
||||
|
||||
# Или из корня проекта
|
||||
bash scripts/deploy.sh
|
||||
```
|
||||
|
||||
### Docker команды не работают
|
||||
Убедитесь, что Docker и Docker Compose установлены:
|
||||
```bash
|
||||
docker --version
|
||||
docker-compose --version
|
||||
```
|
||||
Reference in New Issue
Block a user