Files
football-next/DEPLOY_IRAN.md

108 lines
3.2 KiB
Markdown

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