# راهنمای دیپلوی در سرورهای ایران ## مشکل سرورهای ایران به دلیل تحریم‌ها نمی‌توانند به `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 روی سیستم محلی" استفاده کنید