دليل عملي

‎استضافة ‎Maybe على ‎VPS: إدارة شؤونك المالية بنفسك

الاستضافة الذاتية8 دقائق للقراءةعدد الخطوات: 7

‎في يناير 2024، أصدر ‎Maybe شيفرته المصدرية بموجب رخصة ‎AGPLv3 بعد أن كان يعمل كخدمة سحابية مدفوعة. جاء ذلك في سياق رفعت فيه تطبيقات مالية شهيرة أسعارها أو ألغت خططها المجانية. يتيح ‎Maybe تتبع المعاملات والاستثمارات وصافي الثروة من واجهة واضحة، مستضافة على بنية تحتية تتحكم فيها أنت. يشرح هذا الدليل كيفية تثبيت ‎Maybe على ‎VPS من ‎ServOrbit باستخدام ‎Docker Compose.

المحتويات· ‎لماذا تستضيف بياناتك المالية على خادمك الخاص1/9
  1. 01‎لماذا تستضيف بياناتك المالية على خادمك الخاص
  2. 02‎ما يقدمه ‎Maybe
  3. 03‎المتطلبات التقنية
  4. 04‎تثبيت ‎Maybe على ‎VPS باستخدام ‎Docker Compose
  5. 05‎ربط الحسابات البنكية
  6. 06‎النسخ الاحتياطي لـ‎PostgreSQL والتشفير
  7. 07‎استكشاف الأخطاء: المشكلات الشائعة
  8. 08‎مقارنة: ‎Maybe ذاتي الاستضافة مقابل ‎YNAB و‎Monarch Money
  9. 09‎لمزيد من التعمق

‎لماذا تستضيف بياناتك المالية على خادمك الخاص

‎إسناد بياناتك المالية إلى طرف ثالث يعني قبول شروط التخزين وسياسات مشاركة البيانات والاستمرارية التجارية لهذه الخدمة. رفعت عدة خدمات شهيرة أسعارها بنسبة 30 إلى 60 بالمئة بين عامَي 2023 و2025، أو أغلقت أبوابها كلياً. الاستضافة الذاتية تعالج تساؤلاً مشروعاً: «بياناتي المالية حساسة جداً كي أضعها على خادم أديره بنفسي.» عملياً، يوفر ‎VPS مُهيَّأ بشكل صحيح تشفيراً أثناء النقل عبر ‎TLS، وتشفيراً لوحدة تخزين ‎PostgreSQL على مستوى القرص، ونسخاً احتياطية تلقائية، وقيوداً على الوصول تقتصر على عنوان ‎IP الخاص بك. هذا أصغر بكثير من سطح الهجوم المكشوف لخدمة ‎SaaS تجمع بيانات عشرات الآلاف من المستخدمين.

‎ما يقدمه ‎Maybe

‎يجمع ‎Maybe إدارة الميزانية وتتبع الاستثمارات وحساب صافي الثروة في واجهة واحدة قابلة للاستضافة الذاتية.

  • ‎لوحة تحكم لصافي الثروة (الأصول والخصوم والتطور عبر الزمن)
  • ‎تتبع المعاملات مع تصنيف تلقائي وقواعد قابلة للتخصيص
  • ‎ربط الحسابات البنكية عبر ‎Plaid (الولايات المتحدة وكندا) أو الإدخال اليدوي
  • ‎تتبع الاستثمارات والمحافظ المالية مع أسعار لحظية عبر ‎Synth Finance
  • ‎ميزانيات وأهداف ادخار حسب الفئة
  • ‎تقارير شهرية وسنوية قابلة للتصدير
  • ‎مساعد ذكاء اصطناعي اختياري (يتطلب مفتاح ‎OpenAI) لتحليل المصروفات
  • ‎واجهة متعددة الحسابات: الشريك أو أفراد الأسرة أو العملاء

‎المتطلبات التقنية

‎يعمل ‎Maybe كتطبيق ‎Ruby on Rails مع أربعة خدمات ‎Docker: خادم الويب، وعامل ‎Sidekiq للمهام غير المتزامنة، و‎PostgreSQL 16، و‎Redis. للاستخدام الشخصي أو الفريق الصغير، يكفي ‎VPS بمعالجَين افتراضيَّين و2 غيغابايت من الذاكرة. للاستخدام المهني مع مستخدمين متعددين ومزامنة بنكية نشطة، يُنصح بـ4 غيغابايت من الذاكرة. يجب أن يكون المنفذ 3000 متاحاً (أو عبر بروكسي عكسي من المنفذ 443). خصص 5 غيغابايت لبيانات التطبيق وقاعدة البيانات، إضافة إلى مساحة للنسخ الاحتياطية.

‎تثبيت ‎Maybe على ‎VPS باستخدام ‎Docker Compose

‎يعتمد التثبيت على ‎Docker Compose وملف ‎.env. تبدأ الخطوات التالية من ‎VPS ‎Debian 12 نظيف.

  1. ‎تثبيت ‎Docker Engine

    ‎على ‎Debian/Ubuntu: curl -fsSL https://get.docker.com | sh. تحقق من التثبيت بتشغيل docker run hello-world. يتضمن ‎Docker Engine 23 وما بعده ‎Docker Compose v2 تلقائياً.

  2. ‎إنشاء دليل العمل

    ‎نفّذ mkdir -p /opt/maybe && cd /opt/maybe. سيحتوي هذا الدليل على ملف compose.yml وملف .env.

  3. ‎تنزيل ملف ‎Compose الرسمي

    ‎احصل على المثال المُرفق بالمشروع: curl -o compose.yml https://raw.githubusercontent.com/maybe-finance/maybe/main/compose.example.yml. يُعرِّف هذا الملف الخدمات الأربع والأقراص المسماة.

  4. ‎إنشاء ملف ‎.env

    ‎أنشئ /opt/maybe/.env بالمحتوى التالي: SECRET_KEY_BASE=$(openssl rand -hex 64)، POSTGRES_PASSWORD=كلمة_مرور_قوية، SELF_HOSTED=true، APP_DOMAIN=finance.your-domain.com. أنشئ مفتاحاً سرياً باستخدام openssl rand -hex 64.

  5. ‎تشغيل الخدمات

    ‎من داخل /opt/maybe، شغّل docker compose up -d. سيقوم ‎Docker بتنزيل صور ghcr.io/maybe-finance/maybe:stable و‎PostgreSQL 16 و‎Redis ثم تشغيل الحاويات. يستغرق تهيئة قاعدة البيانات دقيقة إلى دقيقتين.

  6. ‎إعداد بروكسي عكسي

    ‎ضع ‎Nginx أو ‎Caddy أمام المنفذ 3000 لخدمة ‎Maybe عبر ‎HTTPS. مع ‎Caddy: أضف finance.your-domain.com { reverse_proxy localhost:3000 } في ملف Caddyfile. يتولى ‎Caddy إدارة شهادة ‎Let's Encrypt تلقائياً.

  7. ‎إنشاء أول حساب

    ‎انتقل إلى https://finance.your-domain.com. يعرض ‎Maybe نموذج تسجيل عند أول تشغيل. في وضع SELF_HOSTED=true، يصبح أول حساب منشأ مدير النظام. عطّل التسجيل العام من الإعدادات إذا كانت النسخة شخصية.

‎ربط الحسابات البنكية

‎يدعم ‎Maybe طريقتَين لربط الحسابات. يتيح الربط التلقائي عبر ‎Plaid البنوك الأمريكية والكندية: أضف بيانات اعتماد ‎Plaid API (‎PLAID_CLIENT_ID و‎PLAID_SECRET) في ملف .env، ثم اربط حساباتك من الواجهة. بالنسبة للبنوك الأوروبية والعربية، يبقى الإدخال اليدوي للمعاملات الطريقة الرئيسية. يقبل ‎Maybe استيراد ملفات ‎CSV بتنسيق قياسي، مما يتيح الترحيل من جدول بيانات أو تصدير من البنك. يعتمد تتبع الاستثمارات على واجهة ‎Synth Finance API لأسعار الأسهم: أضف SYNTH_API_KEY لتفعيل التقييم التلقائي للمحافظ.

‎النسخ الاحتياطي لـ‎PostgreSQL والتشفير

‎تُخزَّن قاعدة بيانات ‎PostgreSQL في وحدة تخزين ‎Docker المسماة maybe_postgres-data. للنسخ الاحتياطي المنتظم: أنشئ سكريبتاً ينفّذ docker exec maybe-db-1 pg_dump -U maybe_user maybe_production | gzip > /backups/maybe-$(date +%Y%m%d).sql.gz، ثم جدوله بمؤقت ‎systemd أو ‎cron. لاستراتيجية 3-2-1 كاملة، أرسل هذه النسخ المشفرة إلى تخزين كائنات متوافق مع ‎S3 باستخدام ‎Restic أو ‎rclone. يدعم ‎Maybe أيضاً تخزين ملفات التطبيق على ‎Amazon S3 أو ‎Cloudflare R2 عبر متغيرات ACTIVE_STORAGE_SERVICE والمتغيرات المرتبطة بها. يعتمد تشفير البيانات الحساسة في قاعدة البيانات (مفاتيح ‎API والرموز) على مفاتيح ACTIVE_RECORD_ENCRYPTION_* — إن لم تُحددها صراحةً، تُشتق من SECRET_KEY_BASE.

‎قيّد الوصول إلى نسخة ‎Maybe الخاصة بك بوضعها خلف ‎VPN (‎Tailscale أو ‎Headscale) أو بتصفية الوصول حسب عنوان ‎IP في ‎Nginx باستخدام allow 203.0.113.10; deny all;. نسخة المالية الشخصية لا تحتاج إلى أن تكون متاحة للعموم: الوصول الخاص يقلص سطح الهجوم بشكل كبير دون التأثير على سهولة الاستخدام.

‎استكشاف الأخطاء: المشكلات الشائعة

‎الأخطاء الأكثر شيوعاً بعد تثبيت ‎Maybe على ‎VPS، وحلولها.

  • ‎web exited with code 1 عند بدء التشغيل: قاعدة البيانات لم تكن جاهزة بعد. تحقق بـdocker compose logs db أن ‎PostgreSQL انطلق، ثم نفّذ docker compose restart web worker.
  • ‎صفحة بيضاء أو خطأ 500 بعد التسجيل: تأكد أن SECRET_KEY_BASE مُعرَّف وغير فارغ في .env. مفتاح غائب يمنع ‎Rails من فك تشفير الجلسة.
  • ‎PG::ConnectionBad في سجلات الويب: يجب أن تكون قيمة DB_HOST هي db (اسم خدمة ‎Docker) وليس localhost. راجع ملف .env.
  • ‎المهام غير المتزامنة (مزامنة البنك، التقارير) لا تعمل: خدمة worker غير مُشغَّلة. تحقق بـdocker compose ps أن الخدمات الأربع في حالة running.
  • ‎تراجع بعد التحديث: بعد docker compose pull، شغّل docker compose up --no-deps -d web worker بدلاً من docker compose up -d لتجنب إعادة إنشاء حاويات قاعدة البيانات دون داعٍ.

‎مقارنة: ‎Maybe ذاتي الاستضافة مقابل ‎YNAB و‎Monarch Money

‎تقارن هذه الجدول ‎Maybe ذاتية الاستضافة مع تطبيقات ‎SaaS الرئيسية لإدارة التمويل الشخصي.

مرّر الجدول أفقيًا

‎المعيار‎Maybe (ذاتي الاستضافة)‎YNAB‎Monarch Money
‎التكلفة السنوية‎تكلفة ‎VPS (5-10 €/شهر)‎109 $/سنة‎99.99 $/سنة
‎التحكم في البيانات‎كامل — البيانات على خادمك‎لا — البيانات لدى ‎YNAB‎لا — البيانات لدى ‎Monarch
‎ربط البنوك‎Plaid (أمريكا/كندا) أو يدوي‎Plaid (أمريكا/كندا/أوروبا جزئي)‎Plaid (أمريكا/كندا)
‎تتبع الاستثمارات‎نعم (عبر ‎Synth Finance)‎لا نتيجة أصلية‎نعم
‎لوحة صافي الثروة‎نعم‎لا‎نعم
‎مساعد ذكاء اصطناعي‎اختياري (يتطلب مفتاح ‎OpenAI)‎لا‎نعم (مضمّن)
‎الصيانة المطلوبة‎نعم — تحديثات يدوية‎لا‎لا
‎الرخصة‎AGPLv3 (مفتوح المصدر)‎ملكية خاصة‎ملكية خاصة

‎لمزيد من التعمق

‎يتناول مقال استضافة ‎PostgreSQL على ‎VPS الضبط الدقيق لمحرك قاعدة البيانات لأحمال عمل الإنتاج. يشرح مقال استراتيجية النسخ الاحتياطي 3-2-1 مع ‎Restic و‎S3 كيفية إعداد احتفاظ مشفر وموثَّق الإصدارات. لتأمين الوصول إلى نسخة ‎Maybe دون ‎VPN كامل، يقدم مقال ‎Nextcloud نموذجاً لإعداد ‎Nginx مع مصادقة أساسية.

‎VPS لاستضافة شؤونك المالية مع ‎Maybe

‎تقدم ‎ServOrbit خوادم ‎VPS تعمل بنظام ‎Debian أو ‎Ubuntu، جاهزة لاستقبال ‎Docker. انشر ‎Maybe في دقائق على بنية تحتية تتحكم فيها بالكامل.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.

راسلنا على WhatsAppيُفتح في علامة تبويب جديدة