Files
docs/deployment/DEPLOYMENT-README.md
T
masoodafar-web d7c32dab2a 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
2026-02-18 21:43:59 +03:30

5.5 KiB

🚀 FourSat Offline Deployment

این دایرکتوری شامل scripts و مستندات برای deploy کردن سرویس‌های FourSat بدون نیاز به اینترنت است.

Quick Start

گزینه 1: Setup خودکار (پیشنهادی)

روی ماشینی با Docker و اینترنت:

cd /home/masoud/Apps/project/FourSat/deployment
./setup-offline-complete.sh

این اسکریپت:

  • Images را pull می‌کند
  • Export می‌کند به .tar
  • به server transfer می‌کند
  • در containerd server import می‌کند
  • تمام!

گزینه 2: Setup دستی

اگر Docker روی این ماشین نیست، مستندات کامل را بخوانید:

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 می‌کند؟

# بررسی images روی server
ssh root@194.5.195.53 "ctr -n k8s.io images list | grep mcr.microsoft.com"

اگر خالی است، setup را دوباره اجرا کنید.

Build با error می‌خورد؟

# بررسی logs workflow در Gitea
# اگر "TLS handshake timeout" می‌بینید → DNS هنوز active است
# اگر "image not found" می‌بینید → images در containerd نیستند

Import به containerd کار نمی‌کند?

# مطمئن شوید 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

مشکل دارید? مستندات کامل را بخوانید:

# راهنمای کامل 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 🛰️