عن المشروع

finPal هو تطبيق تمويل شخصي مفتوح المصدر ويستضيفه المستخدم بنفسه، يصفه مطوروه بأنه "إدارة مالية تركز على الخصوصية" بدون تتبع أو بيع بيانات أو اشتراكات للنسخة المستضافة ذاتياً. المشروع منشور بموجب رخصة AGPL-3.0، ويوضح ملف README صراحة أنه في مرحلة تطوير نشطة رئيسية: حيث تتغير الميزات وواجهات برمجة التطبيقات (APIs) ومخطط قاعدة البيانات بشكل متكرر، لذا يُنصح بإجراء نسخ احتياطية قبل التحديثات. المشكلة التي يستهدفها تم تصميم التطبيق للإجابة على السؤال اليومي حول أين ذهبت الأموال خلال الشهر. الميزات المثبتة - تتبع النفقات مع تصنيف تلقائي وقواعد معاملات تتكيف مع أنماطك. - ميزانيات مع تتبع في الوقت الفعلي وتنبيهات تهدف إلى العمل قبل الإفراط في الإنفاق. - تقسيم التكاليف المشتركة للمنزل، بما في ذلك من يدين لمن. - تتبع الاستثمارات عبر المحافظ، مع تحديثات تلقائية للأسعار. - مزامنة البنوك من خلال SimpleFin، أو استيراد CSV من مجلد مراقب يقوم باستيراد الكشوفات تلقائياً. - دعم العملات المتعددة والحسابات المتعددة، بالإضافة إلى الوضع الداكن. - وحدة اختيارية لمكافآت بطاقات الائتمان تسمى pointsPal. - رموز وصول شخصية (Personal access tokens) للبرامج النصية ونماذج LLM المحلية، موثقة بنطاقاتها. التثبيت والتشغيل يوفر ملف README بداية سريعة باستخدام Docker Compose عبر ثلاثة أوامر: استنساخ المستودع، وتشغيل scripts/setup-env.sh لكتابة ملف .env بأسرار مُولدة، ثم تشغيل docker compose up -d. يتم سحب الصور مسبقة البناء، لذا لا يتم بناء أي شيء محلياً. المنفذ الافتراضي هو 80 ويمكن تغييره عبر HTTP_PORT في ملف .env. يصبح أول حساب يسجل الدخول هو المسؤول (admin). يقوم نص التثبيت بتوليد أسرار حقيقية، ويرفض التطبيق البدء باستخدام قيم change_me_* النائبة الموضحة في .env.example، لأنها عامة في المستودع ويمكن استخدامها لتزوير الجلسات. تتم التحديثات عن طريق سحب صور جديدة وإعادة التشغيل. التعامل مع المخطط (Schema) موضوع موثق: سابقاً كان المخطط يُبنى من النماذج عند التشغيل، مما أدى لإنشاء الجداول المفقودة ولكن دون إضافة أعمدة للجداول الموجودة. الآن يقوم التشغيل بتسوية المخطط تلقائياً وبشكل إضافي فقط، حيث يضيف الأعمدة المفقودة القابلة للقيمة null ويوسع الأعمدة الأضيق مما يتوقعه النموذج؛ ولا يقوم أبداً بحذف أو إعادة تسمية أو تضييق أو تغيير نوع الأعمدة. يتم تسجيل البيانات المطبقة ويمكن فحصها عبر docker logs finpal-backend. يمكن تعطيل التسوية التلقائية عبر SCHEMA_AUTO_RECONCILE=false، وبعد ذلك يقوم نص للقراءة فقط scripts/schema_drift.py بطباعة البيانات الدقيقة المطلوبة. الاستثناء الموثق هو العمود NOT NULL بدون قيمة افتراضية، والذي لا يمكن إضافته إلى جدول مأهول ويُترك لعملية ترحيل مع تعبئة البيانات. التوثيق والمجتمع يربط المستودع أدلة للتثبيت، ومتغيرات البيئة، والبنية التحتية، ومتطلبات النظام، ورموز API، واستيراد مجلد CSV، وSimpleFin، وpointsPal، والاختبار والترخيص، بالإضافة إلى دليل المساهمة الذي ينص على أن طلبات السحب (pull requests) تحتاج إلى موافقة اثنين من مطوري palStack، وعادة ما تستغرق المراجعة من 24 إلى 48 ساعة. يتوفر عرض تجريبي مباشر دون الحاجة لتثبيت أي شيء. الاستضافة وخارطة الطريق الاستضافة الذاتية متاحة الآن بكامل الميزات وهي مجانية. أما الاستضافة المدارة باشتراك فوصف بأنها ستتوفر قريباً. هناك تطبيق React Native للهواتف المحمولة لنظامي iOS وAndroid قيد التطوير النشط، يستهدف تسجيل الدخول البيومتري والمزامنة دون اتصال، بينما توصف الواجهة الخلفية وواجهة الويب بأنها جاهزة اليوم. يقر finPal بأصله من متتبع الديون Dollar Dollar Bill Y'all. ملاحظة الترخيص كود التطبيق هو AGPL-3.0، مما يعني أنه يمكن استضافته ذاتياً وتعديله ومشاركته؛ وتشغيل نسخة معدلة كخدمة شبكة يحمل توقعاً بنشر التغييرات. توصف الاستضافة المدارة (finPal Premium) بأنها عرض ملكية منفصل لا يغير ترخيص المستودع.