d7c32dab2a
- BackOffice/docs → totalDoc/backoffice/ (AUDIT + CHANGELOG) - FrontOffice/docs → totalDoc/frontoffice/ (CHANGELOG + UI-UNIFICATION-PLAN) - CMS/README.md → totalDoc/cms/CMS-README.md - DataMigration/README.md → totalDoc/migration/DATAMIGRATION-README.md - deployment/README.md → totalDoc/deployment/DEPLOYMENT-README.md - Updated INDEX.md with new paths and sections
162 lines
5.5 KiB
Markdown
162 lines
5.5 KiB
Markdown
# 🚀 FourSat Offline Deployment
|
|
|
|
این دایرکتوری شامل scripts و مستندات برای deploy کردن سرویسهای FourSat **بدون نیاز به اینترنت** است.
|
|
|
|
## ⚡ Quick Start
|
|
|
|
### گزینه 1: Setup خودکار (پیشنهادی)
|
|
|
|
**روی ماشینی با Docker و اینترنت:**
|
|
|
|
```bash
|
|
cd /home/masoud/Apps/project/FourSat/deployment
|
|
./setup-offline-complete.sh
|
|
```
|
|
|
|
این اسکریپت:
|
|
- ✅ Images را pull میکند
|
|
- ✅ Export میکند به `.tar`
|
|
- ✅ به server transfer میکند
|
|
- ✅ در containerd server import میکند
|
|
- ✅ تمام!
|
|
|
|
### گزینه 2: Setup دستی
|
|
|
|
اگر Docker روی این ماشین نیست، مستندات کامل را بخوانید:
|
|
|
|
```bash
|
|
cat OFFLINE-SETUP-GUIDE.md
|
|
```
|
|
|
|
---
|
|
|
|
## 📁 فایلهای مهم
|
|
|
|
### 🎯 اسکریپتهای اصلی
|
|
- **`setup-offline-complete.sh`** ⭐ - Setup کامل خودکار (نیاز به Docker)
|
|
- **`export-import-images.sh`** - Export/Import دستی images
|
|
- **`OFFLINE-SETUP-GUIDE.md`** 📚 - راهنمای کامل قدم به قدم
|
|
|
|
### 📖 مستندات
|
|
- **`README.md`** - این فایل
|
|
- **`QUICK-REFERENCE.md`** - مرجع سریع commands
|
|
- **`DEPLOYMENT-GUIDE.md`** - راهنمای deployment
|
|
- **`SERVER-SETUP-GUIDE.md`** - تنظیمات server
|
|
- **`CHANGES-SUMMARY.md`** - لیست تغییرات انجام شده
|
|
- **`SETUP-INSTRUCTIONS.md`** - دستورالعملهای setup
|
|
|
|
### 🛠️ اسکریپتهای کمکی
|
|
- `pull-base-images.sh` - Pull کردن base images
|
|
- `save-images.sh` - ذخیره images به tar
|
|
- `load-images.sh` - بارگذاری images از tar
|
|
- `cache-nuget-packages.sh` - Cache کردن NuGet packages
|
|
- `build-all-offline.sh` - Build تمام سرویسها offline
|
|
- `cleanup.sh` - پاکسازی فایلهای build
|
|
- `test-services.sh` - تست سرویسهای deploy شده
|
|
- `k8s-deploy.sh` - Deploy به Kubernetes
|
|
- `k8s-health-check.sh` - بررسی سلامت deployments
|
|
- `quick-start.sh` - Setup تعاملی
|
|
- `server-cache-images.sh` - Cache images روی server
|
|
- `load-cached-images.sh` - بارگذاری cached images
|
|
- `verify-cache.sh` - بررسی cache
|
|
- `pull-images-to-node.sh` - Pull به Kubernetes node
|
|
|
|
---
|
|
|
|
## 🔍 چکلیست Setup
|
|
|
|
- [ ] **Base images در containerd server** (روی node نه pod)
|
|
- [ ] **Workflows بدون proxy** تنظیم شدهاند
|
|
- [ ] **DNS = "0.0.0.0"** برای جلوگیری از دسترسی به اینترنت
|
|
- [ ] **DOCKER_BUILDKIT=0** برای استفاده از legacy builder
|
|
- [ ] **Test یک workflow** برای اطمینان از کار کردن offline
|
|
|
|
---
|
|
|
|
## 🏗️ معماری Deployment
|
|
|
|
```
|
|
┌─────────────────────────────────────────┐
|
|
│ Kubernetes Cluster (194.5.195.53) │
|
|
│ │
|
|
│ ┌───────────────────────────────────┐ │
|
|
│ │ Node (containerd) │ │
|
|
│ │ ├─ mcr.microsoft.com/dotnet/* │ │
|
|
│ │ └─ nginx:alpine │ │
|
|
│ └───────────────────────────────────┘ │
|
|
│ ▲ │
|
|
│ │ images available to pods │
|
|
│ │ │
|
|
│ ┌──────┴──────────────────────────┐ │
|
|
│ │ gitea-runner pod │ │
|
|
│ │ ├─ dind (Docker-in-Docker) │ │
|
|
│ │ └─ runner (Gitea Actions) │ │
|
|
│ └─────────────────────────────────┘ │
|
|
└─────────────────────────────────────────┘
|
|
```
|
|
|
|
**کلید موفقیت**: Images باید در **containerd روی node** باشند، نه در pod!
|
|
|
|
---
|
|
|
|
## 🐛 عیبیابی
|
|
|
|
### ❌ Workflow هنوز download میکند؟
|
|
|
|
```bash
|
|
# بررسی images روی server
|
|
ssh root@194.5.195.53 "ctr -n k8s.io images list | grep mcr.microsoft.com"
|
|
```
|
|
|
|
اگر خالی است، setup را دوباره اجرا کنید.
|
|
|
|
### ❌ Build با error میخورد؟
|
|
|
|
```bash
|
|
# بررسی logs workflow در Gitea
|
|
# اگر "TLS handshake timeout" میبینید → DNS هنوز active است
|
|
# اگر "image not found" میبینید → images در containerd نیستند
|
|
```
|
|
|
|
### ❌ Import به containerd کار نمیکند?
|
|
|
|
```bash
|
|
# مطمئن شوید namespace درست است
|
|
ssh root@194.5.195.53 "ctr namespaces list"
|
|
|
|
# باید k8s.io را ببینید
|
|
# برای import همیشه از -n k8s.io استفاده کنید:
|
|
ctr -n k8s.io images import /path/to/image.tar
|
|
```
|
|
|
|
---
|
|
|
|
## 📞 Support
|
|
|
|
مشکل دارید? مستندات کامل را بخوانید:
|
|
|
|
```bash
|
|
# راهنمای کامل setup offline
|
|
cat OFFLINE-SETUP-GUIDE.md
|
|
|
|
# مرجع سریع commands
|
|
cat QUICK-REFERENCE.md
|
|
|
|
# راهنمای deployment
|
|
cat DEPLOYMENT-GUIDE.md
|
|
```
|
|
|
|
---
|
|
|
|
## ✨ ویژگیها
|
|
|
|
- ✅ **کاملاً Offline** - هیچ download در حین build
|
|
- ✅ **خودکار** - یک اسکریپت برای setup کامل
|
|
- ✅ **مستند شده** - راهنماهای جامع فارسی
|
|
- ✅ **تست شده** - روی Kubernetes با k3s
|
|
- ✅ **سریع** - build بدون تاخیر network
|
|
|
|
---
|
|
|
|
**نوشته شده برای پروژه FourSat** 🛰️
|