ifnex/DEPLOYMENT_HANDOFF.md
Kazem Alghasi 6c745ea8f8 docs: localize and restructure project documentation
Refactor core documentation files to Persian and introduce a deployment handoff guide.

- Translate `AGENT.md`, `CLIENT_DELIVERY.md`, and `README.md` to Persian for better local stakeholder alignment
- Restructure `AGENT.md` with improved technical specifications and versioning
- Update `CLIENT_DELIVERY.md` with localized status legends and requirement tables
- Enhance `README.md` with detailed feature lists and improved formatting
- Add `DEPLOYMENT_HANDOFF.md` to facilitate production deployment processes
2026-10-04 03:17:35 +03:30

7.4 KiB
Raw Blame History

راهنمای استقرار IFNEX — ویژهٔ تیم IT کارفرما

مخاطب: مسئول IT شرکت IFNEX تاریخ تحویل: ۲۰۲۶-۱۰-۰۴ نسخه: ۱.۰ تهیه‌کننده: VernaSoft Group — Kazem Alghasi


۱. معماری استقرار

این سیستم از دو بخش مستقل تشکیل شده است که هرکدام روی دامنهٔ جداگانه میزبانی می‌شوند و فقط از طریق REST API با هم ارتباط دارند.

بخش دامنه روش تحویل مسیر وب‌سرور
لاراول (API + پنل مدیریت Filament) system.ifnex.ir کلون گیت /var/www/system.ifnex.ir/public
وردپرس (وب‌سایت + پورتال مشتری) ifnex.ir فایل ZIP + فایل SQL /var/www/ifnex.ir

پیش‌نیازهای هر دو بخش:

  • PHP 8.2 یا بالاتر با اکستنشن‌های pdo_mysql، mbstring، xml، gd، zip
  • MySQL 8 یا بالاتر
  • Composer 2.x (فقط برای لاراول)
  • Nginx یا Apache + PHP-FPM
  • گواهی SSL از Let's Encrypt برای هر دو دامنه

۲. استقرار لاراول — system.ifnex.ir

۲.۱ کلون مخزن

cd /var/www/system.ifnex.ir

git clone https://www.git.vernahost.ir/gitmodir110/ifnex.git tmp

cp -r tmp/04_Laravel/* .
cp tmp/04_Laravel/.env.example .env

rm -rf tmp

۲.۲ نصب پکیج‌ها

composer install --no-dev --optimize-autoloader

۲.۳ تنظیم فایل .env

nano .env

مقادیر زیر را حتماً تنظیم کنید:

APP_NAME=IFNEX
APP_ENV=production
APP_DEBUG=false
APP_URL=https://system.ifnex.ir

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=ifnex_laravel
DB_USERNAME=YOUR_DB_USER
DB_PASSWORD=YOUR_DB_PASSWORD

IFNEX_BRIDGE_API_KEY=CHANGE_THIS_TO_A_RANDOM_SECRET
CORS_ALLOWED_ORIGINS=https://ifnex.ir

ZARINPAL_SANDBOX=false
ZARINPAL_MERCHANT_ID=YOUR_REAL_MERCHANT_ID
ZARINPAL_CALLBACK_URL=https://system.ifnex.ir/api/v1/payment/callback
ZARINPAL_FRONTEND_SUCCESS_URL=https://ifnex.ir/wallet
ZARINPAL_FRONTEND_FAILURE_URL=https://ifnex.ir/wallet

KAVENEGAR_API_KEY=YOUR_KAVENEGAR_KEY
KAVENEGAR_SENDER=YOUR_SENDER_NUMBER

⚠️ نکتهٔ امنیتی: مقدار IFNEX_BRIDGE_API_KEY را پیش از استقرار با یک کلید تصادفی و طولانی جایگزین کنید. این مقدار باید عیناً در پلاگین وردپرس هم تنظیم شود.

۲.۴ راه‌اندازی اولیه

php artisan key:generate
php artisan migrate --force
php artisan storage:link
php artisan config:cache
php artisan route:cache
php artisan view:cache

تنظیم دسترسی پوشه‌ها:

chown -R www-data:www-data storage bootstrap/cache
chmod -R 775 storage bootstrap/cache

۲.۵ تنظیم Cron

برای اجرای صف و زمان‌بندی‌ها، این خط را در کرون اضافه کنید:

* * * * * cd /var/www/system.ifnex.ir && php artisan schedule:run >> /dev/null 2>&1

اگر صف با Redis اجرا می‌شود، این خط را نیز اضافه کنید:

* * * * * cd /var/www/system.ifnex.ir && php artisan queue:work --tries=3 >> /dev/null 2>&1

۳. استقرار وردپرس — ifnex.ir

۳.۱ نصب فایل‌ها

  1. فایل ZIP وردپرس را در /var/www/ifnex.ir اکسترکت کنید.
  2. فایل SQL دیتابیس را ایمپورت کنید.

۳.۲ تنظیم wp-config.php

define('DB_NAME', 'ifnex_wordpress');
define('DB_USER', 'YOUR_WP_DB_USER');
define('DB_PASSWORD', 'YOUR_WP_DB_PASSWORD');
define('DB_HOST', '127.0.0.1');
define('WP_HOME', 'https://ifnex.ir');
define('WP_SITEURL', 'https://ifnex.ir');

۳.۳ فعال‌سازی قالب و پلاگین

قالب IFNEX Theme و پلاگین IFNEX Bridge را از بخش افزونه‌های وردپرس فعال کنید.

۳.۴ تنظیمات پلاگین IFNEX Bridge

از مسیر پنل وردپرس → تنظیمات IFNEX:

تنظیم مقدار
API URL https://system.ifnex.ir/api/v1
Bridge API Key همان مقدار IFNEX_BRIDGE_API_KEY در فایل .env لاراول

۳.۵ اصلاح آدرس‌ها در دیتابیس

اگر سایت از محیط لوکال به سرور منتقل می‌شود، آدرس‌های ذخیره‌شده را اصلاح کنید:

UPDATE wp_options
   SET option_value = REPLACE(option_value, 'http://localhost/IFNEX-Logistics/03_WordPress', 'https://ifnex.ir')
 WHERE option_name IN ('home', 'siteurl');

UPDATE wp_posts
   SET guid = REPLACE(guid, 'http://localhost/IFNEX-Logistics/03_WordPress', 'https://ifnex.ir');

UPDATE wp_posts
   SET post_content = REPLACE(post_content, 'http://localhost/IFNEX-Logistics/03_WordPress', 'https://ifnex.ir');

UPDATE wp_postmeta
   SET meta_value = REPLACE(meta_value, 'http://localhost/IFNEX-Logistics/03_WordPress', 'https://ifnex.ir');

سپس کش وردپرس را پاک کنید (اگر افزونهٔ کش دارید) و یک‌بار به پیشخوان وردپرس بروید.


۴. تنظیمات وب‌سرور

۴.۱ لاراول — system.ifnex.ir

  • Document Root: /var/www/system.ifnex.ir/public

۴.۲ وردپرس — ifnex.ir

  • Document Root: /var/www/ifnex.ir

۴.۳ گواهی SSL

هر دو دامنه به گواهی SSL از Let's Encrypt نیاز دارند. پس از نصب گواهی، مطمئن شوید ریدایرکت HTTP به HTTPS فعال است.


۵. چک‌لیست نهایی

۵.۱ لاراول

  • کلون مخزن انجام شد
  • composer install اجرا شد
  • فایل .env تنظیم شد (دیتابیس، APP_URL، CORS، Zarinpal، Kavenegar)
  • php artisan key:generate اجرا شد
  • php artisan migrate اجرا شد
  • php artisan storage:link اجرا شد
  • دسترسی storage/ و bootstrap/cache/ تنظیم شد
  • php artisan config:cache اجرا شد
  • کرون اضافه شد
  • آدرس https://system.ifnex.ir/panel/login باز می‌شود

۵.۲ وردپرس

  • فایل‌ها اکسترکت شدند
  • دیتابیس ایمپورت شد
  • wp-config.php تنظیم شد
  • آدرس‌ها در دیتابیس جایگزین شدند
  • قالب و پلاگین IFNEX Bridge فعال شدند
  • پلاگین تنظیم شد (API URL + Bridge API Key)
  • آدرس https://ifnex.ir باز می‌شود
  • لاگین مشتری کار می‌کند

۵.۳ ارتباط بین‌سامانه‌ای

  • وردپرس به API لاراول وصل می‌شود (تست: لاگین مشتری)
  • خطای CORS داده نمی‌شود
  • پرداخت درگاه کار می‌کند (ZARINPAL_MERCHANT_ID تنظیم شده و ZARINPAL_SANDBOX=false)
  • ارسال پیامک Kavenegar تست شد
  • بارگذاری فایل (آپلود تعهدنامه) کار می‌کند
  • بکاپ دیتابیس تنظیم شده است

۶. اطلاعات تماس

مورد مقدار
توسعه‌دهنده VernaSoft Group — Kazem Alghasi
ایمیل kazem@vernasoft.group
مخزن گیت git.vernahost.ir/gitmodir110/ifnex