Files
smartsoltech_site/README.md
Andrew K. Choi d9adac609b 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
2025-11-24 07:12:04 +09:00

280 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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