{
  "title": "پیش‌ نیازها",
  "slug": "team/devops/prerequisites",
  "url": "/docs/team/devops/prerequisites",
  "frontmatter": {
    "layout": "doc",
    "title": "پیش‌ نیازها",
    "description": "پیش‌نیازهای مورد نیاز برای راه‌اندازی محیط توسعه و استقرار پلتفرم NONS",
    "version": "1.0.0",
    "status": "PRIVATE",
    "author": "xoxxel",
    "owner": "Devops Team",
    "created_at": "2026-06-15",
    "updated_at": "2026-06-15",
    "tags": "",
    "reviewers": ""
  },
  "sections": [
    {
      "level": 1,
      "heading": "پیش‌ نیازها",
      "content": "**Prerequisites**\n\n---"
    },
    {
      "level": 2,
      "heading": "۱. ابزارهای خط فرمان",
      "content": "| ابزار | حداقل نسخه | توضیح | لینک نصب |\n|-------|-----------|-------|---------|\n| Git | ۲.۴۰ | کنترل نسخه | [git-scm.com](https://git-scm.com) |\n| Node.js | ۲۰ (LTS) | اجرای TypeScript | [nodejs.org](https://nodejs.org) |\n| pnpm | ۱۰.۳۱.۰ | مدیریت پکیج | `npm i -g pnpm@10.31.0` |\n| Go | ۱.۲۲ | کامپایل Core | [go.dev](https://go.dev) |\n| Docker | ۲۴.۰ | کانتینر | [docker.com](https://docker.com) |"
    },
    {
      "level": 3,
      "heading": "Kubernetes (تنها مسیر رسمی توسعه و استقرار)",
      "content": "| ابزار | حداقل نسخه | توضیح | نصب |\n|-------|-----------|-------|-----|\n| K3d | v5.6 | کलाستر K3s در Docker | `curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh \\| bash` |\n| Helm | v3.12 | مدیریت چارت‌ها | [helm.sh](https://helm.sh/docs/intro/install/) |\n| Kubectl | v1.30 | CLI کوبرنتیز | همراه Docker Desktop یا `curl -LO \"https://dl.k8s.io/release/v1.30.0/bin/windows/amd64/kubectl.exe\"` |\n\n---"
    },
    {
      "level": 2,
      "heading": "۲. تأیید نصب",
      "content": "پس از نصب ابزارها، اجرای دستورات زیر باید خروجی موفق داشته باشد:\n\n```bash\ngit --version\nnode --version   # >= 20\npnpm --version   # 10.31.0\ngo version       # >= 1.22\ndocker --version\nk3d --version    # >= v5.6\nhelm version     # >= v3.12\nkubectl version --client\n```\n\n---"
    },
    {
      "level": 2,
      "heading": "۳. Clone و نصب وابستگی‌ها",
      "content": "```bash"
    },
    {
      "level": 1,
      "heading": "Clone مخزن",
      "content": "git clone <repo-url>\ncd nons/nons-api"
    },
    {
      "level": 1,
      "heading": "نصب وابستگی‌های Node.js",
      "content": "pnpm install\n```\n\n---"
    },
    {
      "level": 2,
      "heading": "۴. پیکربندی محیط",
      "content": "یک فایل `.env` از روی نمونه ایجاد کنید:\n\n```bash\ncp .env.example .env\n```\n\nفایل `.env.example` حاوی مقادیر پیش‌فرض توسعه است. در محیط پروداکشن، تمام secrets باید به Kubernetes Secrets منتقل شوند.\n\n---"
    },
    {
      "level": 2,
      "heading": "۵. سرویس‌های خارجی مورد نیاز",
      "content": "NONS به سرویس‌های زیرساختی زیر وابسته است (مسیر رسمی اجرا چارت‌های Helm در کوبرنتیز است):\n\n| سرویس | نقش | پورت پیش‌فرض |\n|-------|-----|-------------|\n| PostgreSQL 16 | دیتابیس مرکزی + Kratos + Hydra | ۵۴۳۲ |\n| Redis 7 | کش، Rate Limiting | ۶۳۷۹ |\n| NATS 2.10 | Event Bus | ۴۲۲۲ |\n| MongoDB 7 | ذخیره‌سازی چت (در دست توسعه - نقشه راه) | ۲۷۰۱۷ |\n| TigerBeetle | دفترکل مالی (در دست توسعه - نقشه راه) | ۳۰۰۰ |\n\n---"
    },
    {
      "level": 2,
      "heading": "۶. پورت‌های مورد نیاز",
      "content": "اطمینان حاصل کنید پورت‌های زیر روی سیستم میزبان آزاد هستند:\n\n| پورت | سرویس | محیط |\n|------|-------|------|\n| ۸۰ | Traefik Gateway | K3d (رسمی) |\n| ۳۰۰۱ | Auth Service | K3d (رسمی) |\n| ۴۴۳۳ | Kratos Public | داخلی |\n| ۴۴۳۴ | Kratos Admin | داخلی |\n| ۴۴۴۴ | Hydra Public | داخلی |\n| ۴۴۴۵ | Hydra Admin | داخلی |\n| ۸۰۸۵ | Traefik Dashboard | K3d (رسمی) |\n| ۹۰۹۰ | Core Metrics | K3d (رسمی) |\n\n---"
    },
    {
      "level": 2,
      "heading": "۷. دانش فنی مورد نیاز",
      "content": "توسعه‌دهنده برای کار با پلتفرم باید آشنایی داشته باشد با:\n\n- TypeScript / NestJS (سرویس‌های کسب‌وکار)\n- Go (Core Service)\n- Docker / Kubernetes\n- NATS JetStream\n- Ory Kratos + Hydra\n- Protocol Buffers\n- گیت و GitHub"
    }
  ]
}