Skip to main content
Bu sayfa dev ortamını sıfırdan çalıştırmayı anlatır. Stage/Prod için Operasyon › Docker Stage ve Docker Prod sayfalarına bakın.
Dev ortamında her servis kendi host port’unda çalışır; reverse-proxy yoktur. docker-compose.override.yml otomatik yüklenir ve tüm altyapıyı (Postgres, Redis, RabbitMQ, Keycloak, Seq, pgAdmin, …) container’lardan getirir.

Ön koşullar

1

Docker Desktop çalışıyor

docker compose version v2 dönmeli. Windows’ta WSL 2 backend açık.
2

Portlar boş

5005, 3000, 3001, 5432, 6379, 5672, 15672, 8080, 5341, 5342, 5050 boş olmalı.
3

(Opsiyonel) .NET 10 + Node 22

Container dışında geliştirme/debug için. Sadece çalıştıracaksanız gerekmez.
Detay için Ön Gereksinimler.

1. Repoyu klonla

2. .env dosyasını hazırla

Dev compose, repo kökündeki .env dosyasını okur. Örnekten kopyalayın ve CHANGE_ME değerlerini doldurun:
Doldurulması gereken kritik değişkenler:
JWT_BACKOFFICE_SECRET en az 32, JWT_OTP_SECRET en az 64 karakter olmalıdır; aksi halde token imzalama başlatılırken hata verir. Tüm .env* dosyaları .gitignore’dadır, commit edilmez.
Tüm değişkenlerin tam listesi için Operasyon › Ortam Değişkenleri.

3. Her şeyi başlat

Bu komut:
  1. docker-compose.yml (base: API + 2 SPA) + docker-compose.override.yml’i (dev altyapı) birleştirir.
  2. API’yi (multi-stage .NET 10 imajı) ve iki SPA’yı (Vite build → nginx) derler.
  3. PostgreSQL, Redis, RabbitMQ, Keycloak, Seq, pgAdmin, RedisInsight, Prometheus, Grafana’yı ayağa kaldırır.
İlk derleme birkaç dakika sürebilir. Durumu izleyin:

4. Veritabanı migration’ları

appsettings.Development.json içinde Services:Migration:AutoDeploy: true olduğundan, API açılışında MigrationService otomatik Database.MigrateAsync() çalıştırır ve şemayı oluşturur. Ayrıca DistrictSeeder 973 ilçeyi, DevDataSeeder bootstrap admin’leri yükler. Migration’ı elle uygulamak isterseniz:
Detay: Veri Katmanı › Migration’lar.

5. Servislere erişim

6. Keycloak provisioning

Dev’de Keycloak otomatik kurulur: KeycloakProvisioning:Enabled: true olduğundan API açılışta diyanet-vatandas-dev-realm ve diyanet-yonetim-dev-realm realm’lerini, client’larını, protokol mapper’larını ve test kullanıcılarını oluşturur (RunOnce). Test kullanıcıları oluşturmak/güncellemek için PowerShell yardımcıları:
Detay: Keycloak › Provisioning.

Faydalı komutlar

Tüm komut referansı: Operasyon › Komutlar.

Sorun mu çıktı?

Altyapı container’ları henüz hazır değil olabilir. docker compose ps ile healthy durumu bekleyin; API depends_on ile health bekler ama ilk kalkışta retry görebilirsiniz.
Provisioning birkaç saniye sürer. docker compose logs -f diyanetcleanarchitecture-api içinde [Keycloak Provisioning] satırlarını izleyin. Bkz. Keycloak › Troubleshooting.
İlgili host port’unu kullanan başka bir süreç var. docker compose down sonrası port’u boşaltın veya docker-compose.override.yml’de port eşlemesini değiştirin.