94 lines
3.5 KiB
Markdown
94 lines
3.5 KiB
Markdown
# 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 |