Enviroment Variable Dosyalarını Nasıl Yönetirsin?

Erdem Köşk
Kodcular
Published in
3 min readNov 11, 2023
Photo by Emiel Maters on Unsplash

Öncelikle Enviroment Variables nedir diye soruyorsan seni buraya alalım.

Yazılım geliştirme projeleri karmaşık hale gelebilir, özellikle birden fazla hizmetin ve uygulamanın aynı anda geliştirildiği büyük projelerde. Her bir proje kendine özgü ayarları içerir ve bu ayarlar, environment variable (çevresel değişken) dosyaları aracılığıyla sağlanır. Bu dosyalar, projenizin farklı çalışma ortamlarında (geliştirme, test, üretim vb.) nasıl davranacağınızı belirleyen önemli bilgileri içerir. Ancak, bu dosyaların etkili bir şekilde yönetimi ve güncellenmesi, geliştiriciler için zorlayıcı bir görev olabilir.

Buradan hareketle bilgisayar değiştirirken yada projeyi bir şekilde sildiğimde sürekli slack mesajlarımız şuna dönmeye başlamıştı

— Selam abi bla bla servisinin .env dosyasını atabilir misin?

Photo by Andrea De Santis on Unsplash

Şirketleirn bir çoğu vault benzeri 3 rd programlar kullanarak kişisel ve geçiçi yetkilendirmeler kullanıyorlar. Bu sayede birinin database yetkisini saatlik günlük olarak kısıtlayabilir şifreliyebilirsiniz.
Ancak bu demek oluyor ki günümüzün belli bir kısmı sürekli biten yetkilendirmelerin peşinde koşmanız gerekiyor.

Ancak uğraşmakta olduğunuz o çok sayıda servis olduğunda tüm servislerin .env dosyasını kendiniz yönetmeniz gerekiyor ve bu başlı başına büyük ve problemli bir iş olarak karşımıza çıkıyor.

Envolve projesinin ortaya çıkma motivasyonu temel olarak bu nedenlere dayanıyor.

Photo by Roman Synkevych on Unsplash

Çoğu zaman çoğu kişi kendi problemlerini çözmek için kod yazarlar. En azından ortaya çıkan büyük projelerin tamamının neredeyse ortak noktası budur. Çünkü biz yazılımı insanlar için yazarız. Bu bazen müşteriler olur bazen ise kendimiz.

Buradan hareket ile temel günlük sürekli tekrar ettimiz işlemleri minimuma etmek ve otomatize etmek amacı ile Envolve isimli bir cli uygulaması geliştirdik.

Envolve ile basitce tüm env dosyalarını kolayca ana bir klasör altında toplayarak symlink(sembolink link) aracılı ile ana dosyada topladınız tüm dosyalarınızı otomatik olarak projenize linkliyor. Aslında bu sayede proje dosyanızı silseniz bile data kaybetmiyorsunuz.

Bir diğer güzel özelliği ise örneğin x db connection stringi aldınız ama bunu 20 farklı env dosyanızda değiştirmek zorundasınız. Sadece update all diyerek aynı anda tüm dosyalarınızı tek tuş ile güncelliyebiliyorsunuz.

Proje open-source ve tamamen maddiyat gözetmeksizin geliştiriliyor.

Desteklemek isterseniz Github üzerinden star vererek destekleyebilir ve yeni isterler için issue ve kod katkısı sağlamak için pr açabilirsiniz.

Meraklılar için github linki.

Photo by Jan Tinneberg on Unsplash

Görüşmek üzere!

--

--