يبدأ
قم بتثبيت FleetHub على cPanel أو Hostinger أو VPS خاص في أقل من 10 دقائق.
المستخدمون والأدوار
5 أدوار للأسطول بأذونات Spatie — المسؤول، ومدير الأسطول، والمدير، والمحاسب، والسائق.
ميزات المنتج
المركبات والسائقون وطلبات المركبات وعمليات التسليم وسجلات الوقود والتكلفة الإجمالية للملكية والامتثال ونتائج صحة الأسطول والمزيد.
التخصيص
الحقول المخصصة حسب نوع السيارة والعلامة التجارية واللغة والواجهة.
قم بتثبيت هوستنجر
قم بالنشر خطوة بخطوة على أرخص حزمة مشتركة فردية.
تثبيت سي بانل
قم بالنشر خطوة بخطوة على استضافة cPanel - دون الحاجة إلى محطة طرفية.
الأمن وQR
HTTPS، وHMAC، وخطافات الويب الخاصة بالتوقيع، وسجلات التدقيق، ومسح QR السريع باستخدام الكاميرا.
تقرير وتصدير
7 تقارير للأسطول، تصدير Excel + PDF، التصفية حسب التاريخ.
تنبيهات البريد الإلكتروني
تذكيرات الامتثال، والصيانة، والاستفسارات عن المركبات المتأخرة ورخصة القيادة.
الأسئلة المتداولة
هل يعمل FleetHub على أرخص خطة Hostinger Single؟
نعم — FleetHub متوافق تمامًا مع Hostinger Single (~ 2.99 دولارًا أمريكيًا في الشهر). تتضمن الخطة الفردية PHP 8.3 وMySQL وCron Jobs وSSL مجاني. لا حاجة لSSH، الملحن أو سطر الأوامر. راجع القسم تثبيت Hostinger.
هل أحتاج إلى مهارات تقنية للتثبيت؟
ليست كذلك. Web Installer يتعامل مع كل شيء: اختبار الطلب وقاعدة البيانات والترحيل وإنشاء حساب المسؤول. ما عليك سوى تحميل الملف والانتقال إلى /install واتباع التعليمات.
كيف تعمل رسائل البريد الإلكتروني المجدولة (تنبيهات الامتثال/الصيانة)؟
يستخدم FleetHub جدولة Laravel. ما عليك سوى تكوين وظيفة كرون للتشغيل كل دقيقة؛ يقوم Laravel تلقائيًا بتشغيل كل مهمة في الوقت المحدد. على cPanel: متقدم → Cron Jobs. على Hostinger: hPanel → متقدم → Cron Jobs. إذا لم يكن لدى المضيف cron، فاستخدم عنوان URL الخاص بـ Cron في التطبيق مع cron-job.org.
ما هي طرق الاستهلاك المدعومة؟
ثلاث طرق: خط مستقيم، الرصيد المتناقص ووحدات الإنتاج (بالكيلومترات على مدار الساعة). يتم تحديث قيمة السيارة شهريًا وإدراجها في جدول التكلفة الإجمالية للملكية.
هل يعمل الماسح الضوئي QR على الهواتف؟
نعم - يقوم السائقون والمديرون بمسح رمز الاستجابة السريعة للمركبة باستخدام كاميرا المتصفح عبر html5-qrcode. تتطلب عمليات الفحص السريع (الوقود، الساعة، المتاعب) التسجيل. يتطلب HTTPS.
هل يمكنني إضافة حقول خاصة بدون كود؟
يملك. المسؤول → الحقول المخصصة يسمح بإضافة سمات غير محدودة، ووضع العلامات حسب نوع السيارة، ووضع العلامات الإلزامية، والفرز بالسحب والإفلات.
كم عدد اللغات التي يدعمها FleetHub؟
11 لغة: الإنجليزية والفيتنامية والإسبانية والفرنسية والألمانية والصينية واليابانية والبرتغالية (BR) والروسية والعربية (RTL) والهندية. إدارة الترجمات في الإدارة → الترجمات.
هل يمكن تثبيت FleetHub على استضافة cPanel المشتركة؟
نعم — يعمل FleetHub على استضافة مشاركة cPanel مع PHP 8.2+ وMySQL وCron Jobs. لا حاجة للملحن أو Node.js على الخادم. راجع القسم تثبيت cPanel.
كيفية إعادة تسمية العلامة التجارية FleetHub (صفحة تسجيل الدخول وعنوان علامة التبويب والألوان)؟
FleetHub بالكامل من المسؤول — لا حاجة لتغيير الرمز أو npm run build. شعار تسجيل الدخول والتذييل والشارة وعنوان علامة التبويب ضمن الإعدادات → العلامة التجارية → اسم التطبيق. علامة التبويب المظهر تسمح بتخصيص اللون الفاتح/الداكن.
auth.login_subtitle حسب اللغة → تخصيص اللون في الإعدادات → المظهر.
مرجع سريع:
| العنصر | مثال | كيفية التغيير |
|---|---|---|
| الشعار & الاسم | أسطول ABC | الإعدادات → العلامة التجارية → اسم التطبيق |
| ترجمات تسجيل الدخول | أدخل المعلومات للوصول إلى FleetHub | الإدارة → الترجمات → auth.login_subtitle |
| عنوان علامة تبويب المتصفح | اسم التطبيق | الإعدادات → العلامة التجارية → اسم التطبيق |
| ألوان التطبيق | لوحة ألوان مخصصة | الإعدادات → المظهر |
1. الشعار والاسم: مسؤول تسجيل الدخول → الإعدادات → العلامة التجارية → تحديث اسم التطبيق (وتحميل الشعار إذا لزم الأمر) → حفظ.
2. ترجمات تسجيل الدخول: تحرير auth.login_subtitle في الإدارة → الترجمات أو الملف lang/{locale}/auth.php.
3. لون التطبيق: الإعدادات → المظهر — تكوينات ألوان منفصلة للضوء والظلام. انقر على حفظ المظهر للتقديم.
ملخص
FleetHub نظام مؤسسي لإدارة أصول أسطول المركبات للمركبات الداخلية للشركة (50–200 مركبة). مبني على Laravel 11 وVue 3 وTailwind CSS — يغطي المركبات، السائقين، طلبات المركبات، التسليم مع خريطة الأضرار، سجلات الوقود، المصروفات، تحليلات TCO، متابعة الامتثال، وتقييم صحة الأسطول. غير مصمم لأعمال التاكسي أو تأجير السيارات.
مسح QR بسرعة
امسح QR ضوئيًا للمركبة لتسجيل الوقود أو تحديث الساعة أو الإبلاغ عن المشكلات - تحسين الهاتف المحمول للسائقين.
جدول التكلفة الإجمالية للملكية
التكلفة الإجمالية للملكية حسب المركبات والأسطول — الشراء والوقود والصيانة والتأمين والمزيد.
تسليم السيارة
تسليم الاستيراد/التصدير باستخدام مخطط الضرر ثنائي الأبعاد وقائمة المراجعة والصور والتوقيع وتقرير PDF.
النتيجة الصحية للأسطول
النتيجة اليومية مع التفاصيل - الصيانة المتأخرة، وانتهاء الامتثال، ومخالفات الوقود.
تتبع الامتثال
التأمين، التسجيل، ضريبة الطريق، الترخيص، رخصة القيادة - تنبيهات 14/30/7/1 يوم.
تقارير الأسطول
7 تقارير ورسوم بيانية مدمجة وتصدير Excel وPDF.
الخادم مطلوب
- PHP 8.2 أو أعلى (8.3 مستحسن)
- MySQL 5.7+ أو MariaDB 10.3+
- Composer 2.x (التطوير المحلي فقط — غير مطلوب في الاستضافة المشتركة)
- Node.js 18+ وnpm 9+ (فقط للإصدارات الأمامية المحلية)
- خادم الويب: Apache أو Nginx
ملحق PHP مطلوب
- OpenSSL, PDO, PDO_MySQL, Mbstring, Tokenizer, XML, Ctype, JSON, GD, Fileinfo
سعة القيادة
الحد الأدنى ~ 200 ميجابايت. أحكام إضافية لصور المركبات وإيصالات الوقود وصور التسليم ووثائق الامتثال.
جلسة
الخيار أ - مثبت الويب (مستحسن)
- تحميل ملفات المشروع إلى خادم الويب.
- قم بتوجيه جذر المستند إلى المجلد
public/. - التفويض:
storage/وbootstrap/cache/يجب أن يكونا قابلين للكتابة (chmod 775). - انسخ
.env.exampleإلى.envواضبطAPP_KEY(قم بتشغيلphp artisan key:generateإذا كان SSH متاحًا، أو راجع cPanel الإعدادات → الخطوة 5). - الوصول إلى
https://yourdomain.com/installفي متصفحك. - اتبع المعالج - المتطلبات ← قاعدة البيانات ← الترحيل ← حساب المسؤول ← تم. حدد تضمين بيانات العرض التوضيحي لتحميل بيانات العينة (راجع المستخدمون والأدوار).
الخيار ب – تثبيت واجهة سطر الأوامر (CLI).
# 1. تثبيت التبعيات
composer install --no-dev --optimize-autoloader
npm install
npm run build
# 2. تكوين البيئة
cp .env.example .env
php artisan key:generate
# 3. قم بتحرير .env لتعيين معلومات قاعدة البيانات
# DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD
# 4. إنشاء الجدول والبيانات الأولية
php artisan migrate --seed
# 5. قم بإنشاء مخزن ارتباط رمزي للتحميل
php artisan storage:link
# 6. تكوين ذاكرة التخزين المؤقت للإنتاج
php artisan config:cache
php artisan route:cache
php artisan view:cache
# 7. ضع علامة على التثبيت
echo "Installed" > storage/installed.lock
public/. يستخدم Apache المدمج .htaccess. راجع Nginx دليل نشر Laravel.
خطوة المعالج 2 - تكوين قاعدة البيانات
عندما يصل المعالج إلى الخطوة 2، ستحتاج إلى إدخال معلومات اتصال MySQL الخاصة بقاعدة البيانات التي تم إنشاؤها في لوحة تحكم الاستضافة. يجب أن تكون قاعدة البيانات موجودة بالفعل (يمكن أن تكون فارغة — الخطوة التالية هي إنشاء الجداول).
| مدرسة | الافتراضي / مثال | ملحوظة |
|---|---|---|
| Host | 127.0.0.1 | ينطبق ذلك على 99% من الاستضافة المشتركة (Hostinger، cPanel، Plesk). ابق كما هو ما لم يقدم المضيف اسم مضيف MySQL الخاص به (قاعدة بيانات مُدارة مثل AWS RDS، وقاعدة بيانات DigitalOcean Managed Database). |
| Port | 3306 | منفذ MySQL القياسي. لا يتم التغيير إلا إذا كان الموفر يستخدم منفذًا مختلفًا (نادرًا). |
| اسم قاعدة البيانات | uXXXXXX_fleethub | يتم عرض الاسم الكامل في لوحة تحكم الاستضافة. تحتوي معظم الاستضافة المشتركة على بادئة وفقًا لمعرف المستخدم (على سبيل المثال Hostinger: u287094729_fleethub). |
| اسم تسجيل الدخول | uXXXXXX_fleethub | يمتلك حساب MySQL أذونات على قاعدة البيانات المذكورة أعلاه. لا تستخدم root — الاستضافة المشتركة غير مسموح بها. |
| كلمة المرور | (كلمة مرور قاعدة البيانات الخاصة بك) | كلمة المرور التي قمت بتعيينها أو نسخها عند إنشاء مستخدم MySQL. تظهر معظم المضيفات مرة واحدة فقط عند إنشائها — استخدم "عرض / إعادة تعيين" إذا لم يتم حفظها. |
أين يمكن العثور على معلومات قاعدة البيانات وفقًا لكل نوع من أنواع الاستضافة
- Hostinger: hPanel → قواعد البيانات → الإدارة → انقر فوق قاعدة البيانات. تعرض صفحة التفاصيل الاسم واسم المستخدم وزر "إظهار كلمة المرور".
- cPanel: لوحة التحكم ← قواعد بيانات MySQL. قائمة قاعدة البيانات أعلاه، وقائمة المستخدمين أدناه. استخدم "تغيير كلمة المرور" إذا لزم الأمر.
- Plesk: Plesk → قواعد البيانات → انقر فوق اسم قاعدة البيانات. تعرض صفحة التفاصيل بيانات الاعتماد وتحتوي على زر إعادة تعيين كلمة المرور.
- DirectAdmin: DirectAdmin ← إدارة MySQL ← انقر على قاعدة البيانات. توجد بيانات الاعتماد وإعادة تعيين كلمة المرور في صفحة التفاصيل.
- قاعدة بيانات خارجية/ مُدارة: AWS RDS، وقاعدة بيانات DigitalOcean Managed Database، وما إلى ذلك. استخدم اسم المضيف المخصص، والمنفذ (عادةً
3306ولكن يجب التحقق منه)، واسم قاعدة البيانات، والمستخدم وكلمة المرور من وحدة التحكم السحابية. تأكد من إدراج عنوان IP الخاص بالخادم في القائمة البيضاء في جدار حماية قاعدة البيانات.
الأخطاء الشائعة وكيفية إصلاحها
| رسالة خطأ | السبب والإصلاح |
|---|---|
SQLSTATE[HY000] [1045] Access denied | اسم مستخدم أو كلمة مرور خاطئة، أو ليس لدى المستخدم أذونات في قاعدة البيانات هذه. تدقيق إملائي مزدوج (بما في ذلك بادئة المستخدم على المضيف المشترك). إعادة تعيين كلمة المرور في لوحة تحكم الاستضافة إذا لم تكن متأكدا. |
SQLSTATE[HY000] [1049] Unknown database | اسم قاعدة البيانات خاطئ، أو أنك لم تقم بإنشاء قاعدة البيانات في لوحة التحكم. قم بإنشائه أولاً، ثم أعد إدخال الاسم الدقيق (بما في ذلك البادئة). |
SQLSTATE[HY000] [2002] Connection refused | غير قادر على الاتصال بخادم MySQL. تحقق من المضيف والميناء. على المضيفين المشتركين، حاول localhost بدلاً من 127.0.0.1 أو العكس. باستخدام قاعدة البيانات المُدارة، تأكد من إدراج عنوان IP الخاص بالخادم في القائمة البيضاء. |
SQLSTATE[42S02] Base table not found: sessions | يحدث عند ضبط SESSION_DRIVER=database أو CACHE_STORE=database على .env قبل وجود الجداول. قم بتحرير .env، وقم بتغيير كليهما إلى file، ثم احفظ، ثم أعد تحميل المعالج. يمكنك تغييره مرة أخرى إلى database بعد اكتمال التثبيت إذا كنت تريد ذلك. |
could not find driver | ملحق PHP pdo_mysql مفقود أو معطل. تمكين في لوحة تحكم الاستضافة على cPanel: MultiPHP INI Editor → الامتدادات أو حدد إصدار PHP → الامتدادات. على Hostinger: hPanel → Advanced → PHP Configuration → علامة التبويب PHP Extensions. |
127.0.0.1 و 3306) — ويتم الاحتفاظ بها كما هي في الاستضافة المشتركة. كل ما عليك فعله هو كتابة اسم قاعدة البيانات واسم المستخدم وكلمة المرور. اضغط اختبار & احفظ → للتحقق من الاتصال وانتقل إلى الخطوة 3.
المضيف المحلي (التنمية المحلية)
دليل سريع لتشغيل FleetHub على جهاز الكمبيوتر الخاص بك لأغراض الاختبار أو التطوير قبل النشر إلى الإنتاج. اختر البيئة المناسبة لنظام التشغيل الخاص بك.
الخيار 1 – Laravel Herd (موصى به، لنظامي التشغيل macOS وWindows)
Laravel Herd هي البيئة المحلية الرسمية من فريق Laravel - مجانية، أصلية، بدون Docker. يتضمن PHP 8.2/8.3/8.4 وNginx و(في Herd Pro) MySQL/Redis.
- قم بتنزيل وتثبيت Laravel Herd من herd.laravel.com.
- قم بتعيين مجلد مشروع FleetHub على
~/Herd/(macOS) أو%USERPROFILE%\Herd\(Windows). ينشئ القطيع النطاق.test— على سبيل المثالhttp://fleethub.test. - افتح Herd → Sites وتأكد من أن إصدار PHP هو 8.2 أو 8.3. انقر بزر الماوس الأيمن على الموقع → Secure لتمكين HTTPS (مطلوب لماسح QR الضوئي).
- إنشاء قاعدة بيانات MySQL. باستخدام Herd Pro، انتقل إلى الخدمات → MySQL → فتح في TablePlus. إذا لم يكن لديك Pro، فقم بتثبيت MySQL Community أو استخدم SQLite (
DB_CONNECTION=sqlite،touch database/database.sqlite). - انسخ
.env.exampleإلى.env، واملأ معلومات قاعدة البيانات، ثم قم بتشغيلphp artisan key:generateفي جذر المشروع. - افتح
http://fleethub.test/installفي متصفحك واتبع المعالج.
الخيار 2 – XAMPP (Windows وmacOS وLinux)
XAMPP حزم Apache وMySQL/MariaDB وPHP. مجاني، عبر منصة. تأكد من اختيار الإصدار PHP 8.2 أو أعلى.
- قم بتنزيل XAMPP 8.2+ من Apachefriends.org وتثبيته.
- انسخ مشروع FleetHub إلى
C:\xampp\htdocs\FleetHub\(Windows) أو/Applications/XAMPP/htdocs/FleetHub/(macOS). - افتح XAMPP لوحة التحكم وابدأ Apache وMySQL. إذا كان المنفذ مشغولاً، فانتقل إلى Config →service.conf لتبديل Apache إلى 8080.
- انتقل إلى
http://localhost/phpmyadmin→ جديد → أنشئ قاعدة بيانات باسمfleethubمع الترتيب utf8mb4. - في مجلد المشروع: انسخ
.env.exampleإلى.env، اضبطDB_DATABASE=fleethub،DB_USERNAME=root، اتركDB_PASSWORDفارغًا (افتراضي XAMPP). تشغيلphp artisan key:generate. - قم بالوصول إلى
http://localhost/FleetHub/public/installلتشغيل معالج التثبيت.
/public/: ينشئ مضيفًا افتراضيًا في C:\xampp\apache\conf\extra\httpd-vhosts.conf يشير DocumentRoot إلى المجلد public/ الخاص بالمشروع، ثم يضيف 127.0.0.1 fleethub.local إلى ملف المضيفين.
الخيار 3 – لاراجون (ويندوز)
Laragon عبارة عن حزمة مكدسة محمولة لنظام التشغيل Windows مصممة لـ Laravel — مضيف افتراضي يتم إنشاؤه تلقائيًا، وعنوان URL مضغوط، وMySQL/MariaDB، وHeidiSQL متضمنة.
- قم بتنزيل Laragon Full من laragon.org وتثبيته.
- في لاراجون: Menu → PHP → Version — قم بالتبديل إلى PHP 8.2 أو 8.3.
- انسخ مشروع FleetHub إلى
C:\laragon\www\FleetHub\. - اضغط على بدء الكل. يقوم Laragon بإنشاء مضيف افتراضي خاص به:
http://fleethub.test(يشير إلى المجلدpublic/). - افتح HeidiSQL (مضمن) → إنشاء قاعدة البيانات
fleethub. المعلومات الافتراضية: المستخدمroot، كلمة المرور فارغة. - قم بتحرير
.envباستخدام معلومات قاعدة البيانات، وتشغيلphp artisan key:generate، ثم الوصول إلىhttp://fleethub.test/install.
الخيار 4 - خادم PHP الموجود مسبقًا (لا يلزم وجود خادم ويب)
الخيار الأبسط: يأتي Laravel مع artisan serve، الذي يبدأ خادم تطوير PHP. لا حاجة لـ Apache أو Nginx. الأفضل للاختبار السريع.
# تثبيت التبعيات وتكوينها
cd /path/to/FleetHub
composer install
cp .env.example .env
php artisan key:generate
# قم بتشغيل الترحيل وبذر البيانات الأولية
php artisan migrate --seed
# ابدأ تشغيل خادم التطوير
php artisan serve
# ثم الوصول: http://127.0.0.1:8000/install
المشاكل الشائعة عند تشغيل المضيف المحلي
الماسح الضوئي QR لا يفتح الكاميرا على http://
تتطلب واجهة برمجة تطبيقات كاميرا المتصفح HTTPS، مع استثناء واحد: http://localhost وhttp://127.0.0.1 تعتبر سياقات آمنة. إذا قمت بالوصول إلى FleetHub عبر LAN IP (على سبيل المثال http://192.168.1.10)، فسيتم رفض الكاميرا. استخدم localhost للتطوير، أو قم بتمكين HTTPS عبر Herd / mkcert.
تم رفض الإذن على مساحة التخزين (macOS / Linux)
إذا واجهت خطأً عندما يقوم التطبيق بالتسجيل أو التخزين المؤقت، فقم بإصلاح الإذن: chmod -R 775 storage bootstrap/cache. على نظام التشغيل Windows عادة لا تكون هناك حاجة.
المنفذ قيد الاستخدام
إذا كان المنفذ 8000 مشغولًا بالفعل بواسطة تطبيق آخر، فاستخدم منفذًا آخر:
php artisan serve --port=8001
اختبار البريد الإلكتروني محليا
عادةً لا يكون SMTP الحقيقي متاحًا على المضيف المحلي. هناك خياران آمنان: (1) ضع MAIL_MAILER=log في .env — يتم تسجيل الدخول إلى البريد الإلكتروني storage/logs/laravel.log بدلاً من إرساله؛ أو (2) استخدم Mailtrap / MailHog لالتقاط رسائل البريد الإلكتروني الصادرة في صندوق بريد وارد مزيف.
MAIL_MAILER=log
# يتم تسجيل جميع رسائل البريد الإلكتروني في Storage/logs/laravel.log
أصول الواجهة الأمامية (Vite / Tailwind)
الواجهة الأمامية لـ FleetHub's Vue/Tailwind مدمجة بالفعل في الحزمة. إذا قمت بتحرير مكون Vue أو تكوين Tailwind، فستحتاج إلى Node.js 18+:
npm install
npm run dev # إعادة التحميل السريع عند التطوير
npm run build # بناء الإنتاج (التشغيل قبل النشر)
النشر على Hostinger Single (استضافة مشتركة)
يوصى بهذا للأشخاص الذين ليس لديهم VPS أو خبرة فنية. FleetHub متوافق تمامًا مع أرخص خطة Hostinger Single Web Hosting (~ 2.99 دولارًا أمريكيًا في الشهر). لا حاجة إلى SSH أو Composer أو سطر الأوامر - يأتي Single مع وظائف cron الأصلية وPHP 8.3 وSSL مجانًا.
الخطوة 1 – إعداد الاستضافة
- قم بتسجيل الدخول إلى Hostinger hPanel.
- انتقل إلى Hosting → Management لاسم المجال الخاص بك.
- اضبط إصدار PHP على 8.2 أو 8.3 عبر Advanced → PHP Configuration.
- تأكد من تمكين ملحقات PHP هذه (عادةً بشكل افتراضي):
- OpenSSL, PDO, PDO_MySQL, Mbstring, GD, Tokenizer, XML, Ctype, JSON, Fileinfo
الخطوة 2 - إنشاء قاعدة بيانات MySQL
- في hPanel، انتقل إلى قواعد البيانات → قواعد بيانات MySQL.
- اضغط على إنشاء قاعدة بيانات جديدة.
- سجل هذه القيم الثلاث:
اسم قاعدة البيانات— على سبيل المثالu123_FleetHubاسم تسجيل الدخول— على سبيل المثالu123_adminكلمة المرور— تم إنشاؤها ذاتيًا ويتم الاحتفاظ بها بعناية
الخطوة 3 - تحميل الملفات
- انتقل إلى ملف → مدير الملفات في hPanel.
- انتقل إلى
public_html/(هذا هو جذر اسم المجال). - احذف أي ملفات
index.htmlأوdefault.phpافتراضية في هذا المجلد. - انقر فوق تحميل الملفات وقم بتنزيل الكل
source.zipمن حزمة التثبيت.
أو قم بتنزيل محتويات المجلد/source/مباشرة عبر FTP إذا كنت تريد. - في حالة تحميل ملف ZIP، انقر بزر الماوس الأيمن → استخراج. بعد فك الضغط يجب أن تكون جميع الملفات في الجذر
public_html/. - تأكيد
public_html/يحتوي على:app/،public/،vendor/،.htaccess،index.php(فيpublic/)،.env، إلخ.
.htaccess في الجذر public_html/. أنه يحتوي على قواعد إعادة كتابة URL. إذا كان مدير الملفات يخفي الملفات المخفية، فانقر فوق الإعدادات → إظهار الملفات المخفية.
الخطوة 4 - قم بتشغيل المثبت
- افتح متصفحك وانتقل إلى
https://yourdomain.com/install. - سترى مثبت FleetHub.
- الخطوة 1: المتطلبات — يجب أن تمر جميع العناصر (باللون الأخضر). إذا كانت هناك أخطاء، فاتصل بدعم Hostinger لتمكين ملحق PHP المفقود.
- الخطوة 2: قاعدة البيانات — أدخل المعلومات من الخطوة 2 أعلاه:
- يستضيف:
localhost - ميناء:
3306 - قاعدة البيانات:
u123_FleetHub - اسم المستخدم:
u123_admin - كلمة المرور: (تم إنشاؤها بواسطة Hostinger)
- يستضيف:
- الخطوة 3: الترحيل — انقر على "تشغيل عمليات الترحيل والبذور". يستغرق ~ 10 ثانية. لا تقم بالتحديث.
- الخطوة 4: المسؤول — إنشاء حساب مسؤول. استخدم كلمات مرور قوية.
- تم! — سترى عنوان URL لـ Cron (حفظ!) وزر تسجيل الدخول.
الخطوة 5 - إعداد تنبيهات البريد الإلكتروني التلقائية عبر Hostinger Cron
يستخدم FleetHub برنامج جدولة Laravel: تنبيهات الامتثال، وتذكيرات الصيانة، والطلبات المتأخرة، ورخص القيادة، وتحديثات قيمة السيارة، وإعادة حساب النتيجة الصحية للأسطول. قم بتكوين a cron على hPanel.
- في hPanel، انتقل إلى متقدم → Cron Jobs.
- انقر على إنشاء وظيفة كرون.
- حدد النوع: Custom (وليس "PHP" — لأنه يلزم تمرير المعلمات).
- أدخل الأمر التالي (استبدل
uXXXXXXباسم مستخدم Hostinger الخاص بك):
نصيحة: افتح مدير الملفات، وابحث عن الملف/usr/bin/php /home/uXXXXXX/public_html/artisan schedule:runartisan(جذر المشروع)، وانقر بزر الماوس الأيمن على → خصائص لنسخ المسار الكامل. - اضبط الجدول على كل دقيقة — جميع الحقول الخمسة (دقيقة، ساعة، يوم، شهر، يوم من الأسبوع) مضبوطة على
*. - اضغط على حفظ.
سيرسل FleetHub تذكيرات بالمطالبات المتأخرة وتنبيهات الصيانة والامتثال والترخيص وتحديثات الاستهلاك وعمليات إعادة حساب النتيجة الصحية للأسطول تلقائيًا.
public_html/public/? لا توجد مشكلة — كود Laravel لا يزال في الجذر public_html/ لذلك يبقى مسار cron /home/uXXXX/public_html/artisan (لا تضيف /public/).
- مسؤول تسجيل الدخول → الإعدادات → علامة تبويب النظام → انسخ عنوان URL لـ Cron.
- قم بالتسجيل مجانًا على cron-job.org.
- أنشئ cronjob، والصق عنوان URL، واضبط كل 15 دقيقة، واحفظ.
الخطوة 6 - تكوين البريد الإلكتروني (SMTP)
يوفر Hostinger حسابات بريد إلكتروني مع كل خطة. بالنسبة لإشعارات FleetHub:
- في hPanel، انتقل إلى البريد الإلكتروني → حسابات البريد الإلكتروني وقم بإنشاء حساب (على سبيل المثال
noreply@yourdomain.com). - تحرير الملف
.envفيpublic_html/عبر مدير الملفات:MAIL_MAILER=smtp MAIL_HOST=smtp.hostinger.com MAIL_PORT=587 MAIL_USERNAME=noreply@yourdomain.com MAIL_PASSWORD=your_email_password MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=noreply@yourdomain.com MAIL_FROM_NAME="Your Company Name" - احفظ الملف.
- قم بتسجيل الدخول إلى FleetHub → الإعدادات → علامة تبويب البريد الإلكتروني → إرسال بريد إلكتروني تجريبي. إذا حصلت عليه، لقد انتهيت.
المشاكل الشائعة في Hostinger Single
"500 خطأ داخلي في الخادم" بعد التحميل
- تحقق من وجود
.htaccessفي الجذرpublic_html/ويحتوي على قواعد إعادة الكتابة. - تأكد من تعيين إصدار PHP على 8.2 أو 8.3 في hPanel.
- تحقق من
storage/logs/laravel.logعبر مدير الملفات لرؤية الخطأ الفعلي.
"تم رفض الإذن" عند التحميل
عادةً ما يقوم Hostinger بتعيين الأذونات الصحيحة من تلقاء نفسه، ولكن إذا لم يكن الأمر كذلك:
- انقر بزر الماوس الأيمن على
storage/في مدير الملفات → الأذونات → اضبط على755بشكل متكرر. - نفس الشيء مع
bootstrap/cache/.
فشل الماسح الضوئي QR في فتح الكاميرا
تتطلب واجهة برمجة تطبيقات كاميرا المتصفح HTTPS. يقدم Hostinger خدمة SSL مجانية عبر Let's Encrypt — قم بتمكينها في hPanel ضمن SSL → Manage.
لا يتم إرسال رسائل البريد الإلكتروني المجدولة
- في hPanel → Cron Jobs → حدد العمود آخر تشغيل في إدخال cron. إذا كان فارغًا، فهذا يعني أن cron لا يعمل - تأكد من صحة المسار الحرفي.
- اختبار الأمر يدويًا: افتح Terminal في hPanel (إذا كان متاحًا) وقم بتشغيل أمر cron. إذا كان هناك خطأ، فستشير رسالة الخطأ بوضوح إلى المشكلة (إصدار PHP خاطئ، مسار خاطئ، وما إلى ذلك).
- تأكد من تكوين SMTP بشكل صحيح (الإعدادات → البريد الإلكتروني → إرسال الاختبار).
- تحقق من
storage/logs/laravel.logبحثًا عن أخطاء الجدولة.
أداء بطيء
يشارك Hostinger Single وحدة المعالجة المركزية/ذاكرة الوصول العشوائي. إذا كانت مجموعتك تضم أكثر من 20 شخصًا، فكر في ما يلي:
- الترقية إلى Premium (~ 3.99 دولارًا أمريكيًا شهريًا) — خوادم أسرع وموارد أكثر وقواعد بيانات أكثر.
- أو Business (~ 5.99 دولارات شهريًا) — موارد مخصصة ونسخ احتياطية يومية وبيئة مرحلية.
النشر على cPanel (الاستضافة المشتركة)
هذا الدليل مخصص للاستضافة المشتركة cPanel القياسية (Namecheap وBluehost وGoDaddy ومعظم المضيفين الرخيصين). يحتوي FleetHub بالفعل على vendor/ وبناء الواجهة الأمامية - لا حاجة إلى Composer أو npm أو Terminal على الخادم. إذا لم يكن لدى cPanel محطة طرفية، فاستخدم SSH Access أو الطرق الموجودة في مدير الملفات أدناه.
/home/CPANELUSER/ — راجع الشريط الجانبي لـ cPanel في معلومات عامة.
الخطوة 1 - تعيين إصدار PHP وملحقاته
- قم بتسجيل الدخول إلى cPanel.
- افتح MultiPHP Manager (أو حدد إصدار PHP) وحدد PHP 8.2 أو 8.3 للمجال.
- افتح MultiPHP INI Editor أو PHP Extensions وتأكد من تمكين الامتدادات التالية:
- OpenSSL, PDO, PDO_MySQL, Mbstring, GD, Tokenizer, XML, Ctype, JSON, Fileinfo
- إذا كان الامتداد مفقودًا، فقم بتمكينه من القائمة أو اتصل بدعم المضيف.
الخطوة 2 - تمكين SSL (HTTPS)
- انتقل إلى SSL/TLS Status (أو Let's Encrypt SSL / AutoSSL).
- قم بتشغيل AutoSSL أو تثبيت شهادة مجانية للمجال.
- HTTPS مطلوب لماسح QR الضوئي لفتح كاميرا المتصفح.
https://yourdomain.com وتحقق من أيقونة القفل.
الخطوة 3 - إنشاء قاعدة بيانات MySQL والمستخدم
- افتح إدارة قواعد البيانات الخاصة بي (في قسم قواعد البيانات).
- في إنشاء قاعدة بيانات جديدة، أدخل اسمًا (على سبيل المثال
fleethub) ثم قم بالإنشاء. تضيف لوحة التحكم cPanel تلقائيًا بادئة — الاسم الكامل في النموذجcpaneluser_fleethub. - في MySQL Users، أنشئ مستخدمًا بكلمة مرور قوية. انسخ اسم المستخدم مع البادئة.
- في إضافة مستخدم إلى قاعدة البيانات، حدد المستخدم وقاعدة البيانات، أضف، ثم امنح جميع الامتيازات. من السهل تفويت هذه الخطوة — سيؤدي تفويتها إلى حدوث خطأ
Access denied (1045). - سجل بالضبط 3 قيم معروضة في cPanel:
اسم قاعدة البيانات— على سبيل المثالu123_FleetHubاسم تسجيل الدخول— على سبيل المثالu123_adminكلمة المرور— تم إنشاؤها ذاتيًا ويتم الاحتفاظ بها بعناية
الخطوة 4 - تحميل الملفات
- افتح مدير الملفات، انتقل إلى
public_html/(جذر المستند). - قم بتشغيل الإعدادات → إظهار الملفات المخفية لرؤية
.htaccessو.env. - احذف الافتراضي
index.htmlفيpublic_html/إذا كان موجودًا. - قم بتحميل
source.zipو استخراج، أو تحميل محتويات المجلد/source/عبر FTP. - بعد فك الضغط، يجب أن يحتوي
public_html/علىapp/وpublic/وvendor/و.htaccessالجذر وartisanفي نفس المستوى.
.htaccess يقوم الجذر بإعادة توجيه جميع الطلبات إلى public/ — عادةً ما يحتاج إلى تغيير جذر المستند يدويًا.
الخطوة 5 - قم بإعداد .env قبل تشغيل برنامج التثبيت
أكمل هذه الخطوة قبل عند الفتح /install. يحتاج Laravel إلى APP_KEY ليكون صالحًا وتكوين قاعدة البيانات صحيحًا في .env.
- في مدير الملفات، انسخ
.env.exampleإلى.env(نفس المجلد مثلartisan). - تحرير
.envوتعيين الحد الأدنى:APP_NAME=FleetHub APP_ENV=production APP_DEBUG=false APP_URL=https://yourdomain.com DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=cpaneluser_fleethub DB_USERNAME=cpaneluser_admin DB_PASSWORD="your_password" SESSION_DRIVER=file CACHE_STORE=file - اضبط
DB_CONNECTION=mysql—.env.exampleالافتراضي لاستخدام SQLite؛ الاستضافة المشتركة تتطلب MySQL. - ضع
SESSION_DRIVER=fileوCACHE_STORE=fileقبل الترحيل الأول (تجنب أخطاء جدول الجلسات). - ضع
DB_PASSWORDبين علامتي اقتباس إذا كانت كلمة المرور تحتوي على أحرف خاصة (#،$،!، إلخ).
إنشاء APP_KEY (لا حاجة للمحطة الطرفية)
لا تتضمن العديد من خطط cPanel محطة ويب. استخدم إحدى الطرق التالية:
- SSH Access (cPanel → Security → SSH Access): اتصال PuTTY/PowerShell، قم بتشغيل
cd ~/public_html && php artisan key:generate. - مدير الملفات — أنشئ
public/genkey.phpمؤقتًا، وافتح المتصفح، وانسخ النتائج إلىAPP_KEY=، ثم احذف الملف على الفور.<?php echo 'base64:' . base64_encode(random_bytes(32)); - على جهاز الكمبيوتر — إذا كان هناك PHP محلي:
php -r "echo 'base64:'.base64_encode(random_bytes(32));"ثم الصق.env.
genkey.php مباشرة بعد نسخ المفتاح. لا تترك البرامج النصية المساعدة على الإنتاج.
- قم بتعيين الأذونات
storage/وbootstrap/cache/إلى 755 (متكرر) إذا أبلغ المثبت عن خطأ في الكتابة.
الخطوة 6 - قم بتشغيل مثبت الويب
- افتح
https://yourdomain.com/installفي المتصفح. - الخطوة 1: المتطلبات — يجب أن ينجح الجميع (أخضر). قم بتصحيح امتداد PHP في الخطوة 1 إذا كان مفقودًا.
- الخطوة 2: قاعدة البيانات — أدخل الاسم بالبادئة من الخطوة 3:
- يستضيف:
127.0.0.1orlocalhost - ميناء:
3306 - قاعدة البيانات:
cpaneluser_fleethub - اسم المستخدم:
cpaneluser_admin - كلمة المرور: (your MySQL password)
- يستضيف:
- الخطوة 3: الترحيل — انقر على "تشغيل عمليات الترحيل والبذور". ~10 ثواني. لا تقم بتحديث الصفحة.
- قم بإلغاء تحديد تضمين البيانات التجريبية في حالة تثبيت الإنتاج النظيف.
- الخطوة 4: المسؤول — إنشاء حساب مسؤول.
- تم! — احفظ عنوان URL لـ Cron في الشاشة الأخيرة.
الخطوة 7 - تكوين وظائف Cron لتنبيهات البريد الإلكتروني
يحتاج FleetHub إلى تشغيل cron كل دقيقة حتى يتمكن Laravel من إرسال تنبيهات الامتثال وتذكيرات الصيانة والطلبات المتأخرة ورسائل البريد الإلكتروني المجدولة الأخرى.
- في cPanel، انتقل إلى متقدم → Cron Jobs.
- في إضافة وظيفة Cron جديدة، اضبط الجدول الزمني على كل دقيقة (
* * * * *). - أدخل الأمر (استبدل
CPANELUSERباسم مستخدم cPanel في المعلومات العامة):
نصيحة: مسار PHP يمكن أن يكون/usr/local/bin/php /home/CPANELUSER/public_html/artisan schedule:run/usr/local/bin/phpأو/usr/bin/php. المسار الحرفي عادة ما يكون/home/CPANELUSER/public_html/artisan. - انقر على إضافة وظيفة Cron جديدة للحفظ.
public_html/public/? لا يزال Cron يشير إلى /home/CPANELUSER/public_html/artisan — لا أكثر /public/.
- قم بتسجيل الدخول كمشرف → الإعدادات → النظام → انسخ عنوان URL لـ Cron.
- قم بالتسجيل مجانًا على cron-job.org.
- قم بإنشاء مهمة تستدعي عنوان URL هذا كل 15 دقيقة.
الخطوة 8 - تكوين البريد الإلكتروني (SMTP)
قم بإنشاء حساب بريد إلكتروني cPanel للإشعارات الصادرة:
- انتقل إلى حسابات البريد الإلكتروني → إنشاء على سبيل المثال.
noreply@yourdomain.com. - تحرير
.envفي مدير الملفات:MAIL_MAILER=smtp MAIL_HOST=mail.yourdomain.com MAIL_PORT=587 MAIL_USERNAME=noreply@yourdomain.com MAIL_PASSWORD=your_email_password MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=noreply@yourdomain.com MAIL_FROM_NAME="Your Company Name" - احفظ، ثم في FleetHub: الإعدادات → البريد الإلكتروني → إرسال بريد إلكتروني تجريبي.
المشاكل الشائعة في cPanel
"تم رفض الوصول للمستخدم" (SQLSTATE 1045)
- انسخ اسم قاعدة البيانات واسم المستخدم بالضبط من cPanel — بما في ذلك البادئة.
- قم بتأكيد إضافة مستخدم إلى قاعدة البيانات مع كافة الامتيازات.
- أعد تعيين كلمة مرور MySQL في cPanel وقم بالتحديث
.env— استخدم الأقواس حولDB_PASSWORDإذا كانت هناك أحرف خاصة.
يفشل الترحيل بعد اجتياز خطوة قاعدة البيانات
- يختبر المعالج من النموذج، لكن يقرأ الترحيل
.env. تأكد من تطابقها. - احذف
bootstrap/cache/config.phpإذا كان هناك واحد، ثم حاول مرة أخرى. - تأكد من
DB_CONNECTION=mysqlفي.env(ليس sqlite).
"القيمة الافتراضية غير صالحة" عند الترحيل (1067)
يمكن للوضع الصارم لـ MySQL على الاستضافة المشتركة أن يرفض القيم الافتراضية لبعض الأعمدة. راجع storage/logs/laravel.log وتأكد من PHP 8.2+ بجميع الامتدادات.
"500 خطأ داخلي في الخادم" بعد التحميل
- تحقق من النسخة الأصلية
.htaccessوPHP 8.2+. - راجع
storage/logs/laravel.logلمعرفة الخطأ الفعلي. - تأكد من تعيين
APP_KEYفي.env— المفتاح الفارغ يسبب الخطأ 500.
لا توجد محطة في cPanel
عادي على العديد من الحزم المشتركة. استخدم SSH Access (في حالة التمكين)، genkey.php مؤقتًا في الخطوة 5، أو قم بإنشاء مفتاح على جهاز الكمبيوتر المحلي.
الماسح الضوئي QR لا يفتح الكاميرا
قم بتمكين SSL عبر SSL/TLS Status → AutoSSL والوصول باستخدام https://.
إعدادات
ملف .env
| قفل | يصف | على سبيل المثال |
|---|---|---|
APP_NAME | يتم عرض اسم التطبيق في شريط العنوان | FleetHub |
APP_URL | عنوان URL العام للتثبيت | https://fleet.example.com |
APP_DEBUG | تعيين false على الإنتاج | false |
DB_* | معلومات اتصال قاعدة البيانات | mysql, 127.0.0.1, 3306, ... |
MAIL_MAILER | سائق البريد | smtp, log, mailgun |
MAIL_HOST | اسم مضيف خادم SMTP | smtp.gmail.com |
MAIL_PORT | منفذ SMTP | 587 |
MAIL_USERNAME | اسم المستخدم SMTP | your@email.com |
MAIL_PASSWORD | كلمة مرور SMTP أو رمز التطبيق | ********** |
MAIL_FROM_ADDRESS | الافتراضي من العنوان | noreply@example.com |
تثبيت في التطبيق
يتم تكوين معظم الخيارات غير الحساسة في المسؤول → الإعدادات:
- عام: اسم الشركة/البريد الإلكتروني/الهاتف، العلامة التجارية
- أسطول المركبات: بادئة رمز المركبة، قالب قائمة التحقق من التسليم، الصيانة الافتراضية، وضع صفحة المركبات العامة
- البريد الإلكتروني: أرسل بريدًا إلكترونيًا تجريبيًا لاختبار SMTP
- الإشعارات: تمكين/تعطيل تنبيهات الامتثال والصيانة ومتطلبات السيارة والترخيص
- متعدد اللغات: المنطقة الزمنية، تنسيق التاريخ، العملة - ينطبق في جميع أنحاء التطبيق
- الامتثال: إدارة الإعدادات المسبقة لنوع الامتثال (التأمين، التسجيل، ضريبة الطريق...)
- Brand: اسم التطبيق وشعاره - تحديث معلومات تسجيل الدخول والتذييل وعنوان علامة التبويب
- المظهر: تخصيص لون العلامة التجارية وحالتها ونصها للضوء/الداكن - راجع دليل تغيير العلامة التجارية في الأسئلة الشائعة
دعم متعدد اللغات
يتوفر FleetHub بـ 11 لغة، بما في ذلك العربية (RTL) والهندية. يقوم المستخدمون بتغيير اللغة عبر القائمة المنسدلة للأعلام في الزاوية اليمنى العليا.
اللغات المتاحة
| شفرة | لغة | اتجاه |
|---|---|---|
en | English (default) | LTR |
vi | Tiếng Việt | LTR |
es | Español | LTR |
fr | Français | LTR |
de | Deutsch | LTR |
zh | 简体中文 | LTR |
ja | 日本語 | LTR |
pt-BR | Português (Brasil) | LTR |
ru | Русский | LTR |
ar | العربية | RTL |
hi | हिन्दी | LTR |
كيفية تغيير اللغة
- انقر على أيقونة العلم في الزاوية اليمنى العليا لفتح القائمة المنسدلة.
- اختر اللغة من القائمة.
- سيتم إعادة تحميل الصفحة؛ يتم ترحيل كافة تسميات واجهة المستخدم والتواريخ وتنسيقات العملات.
- يتم حفظ الاختيارات في حساب المستخدم وفي ملفات تعريف الارتباط (سنة واحدة).
/locale/{code}، يعمل فقط عندما يكون هناك خادم PHP قيد التشغيل. الوصول دائمًا عبر المجال الحقيقي (الإنتاج) أو http://localhost:8000 (المطور باستخدام php artisan serve). ملفات التوثيق مثل هذا الملف مستقلة تمامًا ويمكن فتحها مباشرةً.
إضافة لغة مخصصة (المسؤول)
انتقل إلى الإدارة → الترجمات (المسؤول لديه إذن إدارة الترجمات):
- انقر فوق "إضافة لغة" - أدخل الرمز (على سبيل المثال
mkللغة المقدونية)، واسم العرض، واسم اللغة، واسم ملف علم SVG، والاتجاه (LTR/RTL)، واللغة الأصلية لنسخ الترجمة. - تظهر اللغة الجديدة في محوّل اللغة وقائمة اللغات الافتراضية في الإعدادات → التعريب.
- تتجاوز ترجمة قاعدة البيانات الملف تلقائيًا في
lang/{code}/.
محرر الترجمة
يسرد المحرر جميع مفاتيح الترجمة حسب الملف (الأصول، التنقل، الإعدادات...). يعرض كل مفتاح الملف الأساسي ويتجاوز قاعدة البيانات (إن وجدت).
- قم بالتصفية حسب اللغة أو مجموعة الترجمة أو البحث النصي.
- انقر على القيمة لتحريرها في السطر؛ احفظ في قاعدة البيانات الآن.
- إعادة تعيين المفتاح للعودة إلى الملف الأساسي.
- يمكن تحرير اللغة المضمنة (en، vi، es...) ؛ لغة مخصصة بالكامل من قاعدة البيانات.
- يمكن فقط للمستخدمين الذين لديهم إذن إدارة الترجمات الوصول إلى هذه الصفحة.
استيراد / تصدير CSV
- تصدير — تنزيل جميع مفاتيح اللغة بتنسيق CSV (
group,key,value). - Import — تحميل ملف CSV في نفس العمود؛ تم تحديث تجاوز قاعدة البيانات، وإضافة مفتاح جديد.
اللغة الافتراضية وفقا للمستخدم
كل مستخدم لديه عمود locale. يتم إرسال رسائل الإشعارات تلقائيًا وفقًا للغة المستلم بفضل عقد Laravel HasLocalePreference.
اللغة الافتراضية للموقع موجودة في الإعدادات → الترجمة → اللغة الافتراضية. يتجاوز المستخدمون الفرديون عبر محوّل اللغة الموجود في الرأس.
قائمة الميزات (15 مجموعة وحدات)
إدارة المركبات
- رمز السيارة الذي تم إنشاؤه تلقائيًا (بادئة VH)
- لوحة الترخيص، VIN، الطراز، نوع الوقود
- إنشاء رموز QR وطباعتها بكميات كبيرة
- الحالة، الحالة، تتبع العداد
- استيراد/تصدير Excel بكميات كبيرة
- استنساخ سيارة عند شراء العديد من السيارات المماثلة
- صفحة تفاصيل مكونة من 7 علامات تبويب مع مخطط زمني لدورة الحياة
المتطلبات والتسليم
- طلب العملية → الموافقة → الدفع
- التقويم والكشف عن التقويم المكرر
- مخطط الضرر ثنائي الأبعاد + التوقيع الرقمي
- تصدير تقرير تسليم PDF
صيانة
- جدولة الوقاية والتصحيح
- الجدول الزمني حسب مستوى الأولوية
- قم بجدولة الصيانة الوقائية التالية بنفسك
- تتبع النفقات → مزامنة النفقات التلقائية
- تذكير بالبريد الإلكتروني قبل الموعد المحدد
الامتثال والوقود
- قسم الامتثال (التأمين والتسجيل والترخيص)
- مراقبة انتهاء رخصة القيادة
- سجل الوقود وتحميل الإيصالات وضغط الصور
- التحقق من الاحتيال على مدار الساعة
التكلفة الإجمالية للملكية والإهلاك
- 3 طرق للإهلاك متضمنة وحدات الإنتاج (كم)
- جدول التكلفة الإجمالية للملكية (TCO) مع مؤشر التكلفة/كم
- مزامنة تكاليف الوقود والصيانة تلقائيا
- الرسم البياني منحنى الاستهلاك
تقرير
- 7 أنواع من تقارير الأسطول
- تصدير إكسل + بي دي إف
- لوحة القيادة ApexCharts
- تصفية حسب الفترة الزمنية
تشغيل أسطول المركبات
- النتيجة الصحية للأسطول، يتم إعادة حسابها يوميًا
- إدارة برامج التشغيل، ومزامنة رخص القيادة
- تكاليف المركبات (التأمين، رسوم المرور، مواقف السيارات ...)
- مسح QR سريع للسائقين (الوقود، العداد، الحوادث)
متعدد اللغات
- 11 لغة لواجهة المستخدم + لغة مخصصة
- محرر الترجمة والبحث والتحرير المضمن
- استيراد/تصدير ملف CSV لتحديثات الدُفعات
- تنطبق المنطقة الزمنية والعملة في جميع أنحاء التطبيق
العلامة التجارية والمظهر
- عنوان علامة تبويب المتصفح من الإعدادات → العلامة التجارية → اسم التطبيق
- تخصيص اللون في الإعدادات → المظهر (فاتح وداكن)
المستخدمون والأدوار
لدى FleetHub 5 أدوار متاحة لعمليات الأسطول الداخلية:
| دور | قوة |
|---|---|
| مسؤل | التحكم الكامل في النظام - المستخدمون، والأقسام، والإعدادات، وسجلات التدقيق، وخطافات الويب، والترجمات |
| إدارة أسطول المركبات | إدارة المركبات والسائقين والطلبات وعمليات التسليم والصيانة وسجلات الوقود؛ الموافقة على الطلب؛ تقرير كامل |
| محاسب | جداول التكلفة الإجمالية للملكية، والتكاليف، والإهلاك، وتقارير الامتثال - التركيز المالي، والعرض في المقام الأول |
| رئيس القسم | تصفح طلبات غرفتك، وعرض المركبات، وتقديم تقرير إلى الإدارات |
| سائق | عرض المركبات المعلقة، وتسجيل سجلات الوقود، ومسح QR بسرعة، وعرض طلباتك |
الحساب التجريبي (كلمة المرور: password): admin@fleethub.test, manager@fleethub.test, dept@fleethub.test, accountant@fleethub.test, driver@fleethub.test. تمكين البيانات التجريبية عند التثبيت أو البذر. أذونات Spatie - يمكن للمسؤولين ضبط كل إذن.
إدارة المركبات
إنشاء سيارة جديدة
- انتقل إلى المركبات → المركبات الجديدة.
- املأ رقم لوحة الترخيص والطراز والسنة ونوع الوقود والفئة والقسم.
- أضف تاريخ الشراء والسعر (مطلوب للإهلاك والتكلفة الإجمالية للملكية).
- تحميل الصور (ملفات متعددة، بحد أقصى 5 ميغابايت لكل منها - يتم ضغطها تلقائيًا على الهاتف المحمول).
- حفظ - يتم إنشاء رمز السيارة ورمز الاستجابة السريعة تلقائيًا.
تنسيق رمز السيارة
الافتراضي: {PREFIX}-{YEAR}-{NNNN}، على سبيل المثال VH-2026-0001. قم بالتكوين في الإعدادات → الأسطول → بادئة رمز المركبة.
استيراد بالجملة
- اضغط على استيراد في صفحة المركبات.
- تحميل قوالب اكسل.
- املأ البيانات — الأعمدة المطلوبة:
license_plate،make،model،category_name. - تحميل الملفات.
رمز الاستجابة السريعة والمسح السريع
تحتوي كل مركبة تلقائيًا على رمز الاستجابة السريعة عند إنشائها. قم بالمسح لفتح صفحة المركبات العامة أو قم بإجراءات سريعة في التطبيق للسائقين الذين قاموا بتسجيل الدخول.
طباعة ملصقات QR
- ملصق واحد: انقر فوق رمز الطابعة الموجود على السيارة.
- طباعة الدفعات: حدد مركبات متعددة → طباعة ملصقات QR. مقاس A4، 2 ملصق/صف.
المسح في التطبيق
انقر على مسح QR في صفحة المركبة. السماح بالكاميرات. يعمل على المتصفحات الحديثة التي تستخدم HTTPS أو المضيف المحلي.
صفحة السيارات العامة
تحتوي كل مركبة على عنوان URL عام على /v/{vehicle_code} — وهو مفيد للتعرف السريع دون الحاجة إلى تسجيل الدخول.
- قم بالتكوين في الإعدادات → الأسطول → صفحة المركبات العامة: عام، يتطلب تسجيل الدخول أو إيقاف التشغيل.
- يعرض وضع الضيف المعلومات الأساسية فقط (لوحة الترخيص، الطراز/الطراز). الإجراء السريع يتطلب تسجيل الدخول.
- بعد تغيير
APP_URL، اضغط على إعادة إنشاء جميع رموز QR في الإعدادات.
إجراء
اطلب سيارة
يرسل الموظف طلبًا لاستخدام مركبة. البث: requested → approved → returned (أو rejected). مدير الأسطول أو رئيس قسم الموافقة. يعرض التقويم حجوزات المركبات للأسطول بأكمله. أعد السيارة المتأخرة وأرسل بريدًا إلكترونيًا تحذيريًا.
تسليم السيارة
- عند الموافقة على الطلب، قم بإنشاء خروج من التسليم قبل أن يلتقط السائق المركبة.
- سجل الساعة، وأكمل قائمة المراجعة، وحدد الضرر على المخططات ثنائية الأبعاد، وأرفق الصور والتوقيعات الرقمية.
- قم بحفظ وتنزيل تقرير تسليم PDF لسجلاتك.
- عند إعادة السيارة، قم بإنشاء تسليم — مقارنة الحالة، تحديث العداد، حذف مهمة السائق.
- إكمال تسليم الاستلام يُعلّم الطلب كمُعاد ويضبط حالة المركبة إلى متاحة.
الاستهلاك والتكلفة الإجمالية للملكية
يقوم FleetHub بحساب استهلاك السيارة باستخدام إحدى الطرق الثلاث. يتم تضمين الإهلاك في جدول التكلفة الإجمالية للملكية بالإضافة إلى سجلات الوقود والمصروفات.
| طريقة | وصفة | في حالة الاستخدام |
|---|---|---|
| خط مستقيم | (Cost - Salvage) / Useful Life | الأكثر شعبية؛ تنخفض بالتساوي كل عام |
| التوازن يتناقص تدريجيا | 2 / Useful Life × Book Value | الاستهلاك السريع. الأغراض الضريبية |
| وحدة الإنتاج | (كم هذه الفترة / إجمالي الكيلو مترات المتوقعة) × (سعر الشراء − قيمة التصفية) | توقعت المركبة إجمالي عدد الكيلومترات (حسب الساعة) |
الافتراضي يرث من فئة السيارة. current_value يقوم بتحديث نفسه شهريًا عبر fleethub:update-vehicle-values. التكلفة الإجمالية للملكية = سعر الشراء + إجمالي تكلفة السيارة في الفترة المحددة.
الحقول المخصصة
المشرف → الحقول المخصصة تسمح بإضافة خصائص غير محدودة للمركبات:
- النوع: نص، رقم، تاريخ، تحديد، منطقة نص، ملف، خانة اختيار
- النطاق: ينطبق على جميع الفئات أو فئات محددة من المركبات
- الترتيب: مقبض السحب والإسقاط
- يتم تحديد الحقل الإلزامي عند حفظ السيارة
تقرير
سبعة تقارير متكاملة للأسطول، يمكن الوصول إليها من قائمة التقارير:
- إجمالي التكلفة الإجمالية للملكية — إجمالي تكلفة ملكية السيارة والأسطول بأكمله
- جدول الإهلاك — الإهلاك حسب المركبة، مع تصدير الملف
- تكاليف الصيانة — الإنفاق حسب المركبة والنوع والشهر
- استهلاك الوقود والتكلفة — الاتجاه كم/لتر، وضع علامات غير منتظمة
- استخدام طلب المركبة — معدل حجز المركبة بمرور الوقت
- انتهاء الامتثال — وثائق المركبة ورخصة القيادة على وشك الانتهاء
- تخصيص المركبات حسب القسم — المركبات والاستخدام حسب القسم
جميع التقارير تدعم تصدير Excel و PDF عبر الزر الموجود أعلى الصفحة.
التكامل عبر الويب
يمكن لـ FleetHub إخطار الخدمات الخارجية عند وجود أحداث مهمة للأسطول.
أحداث التوفر
vehicle.created,vehicle.updated,vehicle.deletedrequisition.approved,requisition.rejected,requisition.overdue,requisition.returnedhandover.completedcompliance.expiring,compliance.expiredmaintenance.due,maintenance.overdue,maintenance.completedfleet_health_score.dropped
تنسيق الحمولة
{
"event": "handover.completed",
"timestamp": "2026-06-23T08:00:00+00:00",
"data": {
"vehicle_id": 1,
"vehicle_code": "VH-2026-0001",
"license_plate": "51A-12345",
"handover_id": 12,
"direction": "outgoing",
"driver_id": 4
}
}
التحقق من التوقيع
إذا تم تكوينه باعتباره سريًا، فسيكون للطلب رأسًا X-FleetHub-Signature يحتوي على HMAC-SHA256 الخاص بالنص. التحقق من الجانب الخاص بك:
$expected = hash_hmac('sha256', $rawBody, $secret);
if (hash_equals($expected, $request->header('X-FleetHub-Signature'))) {
// صالح
}
إعادة محاولة السياسة
يفشل التسليم ويحاول مرة أخرى 3 مرات، كل 200 مللي ثانية. بعد 10 حالات فشل متتالية، يتوقف خطاف الويب عن العمل تلقائيًا.
المهام المجدولة
يستخدم FleetHub جدولة Laravel لمهام الخلفية. فقط one cron — يقوم Laravel بتشغيل كل أمر fleethub: في الوقت المحدد.
الاستضافة المشتركة (Cron Jobs cPanel / Hostinger)
راجع تثبيت cPanel → الخطوة 7 أو تثبيت Hostinger → الخطوة 5. باختصار: متقدم → Cron Jobs، الأمر:
/usr/bin/php /home/uXXXXXX/public_html/artisan schedule:run
التقويم: كل دقيقة (* في الحقول الخمسة).
أمر cPanel كرون
استبدل CPANELUSER باسم مستخدم cPanel الخاص بك:
/usr/local/bin/php /home/CPANELUSER/public_html/artisan schedule:run
VPS/خادم خاص (crontab)
قم بتشغيل crontab -e مع مستخدم الويب وأضف:
* * * * * cd /path/to/FleetHub && php artisan schedule:run >> /dev/null 2>&1
الاحتياطي: ping URL الخارجي
إذا لم يكن لدى المضيف cron، فاستخدم عنوان URL الخاص بـ Cron في التطبيق (الإعدادات → النظام) مع cron-job.org (مجانًا، كل 15 دقيقة).
يتم تشغيل المهمة تلقائيا
| وقت | يأمر | غاية |
|---|---|---|
| يوميا 08:00 | fleethub:send-requisition-overdue-alerts | تمت الموافقة على الطلب ولكن لم يتم دفعه بعد تاريخ الإغلاق |
| يوميا 08:30 | fleethub:send-maintenance-reminders | للتذكير بأن الصيانة ستنتهي قريبًا |
| يوميا 09:00 | fleethub:send-compliance-expiry-alerts | تنتهي صلاحية الامتثال في 14/30/7/1 يومًا |
| يوميا 09:30 | fleethub:send-driver-license-alerts | تحذير رخصة القيادة على وشك الانتهاء |
| اليوم الأول من كل شهر 02:00 | fleethub:update-vehicle-values | تحديث قيمة السيارة الحالية من الإهلاك |
| يوميا 03:00 | fleethub:recalculate-fleet-health-score | إعادة حساب وتخزين نقاط صحة الأسطول |
أدلة الترقية
FleetHub v1.0.0 هو الإصدار الأول على CodeCanyon.
استكشاف الأخطاء وإصلاحها
"تم رفض الإذن" للتخزين
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
الماسح الضوئي QR لا يفتح الكاميرا
تتطلب واجهة برمجة تطبيقات كاميرا المتصفح HTTPS. قم بتثبيت SSL أو استخدم localhost عند الاختبار.
لم يتم استلام البريد الإلكتروني
تحقق من storage/logs/laravel.log بحثًا عن الأخطاء. استخدم الإعدادات → البريد الإلكتروني → إرسال بريد إلكتروني تجريبي لتأكيد معلومات SMTP. تأكد من أن خادم SMTP يسمح بإرسال عناوين IP.
قاعدة البيانات "تم رفض الوصول" (1045) على لوحة التحكم
مستخدم/كلمة مرور خاطئة، لم يتم تعيين المستخدم لقاعدة البيانات، أو أن الأحرف الخاصة في كلمة المرور تالفة .env. راجع تثبيت cPanel ← المشكلات الشائعة.
خطأ الترحيل 1067 (القيمة الافتراضية غير صالحة)
يرفض الوضع الصارم لـ MySQL على الاستضافة المشتركة أعمدة timestamp NOT NULL متعددة. تم إصلاحه من الإصدار 2.1.0+. تحديث الحزمة أو تغيير yêu cầu xe_date / expected_return_date إلى dateTime في الترحيل يتطلب xes.
APP_KEY مفقود / الخطأ 500 قبل التثبيت
يحتاج Laravel إلى APP_KEY في .env قبل تشغيل التطبيق. إذا لم يكن لدى cPanel محطة طرفية، فراجع تثبيت cPanel → الخطوة 5 (SSH أو genkey.php أو الإنشاء على جهاز الكمبيوتر).
إعادة ضبط الإعدادات
احذف storage/installed.lock وقم بالوصول إلى /install مرة أخرى. سيتم حذف البيانات الموجودة إذا تم تشغيل الترحيل مرة أخرى.
الأداء — قائمة السيارات البطيئة
تشغيل php artisan optimize. تأكد من تشغيل فهرس MySQL vehicles.vehicle_code، vehicles.license_plate، vehicles.status.
تغيير السجل
الإصدار 1.0.0 — الإصدار الأول (2026-06)
- CRUD السيارة باستخدام رمز الاستجابة السريعة الذي تم إنشاؤه ذاتيًا والصفحة العامة
/v/{vehicle_code} - 5 أدوار (المسؤول، مدير الأسطول، المدير، المحاسب، السائق)
- إدارة برامج التشغيل ومزامنة انتهاء صلاحية رخصة القيادة مع قسم الامتثال
- عملية طلب المركبة مع الجدول الزمني والتنبيهات المتأخرة
- قم بتسليم السيارة باستخدام مخطط الضرر ثنائي الأبعاد وقائمة المراجعة والتوقيع وملف PDF
- سجل الوقود، مكافحة الاحتيال في العدادات، مزامنة النفقات التلقائية
- تكلفة السيارة وجدول التكلفة الإجمالية للملكية مع تحليل التكلفة/كم
- الاستهلاك - القسط الثابت، الرصيد المتناقص، وحدات الإنتاج (كم)
- يتوافق المنتج مع تحذير انتهاء الصلاحية لمدة 30/14/7/1 يوم
- جدولة الصيانة والتجديد الذاتي الوقائي وتتبع التكاليف
- النتيجة الصحية للأسطول وإعادة الحساب اليومي والوسائط التفصيلية
- 7 تقارير للأسطول وتصدير Excel وPDF
- الحقول المخصصة (7 أنواع) حسب فئة السيارة
- تشير خطافات الويب إلى HMAC (
X-FleetHub-Signature) وحاول مرة أخرى - سجل تدقيق Spatie Activitylog مع الاختلافات
- واجهة مستخدم متعددة اللغات: 11 لغة بما في ذلك العربية RTL والهندية
- إعدادات الشركة والأسطول والبريد الإلكتروني والإشعارات والامتثال المسبقة
- مثبت الويب مع بذارة البيانات التجريبية
- الوضع المظلم، واجهة المستخدم للجوال أولاً، ضغط الصور عند التحميل
ملحوظة
مكتبة مفتوحة المصدر المستخدمة
- Laravel 11 — MIT
- Vue 3 — MIT
- Inertia.js — MIT
- Tailwind CSS — MIT
- Spatie Permission, Media Library, Activitylog — MIT
- Phosphor Icons — MIT (duotone weight)
- ApexCharts — MIT
- html5-qrcode — Apache 2.0
- Simple QrCode — MIT
- Laravel Excel — MIT
- Laravel DomPDF — MIT