146 lines
3.5 KiB
Markdown
146 lines
3.5 KiB
Markdown
# سایتهای مورد نیاز برای Build و Deploy
|
||
|
||
## سایتهای اصلی که باید باز باشند:
|
||
|
||
### ۱. برای Docker Build
|
||
```
|
||
registry.hub.docker.com (Docker Hub)
|
||
registry-1.docker.io
|
||
production.cloudflare.docker.com
|
||
```
|
||
|
||
### ۲. برای NPM Packages
|
||
```
|
||
registry.npmjs.org
|
||
registry.npmjs.com
|
||
```
|
||
|
||
### ۳. برای Prisma (مشکل اصلی!)
|
||
```
|
||
binaries.prisma.sh
|
||
binaries.prismacdn.com
|
||
```
|
||
|
||
### ۴. برای Node.js Base Image
|
||
```
|
||
hub.docker.com
|
||
```
|
||
|
||
## راهحلها برای دسترسی محدود:
|
||
|
||
### گزینه ۱: استفاده از Shecan یا Electro DNS (سادهترین)
|
||
این DNSها معمولاً دسترسی به سایتهای فنی رو باز میکنند:
|
||
|
||
**Shecan:**
|
||
- Primary: `178.22.122.100`
|
||
- Secondary: `185.51.200.2`
|
||
|
||
**Electro:**
|
||
- Primary: `78.157.42.100`
|
||
- Secondary: `78.157.42.101`
|
||
|
||
**تنظیم در سرور:**
|
||
```bash
|
||
# ویرایش DNS
|
||
sudo nano /etc/resolv.conf
|
||
|
||
# اضافه کردن
|
||
nameserver 178.22.122.100
|
||
nameserver 185.51.200.2
|
||
```
|
||
|
||
### گزینه ۲: استفاده از Docker Registry Mirror ایرانی
|
||
|
||
**تنظیم Docker Mirror:**
|
||
```bash
|
||
sudo nano /etc/docker/daemon.json
|
||
```
|
||
|
||
```json
|
||
{
|
||
"registry-mirrors": [
|
||
"https://docker.iranrepo.ir",
|
||
"https://registry.docker.ir"
|
||
]
|
||
}
|
||
```
|
||
|
||
```bash
|
||
sudo systemctl restart docker
|
||
```
|
||
|
||
### گزینه ۳: استفاده از NPM Registry ایرانی
|
||
|
||
**تنظیم NPM Registry:**
|
||
```bash
|
||
npm config set registry https://registry.npmjs.org
|
||
# یا
|
||
npm config set registry https://npm.iranrepo.ir
|
||
```
|
||
|
||
### گزینه ۴: Build کامل روی سیستم خارج (توصیه میشود)
|
||
|
||
اگر هیچکدام کار نکرد، بهترین راه:
|
||
|
||
1. **روی سرور خارج یا VPS با IP خارج:**
|
||
```bash
|
||
git clone https://mugit.ir/alisaeed/football-next.git
|
||
cd football-next
|
||
|
||
docker build -t football-next:latest \
|
||
--build-arg DATABASE_URL="postgresql://user:pass@host:5432/db" \
|
||
--build-arg NEXTAUTH_URL="https://yourdomain.com" \
|
||
--build-arg NEXTAUTH_SECRET="your-secret-min-32-chars" \
|
||
.
|
||
|
||
docker save football-next:latest | gzip > football-next.tar.gz
|
||
```
|
||
|
||
2. **انتقال به سرور ایران:**
|
||
```bash
|
||
# با scp
|
||
scp football-next.tar.gz user@iran-server:/tmp/
|
||
|
||
# یا آپلود به سرور فایل ایرانی و دانلود روی سرور
|
||
```
|
||
|
||
3. **Load در سرور ایران:**
|
||
```bash
|
||
gunzip -c football-next.tar.gz | docker load
|
||
docker images # بررسی image
|
||
```
|
||
|
||
## تست دسترسی به سایتها:
|
||
|
||
```bash
|
||
# تست DNS و دسترسی
|
||
ping registry.npmjs.org
|
||
ping binaries.prisma.sh
|
||
curl -I https://registry.npmjs.org
|
||
curl -I https://binaries.prisma.sh
|
||
```
|
||
|
||
## اگر Coolify استفاده میکنید:
|
||
|
||
Coolify خودش Docker build میگیره، پس نیاز به تنظیمات زیر داره:
|
||
|
||
1. **تنظیم DNS سرور** (Shecan یا Electro)
|
||
2. **تنظیم Docker Registry Mirror**
|
||
3. **یا استفاده از Pre-built Image**
|
||
|
||
### استفاده از Pre-built Image در Coolify:
|
||
|
||
1. Image رو روی Docker Hub یا Registry خصوصی push کنید
|
||
2. در Coolify به جای Git، از "Docker Image" استفاده کنید
|
||
3. آدرس image رو وارد کنید: `your-username/football-next:latest`
|
||
|
||
## خلاصه توصیه:
|
||
|
||
**برای سرور ایران بدون VPN:**
|
||
1. تنظیم Shecan DNS
|
||
2. تنظیم Docker Mirror ایرانی
|
||
3. اگر کار نکرد → Build روی سرور خارج و انتقال Image
|
||
|
||
**سریعترین راه:**
|
||
Build روی سرور خارج و انتقال Image (یک بار 200-300MB حجم)
|