diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..1747813 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,76 @@ +# Git +.git +.gitignore +.history + +# Python +__pycache__ +*.py[cod] +*$py.class +*.so +.Python +*.egg-info +dist +build +.pytest_cache +.coverage +htmlcov + +# Virtual environments +.venv +venv +env +ENV + +# Environment files +.env +.env.local +.env.*.local + +# IDEs +.vscode +.idea +*.swp +*.swo + +# Documentation (not needed in container) +docs/ +tests/ +*.md +!requirements.txt + +# Docker files +docker-compose*.yml +Dockerfile +.dockerignore + +# Nginx config (copied separately in production) +nginx*.conf + +# SSL certificates (mounted as volumes) +certbot/ + +# Backups +*.sql +*.dump +backup/ + +# Logs (generated in container) +logs/ +*.log + +# Temporary files +*.tmp +*.temp +*.bak + +# OS files +.DS_Store +Thumbs.db + +# Scripts (not all needed in container) +scripts/setup-ssl.sh +scripts/check-config.sh + +# Test files +tests/response_*.json diff --git a/.gitignore b/.gitignore index c4da2ab..2cd667a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,85 @@ +# SmartSolTech .gitignore + +# Python +*.py[cod] +*$py.class +*.so +.Python +__pycache__/ +*.egg-info/ +dist/ +build/ +*.egg + +# Virtual Environment +.venv/ +venv/ +env/ +ENV/ + +# Django +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal +/media +/staticfiles +*.pot + +# Environment variables .env -__pycache__ -.venv -.history -static/qr_codes \ No newline at end of file +.env.local +.env.*.local + +# IDEs +.vscode/ +.idea/ +*.swp +*.swo +*~ +.DS_Store +.history/ + +# Docker +docker-compose.override.yml + +# Certificates +certbot/ + +# Backups +*.sql +*.dump +backup/ + +# Temporary files +*.tmp +*.temp +*.bak + +# Test responses +tests/response_*.json + +# QR Codes (generated) +static/qr_codes/ +smartsoltech/static/qr_codes/ +smartsoltech/staticfiles/qr_codes/ + +# Logs +logs/ +*.log + +# Cache +.pytest_cache/ +.coverage +htmlcov/ +.tox/ +.mypy_cache/ + +# OS generated files +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..1293816 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,80 @@ +# Changelog + +Все значимые изменения в проекте SmartSolTech документируются в этом файле. + +Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.0.0/), +и проект следует [Semantic Versioning](https://semver.org/lang/ru/). + +## [Unreleased] + +### Добавлено +- 🐳 Docker контейнеризация приложения +- 📋 Docker Compose конфигурация для development и production +- 🔒 Nginx конфигурация для production +- 📱 Интеграция Telegram бота для уведомлений +- 📧 Система email уведомлений +- 🎨 Django Jazzmin админ-панель +- 📊 PostgreSQL база данных +- 🔐 QR код для подтверждения заявок +- 📈 Интеграция Zabbix Agent для мониторинга +- 🚀 Скрипты автоматического деплоя +- 🔍 Скрипт проверки конфигурации +- 🔒 Скрипт настройки SSL сертификатов +- 📝 Подробная документация по деплою +- 📚 README с инструкциями +- 🤝 CONTRIBUTING руководство + +### Изменено +- ⚙️ Настройки Django оптимизированы для production +- 🔧 Переменные окружения вынесены в .env файл +- 📁 Структура проекта реорганизована + - Документация перенесена в `docs/` + - Скрипты перенесены в `scripts/` + - Тестовые файлы перенесены в `tests/` + +### Безопасность +- 🔐 SECRET_KEY вынесен в переменные окружения +- 🔒 DEBUG режим управляется через .env +- 🛡️ Добавлены security headers в Nginx +- 🔑 Поддержка HTTPS с Let's Encrypt + +### Инфраструктура +- 🐘 PostgreSQL 17 +- 🐍 Python 3.10 +- 🎯 Django 5.1.1 +- 🤖 python-telegram-bot 21.6 +- 🌐 Nginx для production +- 🐳 Docker & Docker Compose + +--- + +## Формат записей + +### [Версия] - ГГГГ-ММ-ДД + +#### Добавлено (Added) +- Новые функции + +#### Изменено (Changed) +- Изменения в существующем функционале + +#### Устарело (Deprecated) +- Функции, которые скоро будут удалены + +#### Удалено (Removed) +- Удаленные функции + +#### Исправлено (Fixed) +- Исправления багов + +#### Безопасность (Security) +- Изменения, связанные с безопасностью + +--- + +## Предыдущие версии + +### Инициализация проекта +- Базовая структура Django приложения +- Модели для клиентов, заказов, услуг +- Основной функционал веб-приложения diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..1ec0043 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,255 @@ +# Contributing to SmartSolTech + +Спасибо за интерес к проекту SmartSolTech! Это руководство поможет вам начать работу. + +## 🚀 Начало работы + +### Требования для разработки + +- Python 3.10+ +- Docker & Docker Compose +- Git +- Базовые знания Django + +### Настройка окружения для разработки + +1. **Клонируйте репозиторий** + ```bash + git clone + cd smartsoltech.kr-master + ``` + +2. **Создайте .env файл** + ```bash + cp .env.example .env + # Отредактируйте .env с вашими настройками + ``` + +3. **Запустите проект** + ```bash + docker-compose up -d + ``` + +4. **Примените миграции** + ```bash + docker-compose exec web python smartsoltech/manage.py migrate + ``` + +5. **Создайте суперпользователя** + ```bash + docker-compose exec web python smartsoltech/manage.py createsuperuser + ``` + +## 📝 Соглашения о коде + +### Python / Django + +- Следуйте PEP 8 +- Используйте type hints где возможно +- Документируйте функции и классы docstrings +- Максимальная длина строки: 120 символов + +**Пример:** +```python +def send_telegram_notification(chat_id: str, message: str) -> bool: + """ + Отправляет уведомление в Telegram. + + Args: + chat_id: ID чата Telegram + message: Текст сообщения + + Returns: + True если сообщение отправлено успешно, False иначе + """ + pass +``` + +### Структура коммитов + +Используйте понятные сообщения коммитов: + +``` +: + + + +