لماذا Firefly III بدلاً من أداة SaaS؟
Firefly III مشروع ناضج (24 300 نجمة على GitHub، الإصدار v6.6.6 في يوليو 2025، رخصة AGPL-3.0). ما يديره لك: حسابات جارية وادخارية وبطاقات ائتمان وحسابات عملات مشفرة، ميزانيات شهرية وسنوية، قواعد أتمتة المعاملات، تقارير مفصّلة قابلة للتصدير، واستيراد كشوف الحساب عبر GoCardless الأوروبي.
الميزات الرئيسية
- إدارة حسابات متعددة: حسابات جارية وادخارية وبطاقات ائتمان وحسابات عملات مشفرة.
- ميزانيات وأظرف: حدد ميزانيات شهرية وتابع استهلاكها في الوقت الفعلي.
- قواعد أتمتة: قواعد تُطبَّق تلقائياً على المعاملات الجديدة.
- تقارير متقدمة: رسوم بيانية قابلة للتصدير إلى CSV لمحاسبك.
- استيراد البنك: ملفات CSV/OFX + موصّلات GoCardless الأوروبية.
- API REST كاملة: أتمتة إنشاء المعاملات من أي سكريبت.
- واجهة مستجيبة للجوال: اوصل إلى حساباتك من هاتفك عبر المتصفح.
متطلبات الخادم
Firefly III تطبيق PHP/Laravel خفيف. المتطلبات الدنيا: خادم VPS بـ 1 جيجابايت ذاكرة (2 موصى به)، Docker Engine ≥ 24 وDocker Compose V2، اسم نطاق لضبط TLS، المنفذ 8080 (واجهة Firefly III) و8081 (Data Importer)، 5 جيجابايت تخزين كحد أدنى.
التثبيت باستخدام Docker Compose
الخطوة 1 — استنساخ المستودع الرسمي
mkdir -p /opt/firefly && cd /opt/firefly
curl -L https://raw.githubusercontent.com/firefly-iii/docker/main/docker-compose-importer.yml -o docker-compose.yml
curl -L https://raw.githubusercontent.com/firefly-iii/firefly-iii/main/.env.example -o .env
curl -L https://raw.githubusercontent.com/firefly-iii/data-importer/main/.env.example -o .importer.envالخطوة 2 — ضبط متغيرات البيئة
افتح .env وعيّن: DB_PASSWORD، وAPP_KEY (بالضبط 32 حرفاً — أنشئها بـ openssl rand -hex 16)، وAPP_URL، وPOSTGRES_PASSWORD.
الخطوة 3 — تشغيل الحاويات
docker compose up -d
docker compose psيجب أن تظهر ثلاث حاويات بحالة healthy: Firefly III، وقاعدة البيانات PostgreSQL، وData Importer.
الخطوة 4 — الوصول إلى الواجهة
افتح المتصفح على http://<IP_VPS>:8080. أنشئ حساب المسؤول. يرشدك المعالج لإنشاء أول حساب مصرفي.
الخطوة 5 — ضبط Nginx مع TLS
أضف موقع Nginx لـFirefly III (المنفذ 8080) وData Importer (المنفذ 8081):
certbot --nginx -d firefly.نطاقك.com -d importer.نطاقك.comيضبط Certbot إعادة التوجيه HTTP→HTTPS تلقائياً.
الخطوة 6 — استيراد كشوفاتك البنكية
يعمل Data Importer على المنفذ 8081. اذهب إلى http://localhost:8081:
1. ارفع ملف CSV من بنكك أو اتصل عبر GoCardless (البنوك الأوروبية).
2. اختر الحساب المستهدف.
3. انقر استيراد وراجع المعاملات المعيّنة.
إعداد الميزانيات وقواعد الأتمتة
إنشاء ميزانية شهرية: اذهب إلى الميزانيات → ميزانية جديدة، سمِّها (مثلاً «لوازم مكتبية»)، حدد المبلغ الشهري، وربط المعاملات بها.
إنشاء قاعدة أتمتة: اذهب إلى الأتمتة → القواعد → قاعدة جديدة، حدد المشغّل (مثلاً «الوصف يحتوي على Amazon»)، ثم الإجراء (تعيين لفئة اللوازم المكتبية).
التصدير لمحاسبك: اذهب إلى تصدير البيانات، اختر صيغة CSV، وصفّ حسب الفترة والحساب.
جدولة النسخ الاحتياطية التلقائية
تخزّن Firefly III بياناتها في PostgreSQL. جدوِل نسخة احتياطية يومية:
mkdir -p /opt/firefly/backups
docker compose exec -T db pg_dump -U firefly firefly | gzip > /opt/firefly/backups/firefly-$(date +%Y%m%d).sql.gz
echo '0 3 * * * root /opt/firefly/backup.sh' >> /etc/cron.d/firefly-backupAPP_KEY غير صالح : الخطأ الأكثر شيوعاً
إذا أظهر Firefly III صفحة بيضاء أو فشل تسجيل الدخول، افحص APP_KEY في .env أولاً. قاعدتان صارمتان: 32 حرفاً بالضبط، ولا تغيّرها أبداً بعد أول إقلاع.
أنشئ مفتاحاً صالحاً: openssl rand -hex 16
Firefly III مقابل YNAB وBudgea
| المعيار | Firefly III (استضافة ذاتية) | YNAB | Budgea |
|---|---|---|---|
| السعر | مجاني (تكلفة VPS ~5-10€/شهر) | ~99$/سنة | ~60€/سنة |
| استضافة البيانات | خادم VPS الخاص بك (سيادة كاملة) | خوادم أمريكية | خوادم فرنسية |
| استيراد البنك | CSV/OFX + GoCardless (أوروبا) | اتصال مباشر (أمريكا) | اتصال مباشر (فرنسا) |
| قواعد الأتمتة | نعم | نعم | لا |
| REST API | نعم (كاملة) | لا (عامة) | لا |
| متعدد العملات | نعم | لا (دولار فقط) | نعم (جزئي) |
| التقارير المخصصة | نعم (متقدمة) | محدودة | محدودة |
| تطبيق جوال أصيل | لا (ويب متجاوب) | نعم (iOS/Android) | نعم |
حل المشكلات الشائعة
Firefly III تعرض صفحة بيضاء: تحقق من سجلات الحاوية بـ docker compose logs firefly-iii. الأسباب الأكثر شيوعاً: APP_KEY غير صالح أو PostgreSQL لم يكن جاهزاً بعد.
Data Importer يرفض ملف CSV: تأكد أن البنك يصدّر CSV بفواصل (,). حوّل بـ sed 's/;/,/g' import.csv > import-comma.csv.
معاملات مكررة بعد الاستيراد: فعّل إلغاء التكرار في Data Importer عبر تحديد تجاهل التكرارات.
تحديث Firefly III
cd /opt/firefly
docker compose pull
docker compose up -dتُشغَّل ترحيلات قاعدة البيانات تلقائياً عند أول إقلاع للنسخة الجديدة. قبل أي تحديث رئيسي، خذ نسخة احتياطية يدوية من PostgreSQL.