1001Ferramentas
🔐 Geradores

Gerador de Arquivo .env por Stack

Cria arquivo .env e .env.example completo para stacks comuns (Next.js, Django, Rails, Laravel, Vite) com placeholders e comentários documentados.

Conteúdo (.env)

    
Inclui comentários e seções (DB, Auth, Mail, Storage). Nunca commit credenciais reais.

Templates de .env por stack

A convenção .env foi popularizada pelo manifesto Twelve-Factor App da Heroku e pela biblioteca npm dotenv de Scott Motte (2013). A ideia é simples: configuração que muda entre ambientes — URL do banco, API keys, feature flags — vive em variáveis de ambiente, não no código, e um .env por desenvolvedor disponibiliza essas variáveis durante o desenvolvimento local. Hoje toda linguagem grande tem porte: dotenv no Node, python-dotenv no Python, godotenv no Go, dotenvy no Rust.

Formato do arquivo

Um par CHAVE=VALOR por linha. Comentários começam com #. Valores com espaços ou caracteres especiais precisam de aspas:

# Banco
DATABASE_URL=postgres://user:senha@localhost:5432/app
# Auth
JWT_SECRET="string longa aleatoria com espacos"
NODE_ENV=development
PORT=3000
  • Nunca faça commit do .env — coloque no .gitignore. Segredos vazados em repositórios públicos são varridos por bots em minutos.
  • Commit de um .env.example com placeholders para que novos colaboradores saibam quais variáveis configurar.
  • O arquivo é lido uma vez no startup do processo — mudanças em runtime exigem restart.

Chaves típicas por stack

  • Node/Express: PORT, DATABASE_URL, JWT_SECRET, REDIS_URL, NODE_ENV.
  • Next.js: NEXTAUTH_URL, NEXTAUTH_SECRET, NEXT_PUBLIC_* (só variáveis com prefixo NEXT_PUBLIC_ vão para o cliente).
  • Django: SECRET_KEY, DATABASE_URL, ALLOWED_HOSTS, DEBUG, DJANGO_SETTINGS_MODULE.
  • Rails: DATABASE_URL, RAILS_MASTER_KEY, RACK_ENV.
  • Laravel: APP_KEY, APP_ENV, DB_*, REDIS_*, MAIL_*.
  • Vite: variáveis do cliente exigem o prefixo VITE_; o Create React App usa REACT_APP_.
  • Container Postgres: POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB.

Além do .env: secrets em produção

Em produção, .env em texto puro no disco vira passivo. Use um gerenciador de segredos: AWS Secrets Manager, Google Secret Manager, HashiCorp Vault, Doppler, Infisical ou soluções nativas da plataforma como variáveis de ambiente da Vercel/Netlify. O dotenv-vault (Motte, 2022) criptografa e sincroniza o .env entre membros do time. Com Docker, passe segredos via --env-file .env, a diretiva env_file: do docker-compose ou Docker Swarm Secrets / Kubernetes Secrets em workloads orquestradas. Nunca logue o conteúdo do env — alguns loggers estruturados fazem isso por padrão e aquela linha no stdout fica a uma query do Splunk de virar desastre.

Perguntas frequentes

Posso commitar .env? Não, jamais. Coloque no .gitignore e commite um .env.example com placeholders. Scanners de repositório público (TruffleHog, GitGuardian) pegam vazamento em horas.

O que vai dentro de um .env? Tudo que é segredo ou específico de ambiente: URL de banco, API keys, JWT secrets, OAuth client IDs, tokens de terceiros (Stripe, SendGrid, S3), feature flags. Valores públicos e imutáveis (como nome do app) ficam no código.

Devo usar .env em produção? Prefira gerenciador de segredos. Se tiver que usar, restrinja as permissões para 600, monte como Docker secret e nunca cole dentro da imagem.

O que o prefixo NEXT_PUBLIC_ ou VITE_ faz? Marca a variável como segura para expor no bundle do browser. Tudo sem esse prefixo fica server-side. Colocar um segredo de verdade atrás desses prefixos vaza ele para todo visitante.

Ferramentas Relacionadas