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
This commit is contained in:
2025-11-24 07:12:04 +09:00
parent 7bf003e70d
commit d9adac609b
26 changed files with 1869 additions and 11 deletions

134
docs/ENV_VARIABLES.md Normal file
View File

@@ -0,0 +1,134 @@
# SmartSolTech - Environment Variables Summary
## ✅ Все переменные окружения для .env файла
### 🔐 Django Settings (обязательные)
```env
SECRET_KEY=your-secret-key-here-change-this-in-production
DEBUG=False
ALLOWED_HOSTS=localhost,127.0.0.1,your-domain.com
CSRF_TRUSTED_ORIGINS=http://localhost:8000,https://your-domain.com
```
### 🗄️ PostgreSQL Database (обязательные)
```env
POSTGRES_DB=smartsoltech_db
POSTGRES_USER=smartsoltech_user
POSTGRES_PASSWORD=your-strong-password-here
POSTGRES_HOST=postgres_db
```
### 🔧 PgAdmin (обязательные)
```env
PGADMIN_DEFAULT_EMAIL=admin@smartsoltech.kr
PGADMIN_DEFAULT_PASSWORD=your-pgadmin-password
```
### 📊 Zabbix Agent (опционально)
```env
ZBX_SERVER_HOST=your-zabbix-server-ip
```
### 🔒 Security Settings для Production (опционально)
```env
SECURE_SSL_REDIRECT=True
SESSION_COOKIE_SECURE=True
CSRF_COOKIE_SECURE=True
```
## 📝 Настройки через админ-панель Django
Следующие настройки **НЕ** хранятся в .env, а настраиваются через админ-панель Django:
### 📱 Telegram Bot Settings
- Токен бота (от @BotFather)
- Имя бота
- Webhook URL (опционально)
- Используется скрипт `update_telegram_token.py` для обновления
### 📧 Email Settings
- SMTP сервер
- SMTP порт
- Отправитель email
- Пароль
- TLS/SSL настройки
## 🚀 Быстрый старт
1. **Создайте .env файл:**
```bash
cp .env.example .env
```
2. **Сгенерируйте SECRET_KEY:**
```bash
python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"
```
3. **Отредактируйте .env:**
```bash
nano .env
```
4. **Проверьте конфигурацию:**
```bash
./check-config.sh
```
5. **Запустите деплой:**
```bash
./deploy.sh
```
## 📂 Созданные файлы
### Конфигурационные файлы:
- ✅ `.env.example` - Пример переменных окружения
- ✅ `docker-compose.yml` - Обновлён для development
- ✅ `docker-compose.prod.yml` - Production конфигурация с Nginx
- ✅ `Dockerfile` - Обновлён с улучшениями
- ✅ `nginx.conf` - Конфигурация Nginx для production
### Скрипты:
- ✅ `deploy.sh` - Автоматический деплой
- ✅ `check-config.sh` - Проверка конфигурации
- ✅ `setup-ssl.sh` - Настройка SSL сертификатов
### Документация:
- ✅ `DEPLOYMENT.md` - Подробная документация по деплою
- ✅ `ENV_VARIABLES.md` - Этот файл
- ✅ `settings_production.py` - Дополнительные настройки для production
## 🔍 Изменения в коде
### smartsoltech/settings.py:
- ✅ Добавлена поддержка `DEBUG` из .env (с приведением к bool)
- ✅ Используется `python-decouple` для управления переменными
### docker-compose.yml:
- ✅ Добавлены health checks для всех сервисов
- ✅ Добавлены volumes для persistent storage
- ✅ Улучшены зависимости между сервисами
- ✅ Добавлены restart policies
### Dockerfile:
- ✅ Установка системных зависимостей (postgresql-client, netcat)
- ✅ Улучшенная обработка статики
- ✅ Health check для контейнера
- ✅ Использование wait-for-it.sh для ожидания БД
## ⚠️ Важные замечания
1. **Никогда не коммитьте .env файл в git!** Он в .gitignore
2. В production обязательно установите `DEBUG=False`
3. Используйте сильные пароли для всех сервисов
4. Регулярно обновляйте зависимости
5. Настройте backup базы данных
6. Используйте HTTPS в production
## 🆘 Поддержка
Для получения помощи:
1. Проверьте логи: `docker-compose logs -f`
2. Смотрите DEPLOYMENT.md для troubleshooting
3. Используйте `check-config.sh` для диагностики