# راهنمای دیپلوی در سرورهای ایران

## مشکل
سرورهای ایران به دلیل تحریم‌ها نمی‌توانند به `binaries.prisma.sh` دسترسی داشته باشند و Prisma نمی‌تواند باینری‌های لازم را دانلود کند.

## راه‌حل پیاده‌سازی شده

### دانلود Manual باینری‌های Prisma

روی سیستمی با دسترسی به اینترنت (مثل لپ‌تاپ شخصی با VPN):

```bash
# اجرای اسکریپت دانلود
bash scripts/download-prisma-engines.sh

# Commit کردن فایل‌ها
git add prisma/engines
git commit -m "Add Prisma engines for offline deployment"
git push
```

این کار باینری‌های Prisma را در پوشه `prisma/engines` قرار می‌دهد و Dockerfile از آن‌ها استفاده می‌کند.

## راه‌حل‌های جایگزین

### الف) Build روی سیستم محلی و Push کردن Image

اگر دانلود engines کار نکرد:

```bash
# روی سیستم با اینترنت
docker build -t football-next:latest \
  --build-arg DATABASE_URL="your-db-url" \
  --build-arg NEXTAUTH_URL="your-url" \
  --build-arg NEXTAUTH_SECRET="your-secret" \
  .

# Save کردن image
docker save football-next:latest | gzip > football-next.tar.gz

# انتقال به سرور و load کردن
gunzip -c football-next.tar.gz | docker load
```

### ب) استفاده از Registry خصوصی

1. Push کردن image به Docker Hub یا registry خصوصی
2. Pull کردن از سرور ایران

```bash
# روی سیستم با اینترنت
docker build -t your-username/football-next:latest .
docker push your-username/football-next:latest

# روی سرور ایران
docker pull your-username/football-next:latest
```

### ج) استفاده از Proxy

اگر سرور به proxy دسترسی دارد:

```dockerfile
# در Dockerfile قبل از RUN commands
ENV HTTP_PROXY=http://your-proxy:port
ENV HTTPS_PROXY=http://your-proxy:port
```

## تست محلی

```bash
# Build
docker build -t football-next:test \
  --build-arg DATABASE_URL="postgresql://user:pass@host:5432/db" \
  --build-arg NEXTAUTH_URL="http://localhost:3000" \
  --build-arg NEXTAUTH_SECRET="test-secret" \
  .

# Run
docker run -p 3000:3000 football-next:test
```

## نکات مهم

1. فایل‌های `prisma/engines/*` باید در git commit شوند
2. این فایل‌ها binary هستند و حجم دارند (~50MB)
3. هر بار که Prisma version تغییر کرد، باید engines را دوباره دانلود کنید
4. متغیرهای محیطی را در Coolify تنظیم کنید

## متغیرهای محیطی مورد نیاز

```env
DATABASE_URL=postgresql://user:password@host:5432/dbname
NEXTAUTH_URL=https://your-domain.com
NEXTAUTH_SECRET=your-secret-key-min-32-chars
IPPANEL_TOKEN=your-ippanel-token (optional)
```

## عیب‌یابی

اگر build با خطا مواجه شد:

1. بررسی کنید که `prisma/engines` وجود دارد
2. بررسی کنید که فایل‌ها executable هستند
3. لاگ‌های کامل Docker را بررسی کنید
4. از روش "Build روی سیستم محلی" استفاده کنید

