> ## Documentation Index
> Fetch the complete documentation index at: https://docs.diyanet.pro/llms.txt
> Use this file to discover all available pages before exploring further.

# Ön Gereksinimler

> Geliştirme ortamını kurmadan önce makinenizde olması gereken araçlar ve IDE seçenekleri

Bu sayfa, **Diyanet Clean Architecture** şablonunu local'de ayağa kaldırmadan önce makinenizde bulunması gereken araçları adım adım listeler. Şablon bir **monorepo**'dur: tek repo içinde .NET 10 API + iki React SPA + tüm altyapı (PostgreSQL, Redis, RabbitMQ, Keycloak, Seq) Docker ile gelir.

<Note>
  **En kısa yol:** Yalnızca **Docker Desktop** ve **Git** kurarsanız, `docker compose up -d --build` ile her şey (API + SPA'lar + altyapı) container içinde ayağa kalkar. .NET SDK ve Node.js yalnızca container **dışında** kod yazıp debug etmek istiyorsanız gereklidir.
</Note>

## Zorunlu araçlar

<CardGroup cols={2}>
  <Card title="Docker Desktop" icon="docker">
    Tüm servisleri tek komutla çalıştırmak için. Windows'ta **WSL 2 backend** açık olmalı.
  </Card>

  <Card title="Git" icon="git-alt">
    Repoyu klonlamak ve sürüm kontrolü için.
  </Card>

  <Card title=".NET 10 SDK" icon="microsoft">
    API'yi IDE'de derlemek/debug etmek ve EF Core migration üretmek için.
  </Card>

  <Card title="Node.js 22" icon="node-js">
    SPA'ları (Website + Admin) container dışında geliştirmek için.
  </Card>
</CardGroup>

### 1. Docker Desktop

Tüm altyapı (PostgreSQL 16, Redis 7, RabbitMQ 3.13, Keycloak 26, Seq) ve uygulamalar Docker Compose ile çalışır.

* **İndir:** [docker.com/products/docker-desktop](https://www.docker.com/products/docker-desktop/)
* **Minimum:** Docker Desktop 4.30+ (Compose v2 dahili gelir)
* **Windows:** Ayarlardan **WSL 2 based engine** açık olmalı.

Doğrulama:

```bash theme={null}
docker --version          # Docker version 27.x veya üzeri
docker compose version    # Docker Compose version v2.x
```

### 2. Git

* **İndir:** [git-scm.com](https://git-scm.com/downloads)

```bash theme={null}
git --version             # git version 2.40+
```

### 3. .NET 10 SDK

Proje `net10.0` hedefler. `global.json` **yoktur**, dolayısıyla sistemdeki en güncel .NET 10 SDK kullanılır.

* **İndir:** [dotnet.microsoft.com/download/dotnet/10.0](https://dotnet.microsoft.com/download/dotnet/10.0)

```bash theme={null}
dotnet --version          # 10.0.xxx dönmeli
dotnet --list-sdks        # 10.0.x bir SDK listelenmeli
```

<Tip>
  EF Core migration komutları için `dotnet-ef` global aracını da kurun:

  ```bash theme={null}
  dotnet tool install --global dotnet-ef
  dotnet ef --version       # 10.x
  ```
</Tip>

### 4. Node.js 22

İki SPA (`Presentation.Website`, `Presentation.Admin`) **React 19 + Vite 6 + TypeScript 5.8** ile yazılmıştır. Docker imajları `node:22-alpine` kullanır; yerelde de **Node 22** önerilir.

* **İndir:** [nodejs.org](https://nodejs.org/) (LTS 22.x)

```bash theme={null}
node --version            # v22.x
npm --version             # 10.x
```

<Note>
  Repoda `.nvmrc` veya `engines` kısıtı yoktur; Node 22 kullanın. Paket yöneticisi **npm**'dir (her SPA'da `package-lock.json` mevcut).
</Note>

## IDE / Editör seçenekleri

Proje IDE-bağımsızdır; aşağıdakilerden herhangi biriyle çalışabilirsiniz. Backend (.NET) ve frontend (TypeScript) için tercih farklı olabilir.

<Tabs>
  <Tab title="Visual Studio 2026">
    Backend (.NET) geliştirme için en zengin deneyim (Windows).

    * **Workload:** *ASP.NET and web development* + *.NET desktop development*.
    * **Container araçları:** *Container development tools* workload'u kuruluysa `docker-compose.dcproj` üzerinden F5 ile API + bağımlılıklar başlatılabilir.
    * Solution dosyası **`DiyanetCleanArchitecture.slnx`** (yeni XML tabanlı slnx formatı) — VS 2022 17.10+ ve VS 2026 destekler.
  </Tab>

  <Tab title="VS Code">
    Hem backend hem frontend için hafif ve çok yönlü. Önerilen eklentiler:

    * **C# Dev Kit** (ms-dotnettools.csdevkit)
    * **ESLint**, **Tailwind CSS IntelliSense** (SPA'lar için)
    * **Docker** (ms-azuretools.vscode-docker)
    * **Prettier**
  </Tab>

  <Tab title="Cursor">
    VS Code tabanlı, AI-first editör. VS Code eklentileri büyük ölçüde uyumludur (C# Dev Kit, ESLint, Tailwind). `.slnx` ve `tsconfig` projeleri sorunsuz açılır.
  </Tab>

  <Tab title="Antigravity">
    Google'ın AI-first IDE'si. VS Code uzantı ekosistemiyle uyumludur; C# ve TypeScript eklentilerini kurarak hem API hem SPA'ları açabilirsiniz.
  </Tab>

  <Tab title="JetBrains Rider">
    .NET için güçlü bir alternatif (Windows/macOS/Linux). `.slnx`, EF Core araçları ve Docker entegrasyonu yerleşik gelir.
  </Tab>
</Tabs>

## Opsiyonel araçlar

| Araç                  | Ne için                                        | Not                                           |
| --------------------- | ---------------------------------------------- | --------------------------------------------- |
| **dotnet-ef**         | EF Core migration üretme/uygulama              | `dotnet tool install -g dotnet-ef`            |
| **NSwag CLI**         | SPA'larda OpenAPI'den TypeScript client üretme | `npm run generate-api` script'i çağırır       |
| **pgAdmin / DBeaver** | PostgreSQL'i incelemek                         | Dev compose'da pgAdmin `:5050`'de hazır gelir |
| **RedisInsight**      | Redis'i incelemek                              | Dev compose'da `:5540`'ta hazır gelir         |
| **PowerShell 7**      | `scripts/*.ps1` Keycloak yardımcıları          | Windows'ta yerleşik PowerShell de çalışır     |

## Donanım / işletim sistemi

* **OS:** Windows 10/11, macOS veya Linux. (Şablon Windows Server üzerinde de üretime alınır — bkz. [Operasyon › Docker Prod](/operations/docker-prod).)
* **RAM:** Tüm dev yığını (API + 2 SPA + Postgres + Redis + RabbitMQ + Keycloak + Seq + gözlemlenebilirlik) aynı anda kalkacağı için **en az 8 GB**, rahat çalışma için **16 GB** önerilir.
* **Boş port'lar:** `5005, 3000, 3001, 5432, 6379, 5672, 15672, 8080, 5341, 5342, 5050, 5540, 9090, 3030` boş olmalı.

## Sonraki adım

Araçlar hazır olduğunda iki yol var:

<CardGroup cols={2}>
  <Card title="Şablondan yeni proje üret" icon="wand-magic-sparkles" href="/getting-started/template-usage">
    `dotnet new` ile bu şablonu kendi proje adınızla klonlayın.
  </Card>

  <Card title="Doğrudan ayağa kaldır" icon="rocket" href="/getting-started/quickstart">
    Repoyu klonlayıp `docker compose up -d --build` ile çalıştırın.
  </Card>
</CardGroup>
