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:
2025-11-24 07:12:04 +09:00
parent 7bf003e70d
commit d9adac609b
26 changed files with 1869 additions and 11 deletions

279
README.md Normal file
View File

@@ -0,0 +1,279 @@
# SmartSolTech - Business Management System
Система управления бизнесом с интеграцией Telegram бота для автоматизации обработки заявок и заказов.
## 🚀 Возможности
- 📋 Управление клиентами и заявками на услуги
- 🛒 Система заказов и проектов
- 📱 Интеграция с Telegram ботом
- 🔔 Уведомления по Email и Telegram
- 🎨 Современная админ-панель (Django Jazzmin)
- 📊 База данных PostgreSQL
- 🐳 Docker контейнеризация
- 📈 Мониторинг Zabbix
## 📁 Структура проекта
```
smartsoltech.kr-master/
├── smartsoltech/ # Основное Django приложение
│ ├── web/ # Веб-приложение (клиенты, заказы, услуги)
│ ├── comunication/ # Telegram бот и коммуникации
│ ├── static/ # Статические файлы
│ └── media/ # Медиа файлы
├── frontend/ # Frontend ресурсы
├── docs/ # Документация
│ ├── DEPLOYMENT.md # Руководство по деплою
│ ├── ENV_VARIABLES.md # Описание переменных окружения
│ └── QR_CODE_FEATURE_SUMMARY.md
├── scripts/ # Скрипты для управления
│ ├── deploy.sh # Скрипт автоматического деплоя
│ ├── check-config.sh # Проверка конфигурации
│ ├── setup-ssl.sh # Настройка SSL сертификатов
│ └── update_telegram_token.py # Обновление токена бота
├── tests/ # Тестовые файлы
├── bin/ # Вспомогательные скрипты
├── patch/ # Патчи для библиотек
├── docker-compose.yml # Development конфигурация
├── docker-compose.prod.yml # Production конфигурация
├── Dockerfile # Docker образ приложения
├── nginx.conf # Конфигурация Nginx
└── requirements.txt # Python зависимости
```
## 🔧 Технологический стек
- **Backend**: Django 5.1.1
- **Database**: PostgreSQL 17
- **Bot**: python-telegram-bot 21.6
- **Frontend**: Bootstrap 5
- **Containerization**: Docker & Docker Compose
- **Web Server**: Nginx (production)
- **Admin**: Django Jazzmin
- **Monitoring**: Zabbix Agent
## 📋 Требования
- Docker 20.10+
- Docker Compose 1.29+
- Git
## ⚡ Быстрый старт
### 1. Клонирование репозитория
```bash
git clone <repository-url>
cd smartsoltech.kr-master
```
### 2. Настройка переменных окружения
```bash
# Создайте .env файл
cp .env.example .env
# Сгенерируйте SECRET_KEY
python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"
# Отредактируйте .env файл
nano .env
```
**Обязательные переменные:**
- `SECRET_KEY` - Секретный ключ Django
- `DEBUG` - Режим отладки (False для production)
- `ALLOWED_HOSTS` - Разрешенные хосты
- `POSTGRES_DB`, `POSTGRES_USER`, `POSTGRES_PASSWORD` - Настройки БД
- `PGADMIN_DEFAULT_EMAIL`, `PGADMIN_DEFAULT_PASSWORD` - Доступ к PgAdmin
Подробнее см. [docs/ENV_VARIABLES.md](docs/ENV_VARIABLES.md)
### 3. Проверка конфигурации
```bash
chmod +x scripts/*.sh
./scripts/check-config.sh
```
### 4. Запуск приложения
**Development режим:**
```bash
docker-compose up -d
```
**Production режим:**
```bash
docker-compose -f docker-compose.prod.yml up -d
```
**Или используйте скрипт автоматического деплоя:**
```bash
./scripts/deploy.sh
```
### 5. Применение миграций и создание суперпользователя
```bash
# Применить миграции
docker-compose exec web python smartsoltech/manage.py migrate
# Создать суперпользователя
docker-compose exec web python smartsoltech/manage.py createsuperuser
```
## 🌐 Доступ к сервисам
После запуска сервисы доступны по адресам:
- **Django App**: http://localhost:8000
- **Admin Panel**: http://localhost:8000/admin
- **PgAdmin**: http://localhost:8080
- **Telegram Bot**: Работает в фоновом режиме
## 📱 Настройка Telegram бота
1. Создайте бота через [@BotFather](https://t.me/BotFather)
2. Получите токен бота
3. Обновите токен через скрипт или админ-панель:
```bash
docker-compose exec web python scripts/update_telegram_token.py
```
Или через админ-панель: **Admin → Comunication → Telegram Settings**
## 📧 Настройка Email
Настройте SMTP через админ-панель:
**Admin → Comunication → Email Settings**
## 🔒 Безопасность
-Не храните .env в репозитории (добавлен в .gitignore)
- ✅ Используйте сильные пароли
- ✅ Установите `DEBUG=False` в production
- ✅ Настройте HTTPS (см. scripts/setup-ssl.sh)
- ✅ Регулярно обновляйте зависимости
## 📚 Документация
- [DEPLOYMENT.md](docs/DEPLOYMENT.md) - Подробное руководство по деплою
- [ENV_VARIABLES.md](docs/ENV_VARIABLES.md) - Описание переменных окружения
- [QR_CODE_FEATURE_SUMMARY.md](docs/QR_CODE_FEATURE_SUMMARY.md) - Описание функции QR-кодов
## 🛠️ Полезные команды
### Управление контейнерами
```bash
# Просмотр логов
docker-compose logs -f
# Просмотр логов конкретного сервиса
docker-compose logs -f web
docker-compose logs -f bot
# Перезапуск сервисов
docker-compose restart
# Остановка всех сервисов
docker-compose down
# Остановка с удалением volumes (осторожно!)
docker-compose down -v
```
### Django команды
```bash
# Применить миграции
docker-compose exec web python smartsoltech/manage.py migrate
# Создать миграции
docker-compose exec web python smartsoltech/manage.py makemigrations
# Собрать статику
docker-compose exec web python smartsoltech/manage.py collectstatic --noinput
# Создать суперпользователя
docker-compose exec web python smartsoltech/manage.py createsuperuser
# Django shell
docker-compose exec web python smartsoltech/manage.py shell
```
### Backup и восстановление БД
```bash
# Создание backup
docker-compose exec postgres_db pg_dump -U smartsoltech_user smartsoltech_db > backup.sql
# Восстановление из backup
cat backup.sql | docker-compose exec -T postgres_db psql -U smartsoltech_user smartsoltech_db
```
## 🐛 Troubleshooting
### База данных не готова
```bash
# Проверьте логи PostgreSQL
docker-compose logs postgres_db
# Проверьте health check
docker-compose ps
```
### Telegram бот не работает
```bash
# Проверьте логи бота
docker-compose logs bot
# Обновите токен
docker-compose exec web python scripts/update_telegram_token.py
```
### Проблемы со статикой
```bash
# Пересоберите статику
docker-compose exec web python smartsoltech/manage.py collectstatic --noinput --clear
```
Подробнее см. [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md)
## 🔄 Обновление приложения
```bash
# 1. Остановите сервисы
docker-compose down
# 2. Получите обновления
git pull origin main
# 3. Пересоберите образы
docker-compose build --no-cache
# 4. Запустите сервисы
docker-compose up -d
# 5. Примените миграции
docker-compose exec web python smartsoltech/manage.py migrate
# 6. Соберите статику
docker-compose exec web python smartsoltech/manage.py collectstatic --noinput
```
## 📄 Лицензия
Proprietary - Все права защищены
## 👥 Контакты
- Website: https://smartsoltech.kr
- Email: support@smartsoltech.kr
---
Made with ❤️ by SmartSolTech Team