Ortam Dosyası Ayrıştırıcı
Ortam dosyaları (.env), yapılandırmayı anahtar-değer çiftleri olarak depolar ve sırları ile ayarları koddan ayrı tutar. On iki faktör uygulama metodolojisi tarafından popülerleştirilen bu format; Node.js, Python, Ruby ve diğer ekosistemlerde kullanılır. Bu araç .env dosyalarını ayrıştırır ve değişkenleri yapılandırılmış bir görünümde görüntüler.
Spesifikasyonlar
Yaygin Kullanim Alanlari
- Uygulama ortam yapılandırmasını inceleme
- Dağıtımdan önce .env dosya sözdizimini doğrulama
- Ortamlar arasında ortam dosyalarını karşılaştırma (geliştirme, hazırlık, üretim)
- Belgeleme için ortam değişkenlerini JSON'a dönüştürme
- Günlüklere maruz kalmadan yapılandırmayı gözden geçirme
Ozellikler
- Çeşitli formatlarla KEY=value çiftlerini ayrıştırma
- Tırnaklı değerleri işleme (tek ve çift tırnak)
- Yorumları (#) ve boş satırları atlama
- Sırları göster/gizle geçişi (password, token, api, secret vb. eşleşen anahtarları maskeler)
- Programatik kullanım için JSON ve YAML'a dönüştürme
- Yorum sayısı görüntüleme
Ornekler
Uygulama Yapılandırması
Deneyin →Veritabanı ve API ayarları içeren tipik bir .env dosyası.
# Database configuration
DATABASE_URL=postgres://localhost:5432/myapp
DATABASE_POOL_SIZE=10
# API Keys
API_KEY="sk-1234567890"
SECRET_KEY='super-secret-value'Ipuclari
- .env dosyalarını asla sürüm kontrolüne eklemeyin. Bunun yerine .env.example kullanın.
- Tırnaklı değerler baştaki/sondaki boşlukları korur.
- Bazı uygulamalar değişken genişletmeyi destekler: ${VAR}.
- Ortam başına ayrı .env dosyaları kullanın: .env.development, .env.production.
Anlama Ortam Dosyası Ayrıştırıcı
Ortam değişken dosyaları (.env), uygulama yapılandırmasını her satırda bir tane olmak üzere basit KEY=VALUE çiftleri olarak depolar. Format, yapılandırmanın koddan kesin olarak ayrılmasını savunan on iki faktör uygulama metodolojisi tarafından popülerleştirilmiştir. Veritabanı URL'lerini, API anahtarlarını ve özellik bayraklarını sabit kodlamak yerine, uygulamalar bunları ortam değişkenlerinden okur ve .env dosyaları geliştirme sırasında bu değişkenleri ayarlamak için uygun bir yol sağlar.
Başlangıçta Ruby için olan ve daha sonra Node.js, Python, PHP ve neredeyse her ekosisteme taşınan dotenv kütüphanesi, .env dosyalarını okur ve değerleri süreç ortamına enjekte eder. Format; tırnak işaretsiz değerleri (DATABASE_HOST=localhost), kaçış dizileri içeren çift tırnaklı değerleri (MESSAGE="Hello\\nWorld") ve düz metin olarak değerlendirilen tek tırnaklı değerleri (REGEX='^\\d+$') destekler. Yorumlar # ile başlar ve boş satırlar yok sayılır.
Kritik bir uygulama, .env dosyalarını asla sürüm kontrolüne eklememektir çünkü genellikle sırlar içerirler. Bunun yerine, projeler yer tutucu değerlerle gerekli tüm değişkenleri listeleyen bir .env.example dosyası içerir. CI/CD sistemleri ve barındırma platformları, ortam değişkenlerini güvenli bir şekilde ayarlamak için kendi mekanizmalarını sağlar.
Değişken genişletme (diğer değişkenlere \${VAR} sözdizimi ile başvurma) bazı dotenv uygulamaları tarafından desteklenir. Docker Compose bunu yerel olarak destekler. Genişletmeye bağımlı olduğunuzda, davranış diller arasında farklılık gösterdiğinden belirli dotenv uygulamanızın bunu desteklediğini doğrulayın.
.env dosyası genellikle veritabanı parolaları, API anahtarları ve şifreleme anahtarları gibi sırlar içerir. Bunları git'e eklemek, depo erişimi olan herkese maruz bırakır ve silinmeden sonra bile git geçmişinde kalıcıdır. .env dosyasını .gitignore'a ekleyin ve gerekli değişkenleri belgelemek için yer tutucu değerli bir .env.example kullanın. Çift tırnaklı değerler kaçış dizilerini yorumlar (\\n satır sonuna dönüşür), tek tırnaklı değerler ise kaçış işlemi olmadan ham metin olarak değerlendirilir. Tırnak işaretsiz değerler sondaki boşluklardan temizlenir ve satır içi yorum olarak değerlendirilen ilk # karakterinde durur.
Birden fazla ortamı yönetmek genellikle ayrı .env dosyaları içerir: varsayılanlar için .env, makineye özgü geçersiz kılmalar için .env.local (eklenmez) ve ortama özgü değerler için .env.development veya .env.production. Next.js, Vite ve Create React App gibi çerçeveler bunları belirli bir öncelik sırasına göre yükler. Docker için, Compose değişkenleri bir dosyadan yüklemek için env_file'ı ve bunları doğrudan ayarlamak için environment anahtarını destekler. Proje kökündeki Compose .env dosyası, docker-compose.yml'nin kendisinde değişken ikamesi için kullanılır. Derleme zamanı ARG değişkenleri, çalışma zamanı ENV değişkenlerinden farklıdır ve sır içermemelidir.