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
7.4 KiB
راهنمای استقرار 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
۳.۱ نصب فایلها
- فایل ZIP وردپرس را در
/var/www/ifnex.irاکسترکت کنید. - فایل 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 |