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

8.8 KiB
Raw Blame History

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. Клонирование репозитория

git clone <repository-url>
cd smartsoltech.kr-master

2. Настройка переменных окружения

# Создайте .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

3. Проверка конфигурации

chmod +x scripts/*.sh
./scripts/check-config.sh

4. Запуск приложения

Development режим:

docker-compose up -d

Production режим:

docker-compose -f docker-compose.prod.yml up -d

Или используйте скрипт автоматического деплоя:

./scripts/deploy.sh

5. Применение миграций и создание суперпользователя

# Применить миграции
docker-compose exec web python smartsoltech/manage.py migrate

# Создать суперпользователя
docker-compose exec web python smartsoltech/manage.py createsuperuser

🌐 Доступ к сервисам

После запуска сервисы доступны по адресам:

📱 Настройка Telegram бота

  1. Создайте бота через @BotFather
  2. Получите токен бота
  3. Обновите токен через скрипт или админ-панель:
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)
  • Регулярно обновляйте зависимости

📚 Документация

🛠️ Полезные команды

Управление контейнерами

# Просмотр логов
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 команды

# Применить миграции
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 и восстановление БД

# Создание 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

База данных не готова

# Проверьте логи PostgreSQL
docker-compose logs postgres_db

# Проверьте health check
docker-compose ps

Telegram бот не работает

# Проверьте логи бота
docker-compose logs bot

# Обновите токен
docker-compose exec web python scripts/update_telegram_token.py

Проблемы со статикой

# Пересоберите статику
docker-compose exec web python smartsoltech/manage.py collectstatic --noinput --clear

Подробнее см. docs/DEPLOYMENT.md

🔄 Обновление приложения

# 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 - Все права защищены

👥 Контакты


Made with ❤️ by SmartSolTech Team