Парсер файлов окружения

Файлы окружения (.env) хранят конфигурацию в виде пар ключ-значение, отделяя секреты и настройки от кода. Популяризированные методологией twelve-factor app, они используются в экосистемах Node.js, Python, Ruby и других. Этот инструмент разбирает файлы .env и отображает переменные в структурированном виде.

Спецификации

Типичные сценарии использования

  • Просмотр конфигурации окружения приложения
  • Валидация синтаксиса файла .env перед развёртыванием
  • Сравнение файлов окружения между средами (dev, staging, prod)
  • Конвертация переменных окружения в JSON для документации
  • Просмотр конфигурации без её раскрытия в логах

Возможности

  • Разбор пар KEY=value в различных форматах
  • Обработка значений в кавычках (одинарных и двойных)
  • Пропуск комментариев (#) и пустых строк
  • Переключатель показа/скрытия секретов (маскирует ключи, содержащие password, token, api, secret и т.д.)
  • Конвертация в JSON и YAML для программного использования
  • Отображение количества комментариев

Примеры

Конфигурация приложения

Попробовать →

Типичный файл .env с настройками базы данных и API.

# Database configuration
DATABASE_URL=postgres://localhost:5432/myapp
DATABASE_POOL_SIZE=10

# API Keys
API_KEY="sk-1234567890"
SECRET_KEY='super-secret-value'

Советы

  • Никогда не коммитьте файлы .env в систему контроля версий. Используйте .env.example.
  • Значения в кавычках сохраняют начальные/конечные пробелы.
  • Некоторые реализации поддерживают подстановку переменных: ${VAR}.
  • Используйте отдельные файлы .env для каждой среды: .env.development, .env.production.

Описание Парсер файлов окружения

Файлы переменных окружения (.env) хранят конфигурацию приложения в виде простых пар KEY=VALUE, по одной на строку. Формат был популяризирован методологией twelve-factor app, которая призывает к строгому разделению конфигурации и кода. Вместо жёсткого кодирования URL баз данных, API-ключей и флагов функций приложения считывают их из переменных окружения, а файлы .env обеспечивают удобный способ установки этих переменных во время разработки.

Библиотека dotenv, изначально созданная для Ruby и позднее портированная на Node.js, Python, PHP и практически каждую экосистему, читает файлы .env и внедряет значения в окружение процесса. Формат поддерживает значения без кавычек (DATABASE_HOST=localhost), значения в двойных кавычках с escape-последовательностями (MESSAGE="Hello\\nWorld") и значения в одинарных кавычках, обрабатываемые буквально (REGEX='^\\d+$'). Комментарии начинаются с # и пустые строки игнорируются.

Критически важная практика — никогда не коммитить файлы .env в систему контроля версий, так как они обычно содержат секреты. Вместо этого проекты включают .env.example со списком всех необходимых переменных с заполнителями. CI/CD-системы и хостинг-платформы предоставляют собственные механизмы для безопасной установки переменных окружения.

Подстановка переменных (ссылка на другие переменные с синтаксисом \${VAR}) поддерживается некоторыми реализациями dotenv. Docker Compose поддерживает её нативно. При использовании подстановки убедитесь, что ваша конкретная реализация dotenv её поддерживает, поскольку поведение различается между языками.

Файл .env обычно содержит секреты: пароли баз данных, API-ключи и ключи шифрования. Коммит их в git раскрывает их всем, кто имеет доступ к репозиторию, и они сохраняются в истории git даже после удаления. Добавьте .env в .gitignore и используйте .env.example с заполнителями для документирования необходимых переменных. Значения в двойных кавычках интерпретируют escape-последовательности (\\n становится переносом строки), тогда как значения в одинарных кавычках обрабатываются как сырые литералы без обработки escape-последовательностей. Значения без кавычек обрезают конечные пробелы и заканчиваются на первом символе #, который рассматривается как встроенный комментарий.

Управление несколькими средами обычно включает отдельные файлы .env: .env для значений по умолчанию, .env.local для машинно-специфичных переопределений (не коммитится) и .env.development или .env.production для значений, специфичных для среды. Фреймворки, такие как Next.js, Vite и Create React App, загружают их в определённом порядке приоритета. Для Docker Compose поддерживает env_file для загрузки переменных из файла и ключ environment для их прямой установки. Файл .env в корне проекта Compose используется для подстановки переменных в самом docker-compose.yml. Переменные ARG времени сборки отличаются от переменных ENV времени выполнения и не должны содержать секреты.

← Вернуться ко всем инструментам