# 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 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