Skip to main content
Production, docker-compose.yml + docker-compose.prod.yml ile çalışır. Mimari stage ile birebir aynıdır (nginx-proxy + acme-companion, path-based routing) — fark prod realm isimleri, prod sertifikaları ve müşterinin mevcut altyapısına bağlanmasıdır.

Başlatma

Routing yine path-based: / → Website, /admin/ → Admin, /api/* → API, /grafana/ → Grafana.

Müşteri on-prem altyapısı

Prod’da altyapı container olarak çalışmaz; müşterinin mevcut servislerine bağlanılır. .env.prod’da host’lar verilir:
Müşteri prod’u tipik olarak Windows Server + mevcut PostgreSQL (CREATE DATABASE yetkili) ve intranet ortamıdır. İntranette Let’s Encrypt çalışmaz (HTTP-01 challenge internet erişimi ister) — bu durumda kurumun kurumsal TLS sertifikası nginx-proxy’nin cert volume’üne mount edilir, acme-companion devre dışı bırakılır.

Sertifika volume backup

nginx-proxy-certs volume’ü Let’s Encrypt sertifikalarını tutar. Yeniden kurulum/taşımada rate-limit’e takılmamak için yedeklenmelidir:
Kurumsal cert kullanılıyorsa bu sertifika dosyaları (host’ta) yedeklenir.

Test kullanıcıları

appsettings.Production.json’da test kullanıcı tanımı yoktur — müşteri prod’unda olmamalıdır. Kullanıcılar Keycloak admin panelinden manuel oluşturulur veya kurumun mevcut IdP’sine federe edilir.

Observability’i kapatma

Müşteri Prometheus/Grafana istemiyorsa:
  1. docker-compose.prod.yml içindeki prometheus + grafana bloklarını yorumla.
  2. appsettings.Production.json’da Observability:Enabled = false yap.
Health check endpoint’leri (/health/*) bağımsız çalışmaya devam eder.

Hetzner — çok-proje demo

Tek bir Hetzner VPS üzerinde 3 ayrı proje (Diyanet/Camii, Kurban, Bağış) paylaşımlı infra ile çalışır. Üç ayrı compose dosyası kullanılır: Tek Postgres içinde 4 DB (diyanet, kurban, bagis, keycloak), tek Keycloak (6 client), tek Redis/RabbitMQ/Seq. Paylaşımlı platform-nginx-proxy, VIRTUAL_HOST’a göre her container’a vhost üretir.
Domain pattern: diyanet.pro (root), kurban.diyanet.pro, bagis.diyanet.pro, sso.diyanet.pro (Keycloak), grafana.diyanet.pro, seq.diyanet.pro. Detaylar HETZNER.md’de.

Sonraki adımlar

Ortam değişkenleri

.env.prod / .env.infra / .env.app kategorileri.

Stage Docker

Aynı mimarinin stage varyantı.

Gözlemlenebilirlik

Prometheus/Grafana opt-out.

Komutlar

Hetzner script referansı.