consolidate: move all project-level docs to totalDoc
- 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
This commit is contained in:
@@ -0,0 +1,161 @@
|
||||
# 🚀 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** 🛰️
|
||||
Reference in New Issue
Block a user