Files
links/scripts/README_env_generator.md
Andrey K. Choi 20014d3a81
Some checks failed
continuous-integration/drone/push Build is failing
environment emprovements
2025-11-04 21:18:15 +09:00

3.5 KiB
Raw Permalink Blame History

Environment Configuration Generator

Описание

Скрипт scripts/generate_env.sh создает файл .env на основе шаблона .env.example с интерактивным вводом параметров или автоматической генерацией безопасных значений.

Использование

Интерактивный режим (разработка)

./scripts/generate_env.sh

Автоматический режим для продакшена

./scripts/generate_env.sh --production

Неинтерактивный режим

./scripts/generate_env.sh --yes

Комбинированный режим

./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

Примеры

Быстрая настройка для разработки

# Создаст .env с базовыми настройками для localhost
./scripts/generate_env.sh --yes

Настройка продакшена

# Интерактивная настройка с вводом домена
./scripts/generate_env.sh --production

# Или автоматически, если домен в переменной окружения
DOMAIN=example.com EMAIL=admin@example.com ./scripts/generate_env.sh --production --yes

Переменные окружения для автоматизации

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