4ef4bfbeef
- payment-gateway.md: سکشن ۸-۱۳ (ZarinPal callback, تخفیف ۱۰۰٪, VAT, ExpirePendingOrders, DeliveryStatus mapping, Production deploy) - CICD-PIPELINE-GUIDE.md: باگ cross-deploy, قالب workflow Production, جدول مقایسه دو محیط - INFRASTRUCTURE-GUIDE.md: سرور Production (45.149.79.127), DB KBS, Proto v0.0.179 - DISCOUNT-STORE-STATUS.md: وضعیت Production Deploy, فلوی پرداخت جدید - SERVER-MIRRORS-CONFIG.md: registries.yaml سرور Production - INDEX.md: تاریخ, توضیحات بروز, لینکهای سریع جدید
259 lines
6.6 KiB
Markdown
259 lines
6.6 KiB
Markdown
# Server Mirrors Configuration
|
|
|
|
**Staging Server:** 194.5.195.53
|
|
**Production Server:** 45.149.79.127
|
|
**Date:** 2026-02-17
|
|
|
|
---
|
|
|
|
## 1. Docker Registry Mirrors (K3s)
|
|
|
|
### Staging — `/etc/rancher/k3s/registries.yaml` (194.5.195.53)
|
|
|
|
### ترتیب Pull کردن ایمیجها:
|
|
1. **Nexus** (194.5.195.53:32082) - لوکال
|
|
2. **ArvanCloud** (docker.arvancloud.ir) - ایران
|
|
3. **Original Registry** - اصلی
|
|
|
|
### رجیستریهای پیکربندی شده:
|
|
|
|
| Registry | Mirrors (به ترتیب اولویت) |
|
|
|----------|--------------------------|
|
|
| `docker.io` | Nexus → ArvanCloud → registry-1.docker.io |
|
|
| `ghcr.io` | Nexus → ArvanCloud |
|
|
| `gcr.io` | Nexus → ArvanCloud |
|
|
| `registry.k8s.io` | Nexus → ArvanCloud |
|
|
| `quay.io` | Nexus → ArvanCloud |
|
|
| `mcr.microsoft.com` | Nexus → ArvanCloud |
|
|
|
|
### کانفیگ فعلی:
|
|
|
|
```yaml
|
|
mirrors:
|
|
"docker.io":
|
|
endpoint:
|
|
- "http://194.5.195.53:32082"
|
|
- "https://docker.arvancloud.ir"
|
|
- "https://registry-1.docker.io"
|
|
"ghcr.io":
|
|
endpoint:
|
|
- "http://194.5.195.53:32082"
|
|
- "https://docker.arvancloud.ir"
|
|
"gcr.io":
|
|
endpoint:
|
|
- "http://194.5.195.53:32082"
|
|
- "https://docker.arvancloud.ir"
|
|
"registry.k8s.io":
|
|
endpoint:
|
|
- "http://194.5.195.53:32082"
|
|
- "https://docker.arvancloud.ir"
|
|
"quay.io":
|
|
endpoint:
|
|
- "http://194.5.195.53:32082"
|
|
- "https://docker.arvancloud.ir"
|
|
"mcr.microsoft.com":
|
|
endpoint:
|
|
- "http://194.5.195.53:32082"
|
|
- "https://docker.arvancloud.ir"
|
|
configs:
|
|
"194.5.195.53:32082":
|
|
auth:
|
|
username: admin
|
|
password: 87zH26nbqT
|
|
```
|
|
|
|
### اعمال تغییرات:
|
|
```bash
|
|
systemctl restart k3s
|
|
```
|
|
|
|
### Production — `/etc/rancher/k3s/registries.yaml` (45.149.79.127)
|
|
|
|
Production server از staging registry ها pull میکنه:
|
|
|
|
```yaml
|
|
mirrors:
|
|
"docker.io":
|
|
endpoint:
|
|
- "http://194.5.195.53:32082"
|
|
- "https://docker.arvancloud.ir"
|
|
- "https://registry-1.docker.io"
|
|
"194.5.195.53:32082":
|
|
endpoint:
|
|
- "http://194.5.195.53:32082"
|
|
"194.5.195.53:30080":
|
|
endpoint:
|
|
- "http://194.5.195.53:30080"
|
|
"git.foursat.afrino.co":
|
|
endpoint:
|
|
- "https://git.foursat.afrino.co"
|
|
"git.se.kbs1.ir":
|
|
endpoint:
|
|
- "https://git.se.kbs1.ir"
|
|
|
|
configs:
|
|
"194.5.195.53:32082":
|
|
auth:
|
|
username: admin
|
|
password: 87zH26nbqT
|
|
"194.5.195.53:30080":
|
|
auth:
|
|
username: admin
|
|
password: 87zH26nbqT
|
|
"git.foursat.afrino.co":
|
|
auth:
|
|
username: admin
|
|
password: 87zH26nbqT
|
|
tls:
|
|
insecure_skip_verify: true
|
|
"git.se.kbs1.ir":
|
|
auth:
|
|
username: admin
|
|
password: 87zH26nbqT
|
|
tls:
|
|
insecure_skip_verify: true
|
|
```
|
|
|
|
> ⚠️ Production از `194.5.195.53:30080` (Gitea container registry) برای pull ایمیجهای CI/CD استفاده میکنه.
|
|
|
|
---
|
|
|
|
## 2. APT Package Mirrors (Ubuntu 24.04 Noble)
|
|
|
|
فایل: `/etc/apt/sources.list.d/ubuntu.sources`
|
|
|
|
### ترتیب دانلود پکیجها:
|
|
1. **ArvanCloud** (mirror.arvancloud.ir) - ایران
|
|
2. **Ubuntu Official** (archive.ubuntu.com) - اصلی
|
|
|
|
### کانفیگ فعلی:
|
|
|
|
```
|
|
Types: deb
|
|
URIs: http://mirror.arvancloud.ir/ubuntu http://archive.ubuntu.com/ubuntu
|
|
Suites: noble noble-updates noble-backports
|
|
Components: main universe restricted multiverse
|
|
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
|
|
|
|
Types: deb
|
|
URIs: http://mirror.arvancloud.ir/ubuntu http://security.ubuntu.com/ubuntu
|
|
Suites: noble-security
|
|
Components: main universe restricted multiverse
|
|
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
|
|
```
|
|
|
|
### اعمال تغییرات:
|
|
```bash
|
|
apt update
|
|
```
|
|
|
|
### بکاپ:
|
|
```
|
|
/etc/apt/sources.list.d/ubuntu.sources.bak
|
|
```
|
|
|
|
---
|
|
|
|
## 3. NPM Mirror (Runflare)
|
|
|
|
فایل: `/root/.npmrc`
|
|
|
|
### تنظیم فعلی:
|
|
```
|
|
registry=https://registry.npmjs.org
|
|
# Fallback mirrors (use if main is slow)
|
|
# npm config set registry https://mirror-npm.runflare.com
|
|
```
|
|
|
|
### برای تغییر به میرور ایرانی:
|
|
```bash
|
|
npm config set registry https://mirror-npm.runflare.com
|
|
```
|
|
|
|
### برای برگشت به اصلی:
|
|
```bash
|
|
npm config set registry https://registry.npmjs.org
|
|
```
|
|
|
|
---
|
|
|
|
## 4. PIP/PyPI Mirror (Runflare)
|
|
|
|
فایل: `/root/.config/pip/pip.conf`
|
|
|
|
### تنظیم فعلی (با fallback خودکار):
|
|
```ini
|
|
[global]
|
|
index-url = https://pypi.org/simple
|
|
extra-index-url = https://mirror-pypi.runflare.com/simple
|
|
trusted-host = mirror-pypi.runflare.com
|
|
pypi.org
|
|
```
|
|
|
|
**توضیح:** PIP اول از `pypi.org` میگیره، اگه نبود از `mirror-pypi.runflare.com` میگیره.
|
|
|
|
---
|
|
|
|
## 5. Nexus Repository Manager
|
|
|
|
| Item | Value |
|
|
|------|-------|
|
|
| URL | http://194.5.195.53:32082 |
|
|
| UI | http://194.5.195.53:32081 |
|
|
| Username | admin |
|
|
| Password | 87zH26nbqT |
|
|
|
|
### Docker Repositories:
|
|
|
|
| Name | Type | Remote URL |
|
|
|------|------|------------|
|
|
| `docker-hosted` | hosted | - |
|
|
| `docker-arvancloud-proxy` | proxy | https://docker.arvancloud.ir |
|
|
| `docker-hub-proxy` | proxy | https://registry-1.docker.io |
|
|
| `docker-all` | group | hosted → arvancloud → docker-hub |
|
|
|
|
### NuGet Repositories:
|
|
|
|
| Name | Type | Remote URL |
|
|
|------|------|------------|
|
|
| `nuget-hosted` | hosted | - |
|
|
| `foursat-nuget-hosted` | hosted | - |
|
|
| `nuget-runflare-proxy` | proxy | https://mirror-nuget.runflare.com/v3/index.json |
|
|
| `nuget.org-proxy` | proxy | https://api.nuget.org/v3/index.json |
|
|
| `nuget-group` | group | hosted → runflare → nuget.org |
|
|
|
|
### ایمیجهای ذخیره شده با ورژن:
|
|
|
|
| Image | Tags |
|
|
|-------|------|
|
|
| `mcr.microsoft.com/mssql/server` | `2022-CU16`, `2022-latest` |
|
|
| `gitea/gitea` | `1.25.3`, `latest` |
|
|
| `gitea/act_runner` | `0.2.11`, `latest` |
|
|
| `registry.k8s.io/ingress-nginx/controller` | `v1.14.1` |
|
|
|
|
---
|
|
|
|
## 6. Iranian Mirror URLs Summary
|
|
|
|
| سرویس | URL | استفاده |
|
|
|-------|-----|---------|
|
|
| Docker | `https://docker.arvancloud.ir` | K3s + Nexus |
|
|
| Ubuntu APT | `http://mirror.arvancloud.ir/ubuntu` | apt sources |
|
|
| NuGet | `https://mirror-nuget.runflare.com/v3/index.json` | Nexus proxy |
|
|
| NPM | `https://mirror-npm.runflare.com` | npmrc (دستی) |
|
|
| PyPI | `https://mirror-pypi.runflare.com/simple` | pip.conf (fallback) |
|
|
|
|
---
|
|
|
|
## 7. مزایای این پیکربندی
|
|
|
|
✅ **سرعت بالا** - میرورهای ایرانی سریعترن
|
|
✅ **Fallback خودکار** - اگه میرور در دسترس نبود، اصلی استفاده میشه
|
|
✅ **Offline Support** - ایمیجهای مهم در Nexus لوکال هستن
|
|
✅ **کاهش ترافیک خارجی** - اول از سرورهای داخلی استفاده میشه
|
|
✅ **Cache در Nexus** - پکیجها و ایمیجها cache میشن
|
|
|
|
---
|
|
|
|
*Last Updated: 2026-01-29*
|