- 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
280 lines
8.8 KiB
Markdown
280 lines
8.8 KiB
Markdown
# 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
|