# Ortam Değişkeni

Adres: https://softwaredictionary.org/tr/terimler/environment-variable
Kategori: DevOps ve Bulut
Son güncelleme: 2026-09-30
İngilizcesi: Environment Variable
Okunuşu: invayrınmınt veriıbıl

Kısaca: Ortam değişkeni, programın dışında işletim sistemi ya da çalışma zamanınca ayarlanan, programın davranışını yapılandırmak için okuduğu adlandırılmış değerdir.

## Ortam değişkeni nedir?

Ortam değişkeni, `PORT=3000` ya da `NODE_ENV=production` gibi, programın koduna değil programın çalıştığı ortama ait bir anahtar-değer çiftidir. Her süreç başlarken üst sürecinin ortam değişkenlerinin bir kopyasını alır ve program nasıl davranacağına karar vermek için bunları okuyabilir. İşletim sistemleri de kendi ayarları için bunları kullanır; örneğin `PATH`, kabuğun komutları aradığı klasörleri listeler.

Ortam değişkenleri, aynı koda farklı yerlerde farklı ayarlar vermenin, örneğin bir dizüstü bilgisayardaki yerel veritabanı ile bulutta canlı ortamdaki veritabanı arasında geçiş yapmanın standart yoludur. Yapılandırmayı bu şekilde kod tabanının dışında tutmak, twelve-factor app metodolojisinin temel fikridir. Node.js'te bunları `process.env.NAME` ile, Python'da `os.environ` ile, kabukta ise `$NAME` ile okursunuz; konteynerler, CI/CD pipeline'ları ve barındırma platformlarının hepsi bunları ortam bazında ayarlamanıza izin verir.

Kiralık bir arabanın ayarlarını düşünün: araba (kodunuz) herkes için aynıdır, ama her sürücü yola çıkmadan önce koltuğu ve aynaları (değişkenleri) ayarlar. Yerel geliştirme sırasında birçok proje değişkenleri, başlangıçta bir kütüphane ya da çalışma zamanı tarafından yüklenen bir `.env` dosyasında tutar; örneğin Node.js bir tanesini `--env-file` bayrağıyla okuyabilir.

Yaygın bir hata, ortam değişkenlerini otomatik olarak gizli saymaktır. API anahtarları gibi gizli bilgiler için pratiktirler, ancak bir `.env` dosyası asla Git'e commit edilmemelidir; onu `.gitignore` dosyasına ekleyin ve bunun yerine yer tutucu değerler içeren bir `.env.example` dosyasını commit edin. Ayrıca frontend framework'lerinde tarayıcıya açılan ve genellikle `NEXT_PUBLIC_` ya da `VITE_` gibi bir önekle işaretlenen değişkenler JavaScript paketinin içine gömülür ve herkes tarafından görülebilir; bu yüzden asla gizli bilgi içermemelidir.

## Önemli noktalar

- Ortam değişkenleri, kod tarafından değil ortam tarafından sağlanan anahtar-değer ayarlarıdır.
- Aynı kodun her ortamda farklı yapılandırmayla çalışmasını sağlar.
- Alt süreçler, üst süreçlerinin ortam değişkenlerinin bir kopyasını devralır.
- Gizli bilgiler içeren `.env` dosyalarını asla sürüm kontrolüne commit etmeyin.
- Frontend koduna açılan değerler herkese açıktır; bu yüzden gizli bilgileri sunucuda tutun.

## Örnek: Kabukta ortam değişkenlerini ayarlamak ve okumak

```bash
# Set a variable for the current shell session, then read it
export API_URL="https://api.example.com"
echo "$API_URL"

# Set a variable for a single command only
PORT=8080 node server.js

# List all environment variables, or show just your PATH
env
echo "$PATH"

# Load variables from a .env file into a Node.js app (Node.js 20.6 and later)
node --env-file=.env server.js
```

## Sık sorulan sorular

**.env dosyası nedir?**

`.env` dosyası, yerel geliştirme için ortam değişkenlerini saklayan `KEY=value` satırlarından oluşan düz bir metin dosyasıdır. Araçlar ve çalışma zamanları onu başlangıçta yükler; çoğunlukla gizli bilgiler içerdiği için `.gitignore` dosyasında listelenmelidir.

**Ortam değişkenleri gizli bilgileri saklamak için güvenli midir?**

Gizli bilgileri kaynak koda gömmekten daha güvenlidir ama tamamen güvenli değildir; çünkü süreçteki her kod, hatta bazen çökme raporları ya da hata ayıklama araçları bunları okuyabilir. Canlı ortamda birçok ekip, değerleri çalışma zamanında enjekte eden, rotasyonu ve erişim kontrolünü destekleyen özel bir gizli bilgi yöneticisi kullanır.

**Ortam değişkenim neden undefined?**

Yaygın nedenler; adda yazım hatası, değişkeni farklı bir terminal oturumunda ayarlamak, değişiklikten sonra uygulamayı yeniden başlatmayı unutmak ya da frontend framework'lerinde gerekli genel öneki eklememektir. Değişkenler bir süreç başlarken okunur; bu yüzden değişiklikler zaten çalışmakta olan programları etkilemez.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
