Skip to main content
Proje, tek bir base compose dosyası (docker-compose.yml) ve ortama göre üzerine binen override’larla deploy edilir. Base dosya yalnızca uygulama servislerini (API + iki SPA) içerir; altyapı (Postgres, Redis, RabbitMQ, Keycloak, Seq) dev’de override ile container olarak gelir, stage/prod’da kurumun mevcut altyapısından bağlanılır.

Ortam matrisi

OrtamCompose dosyalarıReverse proxyTLSAltyapı
Devdocker-compose.yml + .override.yml (otomatik)Yok — host portlarıYok (HTTP)Container (Postgres 16, Redis 7, RabbitMQ 3.13, Keycloak 26, Seq, +araçlar)
Stage.yml + .stage.ymlnginx-proxy + acme-companionLet’s EncryptMüşterinin mevcut altyapısı
Prod.yml + .prod.ymlnginx-proxy + acme-companionLet’s Encrypt / kurumsal certMüşterinin mevcut altyapısı (on-prem)
Stage.local.yml + .stage.local.ymlnginx-proxyYok (HTTP-only)Local container
Hetzner.platform.yml + .shared-infra.yml + .app.ymlPaylaşımlı platform-nginx-proxyLet’s EncryptTek paylaşımlı infra stack, çok proje

Compose dosyaları

DosyaRol
docker-compose.ymlBase — API + Website + Admin
docker-compose.override.ymlDev altyapısı + host portları (docker compose up ile otomatik yüklenir)
docker-compose.stage.ymlStage — nginx-proxy + acme + path-based routing
docker-compose.prod.ymlProd — aynı yapı, prod realm/cert
docker-compose.stage.local.ymlHTTP-only local stage
docker-compose.platform.ymlHetzner — paylaşımlı nginx-proxy + acme
docker-compose.shared-infra.ymlHetzner — paylaşımlı infra (Postgres/Redis/RabbitMQ/Keycloak/Seq/Prometheus/Grafana)
docker-compose.app.ymlHetzner — tek app stack (env-file ile çoğaltılır)

Routing — dev port vs stage/prod path

Dev’de her servis kendi host portundan erişilir. Stage/prod’da tek domain altında path-based:
ServisDev (port)Stage / Prod (path)
Website SPAhttp://localhost:3000https://{domain}/
Admin SPAhttp://localhost:3001https://{domain}/admin/
APIhttp://localhost:5005https://{domain}/api/
Grafanahttp://localhost:3030https://{domain}/grafana/
Keycloakhttp://localhost:8080müşterinin ayrı instance’ı
Seq (UI)http://localhost:5342müşterinin ayrı instance’ı
nginx-proxy, container’lardaki VIRTUAL_HOST / VIRTUAL_PATH / VIRTUAL_DEST / VIRTUAL_PORT env’lerine bakarak vhost üretir; LETSENCRYPT_HOST ile acme-companion sertifika alır.

Bu bölümde

Dev Docker

Local stack, servis listesi, otomatik migration/seed.

Stage Docker

nginx-proxy + Let’s Encrypt + dış altyapı.

Prod Docker

On-prem, sertifika, Hetzner çok-proje.

Ortam değişkenleri

.env örnek dosyaları, secret kategorileri.

Gözlemlenebilirlik

Seq, Prometheus, Grafana, health checks.

Komutlar

Docker, dotnet ef, npm, script referansı.