- 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
Scripts
Скрипты для управления и деплоя SmartSolTech.
Доступные скрипты
🚀 deploy.sh
Автоматический деплой приложения в Docker.
Использование:
chmod +x deploy.sh
./deploy.sh
Что делает:
- Проверяет наличие .env файла
- Останавливает существующие контейнеры
- Собирает Docker образы
- Запускает PostgreSQL
- Применяет миграции БД
- Собирает статику
- Запускает все сервисы
🔍 check-config.sh
Проверка конфигурации проекта перед деплоем.
Использование:
chmod +x check-config.sh
./check-config.sh
Проверяет:
- Наличие .env файла и обязательных переменных
- Установку Docker и Docker Compose
- Наличие необходимых файлов
- Права доступа к скриптам
🔒 setup-ssl.sh
Настройка SSL сертификатов Let's Encrypt для production.
Использование:
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 бота в базе данных.
Использование:
# Внутри Docker контейнера
docker-compose exec web python scripts/update_telegram_token.py
# Или напрямую с Python
python scripts/update_telegram_token.py
Что делает:
- Проверяет валидность нового токена
- Обновляет токен в базе данных
- Сохраняет информацию о боте
Получение токена:
- Откройте @BotFather в Telegram
- Отправьте
/mybots - Выберите своего бота
- Нажмите "API Token"
🔄 update_bot_token.sh
Shell скрипт для обновления токена бота (обертка для Python скрипта).
Использование:
chmod +x update_bot_token.sh
./update_bot_token.sh "YOUR_BOT_TOKEN"
Общие рекомендации
Права доступа
Все скрипты должны быть исполняемыми:
chmod +x scripts/*.sh
Production деплой
Для production используйте:
# 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
Для разработки:
# Используйте обычный docker-compose.yml
./scripts/deploy.sh
Troubleshooting
Скрипт не запускается
# Проверьте права доступа
ls -la scripts/
# Добавьте права на выполнение
chmod +x scripts/*.sh
Ошибка "command not found"
# Запускайте скрипты с ./
./scripts/deploy.sh
# Или из корня проекта
bash scripts/deploy.sh
Docker команды не работают
Убедитесь, что Docker и Docker Compose установлены:
docker --version
docker-compose --version