# Repository Strategy ## استراتژی فعلی: Single Repository ✅ همه چیز در یک repository: `peikarband/landing` ### مزایا: - ساده و قابل مدیریت - همه چیز در یک جا - مناسب برای یک پروژه ### ساختار: ``` peikarband/landing/ ├── .woodpecker.yml # Application pipeline ├── .woodpecker-base.yml # Base image pipeline ├── docker/ │ ├── Dockerfile # Application │ └── Dockerfile.base # Base image └── ... ``` --- ## استراتژی آینده: Multi Repository (اختیاری) اگر پروژه‌های بیشتری اضافه شد، می‌توانید base را جدا کنید. ### مراحل جداسازی: #### 1. ایجاد Repository جدید ```bash # Create new repo mkdir peikarband-base-images cd peikarband-base-images git init # Structure mkdir -p python311-node20 ``` #### 2. انتقال Base Files ```bash # Copy base files cp ../landing/docker/Dockerfile.base python311-node20/Dockerfile cp ../landing/.woodpecker-base.yml .woodpecker.yml ``` #### 3. Update Application Repository در `peikarband/landing`: ```dockerfile # docker/Dockerfile ARG BASE_IMAGE=hub.peikarband.ir/peikarband/base:python311-node20 FROM ${BASE_IMAGE} AS builder ``` #### 4. Registry Organization ``` Registry Structure: hub.peikarband.ir/ ├── peikarband/base # Base images repo │ ├── python311-node20:latest │ └── python312-node21:latest └── peikarband/landing # Application └── latest ``` --- ## زمان جداسازی **جدا کنید وقتی:** - ✅ 3+ پروژه از همان base استفاده می‌کنند - ✅ تیم 5+ نفری دارید - ✅ Base versioning پیچیده شد - ✅ نیاز به CI/CD مستقل برای base دارید **جدا نکنید وقتی:** - ❌ فقط یک پروژه دارید (فعلی) - ❌ تیم کوچک است (1-3 نفر) - ❌ Base خیلی تغییر نمی‌کند --- ## توصیه **الان:** یک repository کافیه! 👍 **آینده:** اگر پروژه دوم شروع شد، مجدداً ارزیابی کنید.