JSON Çıktısı
Örnek .env dosyasını dönüştürmek şunu üretir:
{
"APP_NAME": "myapp",
"APP_PORT": 3000,
"APP_DEBUG": true,
"DATABASE_HOST": "localhost",
"DATABASE_PORT": 5432,
"DATABASE_NAME": "myapp",
"DATABASE_USER": "admin",
"DATABASE_PASSWORD": "secret",
"DARK_MODE": true,
"MAX_CONNECTIONS": 100,
"ALLOWED_ORIGINS": "https://example.com https://api.example.com",
"API_KEY": "sk-abc123xyz789",
"JWT_SECRET": "my-super-secret-key"
}
APP_PORT, DATABASE_PORT ve MAX_CONNECTIONS’in sayılara, APP_DEBUG ve DARK_MODE’un boolean’a dönüştüğüne dikkat edin. Yorumlar otomatik olarak kaldırılır.
.env Dosyaları Nasıl Çalışır
.env dosyaları şu kurallarla basit KEY=VALUE sözdizimi kullanır:
| Özellik | Sözdizimi | Örnek |
|---|---|---|
| Basit değer | KEY=value | APP_NAME=myapp |
| Tırnaklı değer | KEY="değer" | GREETING="merhaba dünya" |
| Boş değer | KEY= | BOS_DEGISKEN= |
| Yorum | # metin | # Bu bir yorum |
| Export ön ekli | export KEY=value | export API_KEY=abc |
Ayrıştırıcı tüm bu variationsları işler ve temiz anahtar-değer çiftlerine dönüştürür.
Yaygın .env Kalıpları
Docker Compose
# docker-compose.env
POSTGRES_USER=admin
POSTGRES_PASSWORD=secret
POSTGRES_DB=myapp
REDIS_URL=redis://cache:6379
Vercel / Netlify
# .env.local
DATABASE_URL=postgresql://user:pass@host/db
NEXT_PUBLIC_API_URL=https://api.example.com
API_SECRET=sk-secret-key
Node.js Uygulaması
# .env
NODE_ENV=production
PORT=3000
LOG_LEVEL=info
CORS_ORIGIN=https://example.com
Neden JSON’a Dönüştürelim?
Çapraz Platform Taşıma
.env tabanlı bir platformdan (Docker, Vercel) JSON tabanlı bir sisteme (Kubernetes ConfigMaps, AWS Parameter Store) mi taşıyorsunuz? Önce dönüştürerek yapının doğru olduğundan emin olun.
Yapılandırma Doğrulama
JSON, programatik olarak doğrulamak için daha kolaydır. .env’nizi JSON’a dönüştürün, ardından bir JSON şema doğrulayıcı ile çalıştırarak eksik veya hatalı değerleri yakalayın.
Ekip İşbirliği
JSON, bir projenin ortam kurulumuna aşina olmayan ekip üyeleri için daha self-dokümantasyonludur. Tip bilgisi (sayılar vs dizeler) açıktır.
.env Hata Abi
Norveç Sorunu (YAML ile Aynı)
NO, TRUE, FALSE gibi tırnaklanmamış değerler bazı ayrıştırıcılar tarafından boolean olarak yorumlanabilir. String olarak kalması gereken değerleri her zaman tırnak ile çevreleyin:
# Yanlış - boolean olarak yorumlanabilir
COUNTRY=NO
# Doğru - açıkça bir string
COUNTRY="NO"
Çok Satırlı Değerler
Çok satırlı değerler tırnak ile çevrelenmelidir:
RSA_KEY="-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA0Z3VS5JJcds3xfn/ygWyF...
-----END RSA PRIVATE KEY-----"
Değişken Referansları
Bazı .env ayrıştırıcıları değişken referansları için ${VAR} sözdizimini destekler. Bu araç, mümkün olduğunca aynı dosya içindeki referansları çözer.