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:
279
README.md
Normal file
279
README.md
Normal 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
|
||||
Reference in New Issue
Block a user