environment emprovements
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2025-11-04 21:18:15 +09:00
parent eb55d06c44
commit 20014d3a81
5 changed files with 351 additions and 137 deletions

View File

@@ -0,0 +1,94 @@
# Environment Configuration Generator
## Описание
Скрипт `scripts/generate_env.sh` создает файл `.env` на основе шаблона `.env.example` с интерактивным вводом параметров или автоматической генерацией безопасных значений.
## Использование
### Интерактивный режим (разработка)
```bash
./scripts/generate_env.sh
```
### Автоматический режим для продакшена
```bash
./scripts/generate_env.sh --production
```
### Неинтерактивный режим
```bash
./scripts/generate_env.sh --yes
```
### Комбинированный режим
```bash
./scripts/generate_env.sh --production --yes
```
## Функции
### 🔒 Автоматическая генерация безопасных паролей
- Django SECRET_KEY (криптографически стойкий)
- Пароли базы данных (случайные 25-символьные)
- Все пароли генерируются с использованием OpenSSL или Python secrets
### 🚀 Продакшен режим (`--production`)
- Автоматически устанавливает `DJANGO_DEBUG=False`
- Включает SSL настройки (HSTS, SSL redirect)
- Генерирует криптографически стойкие пароли
- Запрашивает домен и email для SSL сертификатов
- Настраивает CORS только для указанного домена
### ⚡ Неинтерактивный режим (`--yes`)
- Использует значения из переменных окружения
- Подходит для CI/CD и автоматизированного развертывания
- Сохраняет значения по умолчанию из `.env.example`
## Примеры
### Быстрая настройка для разработки
```bash
# Создаст .env с базовыми настройками для localhost
./scripts/generate_env.sh --yes
```
### Настройка продакшена
```bash
# Интерактивная настройка с вводом домена
./scripts/generate_env.sh --production
# Или автоматически, если домен в переменной окружения
DOMAIN=example.com EMAIL=admin@example.com ./scripts/generate_env.sh --production --yes
```
### Переменные окружения для автоматизации
```bash
export DJANGO_SECRET_KEY="your-secret-key"
export DATABASE_PASSWORD="your-db-password"
export DOMAIN="example.com"
export EMAIL="admin@example.com"
./scripts/generate_env.sh --yes
```
## Безопасность
- Пароли генерируются криптографически стойкими методами
- Секретные ключи никогда не выводятся в консоль
- В продакшен режиме автоматически отключается DEBUG
- Включаются все необходимые заголовки безопасности
## Интеграция
Скрипт интегрирован в:
- `setup.sh` - основной скрипт установки
- `Makefile` - команды для управления проектом
- `scripts/master-deploy.sh` - скрипт развертывания
## Совместимость
- ✅ Linux/macOS/WSL
- ✅ Docker environments
- ✅ CI/CD pipelines
- ✅ OpenSSL и Python 3.x