عن المشروع

Wakapi هو خادم خلفي مجاني ومفتوح المصدر وذاتي الاستضافة ومتوافق مع WakaTime، وهو أداة تتبع نشاط البرمجة الشائعة. صُمم للمطورين الذين يرغبون في الاحتفاظ بإحصائيات البرمجة الخاصة بهم على بنيتهم التحتية الخاصة مع الاستمرار في استخدام إضافات محرر WakaTime الحالية. ## ما يفعله يستقبل Wakapi نبضات القلب من أدوات عميل WakaTime الرسمية ويحولها إلى إحصائيات حول المشاريع واللغات والمحررات والمضيفين وأنظمة التشغيل. يوفر لوحة معلومات ويب وشارات قابلة للتضمين وتقارير بريد إلكتروني أسبوعية وواجهة REST API وتصدير مقاييس متوافقة مع Prometheus. يوصف بأنه متوافق جزئيًا مع WakaTime ويمكنه أيضًا التكامل مع WakaTime نفسه. ## خيارات النشر يسرد ملف README عدة طرق لتشغيل Wakapi: - استخدام خدمة السحابة المستضافة على wakapi.dev. - تشغيل إصدار بسرعة عبر سكربت تثبيت شل. - تشغيل صورة Docker الرسمية (ghcr.io/muety/wakapi)، مع وحدة تخزين دائمة وملح لكلمة المرور. SQLite هي قاعدة البيانات الافتراضية؛ كما يدعم MySQL وPostgres. يدعم Docker Compose وDocker Secrets، ويوجد مخطط Helm مجتمعي لـ Kubernetes. - الترجمة والتشغيل من المصدر باستخدام Go، مع ملف تكوين YAML. يُنصح بالتشغيل كخدمة SystemD لعمليات النشر المستقلة. ## إعداد العميل يعتمد Wakapi على أدوات عميل WakaTime مفتوحة المصدر. يثبت المستخدمون إضافة WakaTime لمحررهم، ثم يعدلون `~/.wakatime.cfg` لتوجيه `api_url` إلى نسخة Wakapi الخاصة بهم وتعيين مفتاح API الخاص بـ Wakapi. يمكن تكوين وكيل من جانب العميل اختياريًا. يمكن تشغيل Wakapi وWakaTime بالتوازي، إما من خلال التكوين من جانب العميل أو من خلال ميزة الترحيل في Wakapi، التي تعيد توجيه نبضات القلب إلى WakaTime. ## التكوين يمكن توفير التكوين من خلال ملف YAML أو متغيرات البيئة. يوثق ملف README مجموعة واسعة من الخيارات، بما في ذلك: - إعدادات التطبيق: تمكين لوحة الصدارة ونطاقها ووقت التوليد ومتطلبات المصادقة؛ جداول التجميع والتقارير الأسبوعية؛ أوقات تنظيف البيانات وتحسين قاعدة البيانات؛ إعدادات الاستيراد (التمكين وحجم الدفعة والتراجع وحدود المعدل وقائمة المضيفين المسموح بها)؛ الحد الأقصى لعمر نبضة القلب؛ تسخين ذاكرة التخزين المؤقت؛ تعيينات اللغات المخصصة؛ قوالب عناوين URL للصور الرمزية؛ تنسيقات التاريخ والوقت؛ جهة اتصال الدعم؛ حدود الاحتفاظ بالبيانات والحسابات غير النشطة. - إعدادات الخادم: المنفذ وعناوين IPv4/IPv6 ومقبس UNIX وصلاحياته وتنسيق السجل ومهلة الطلب ومسارات شهادة ومفتاح TLS والمسار الأساسي وعنوان URL العام. - إعدادات الأمان: تعطيل المصادقة المحلية، تعطيل WebAuthn، ملح كلمة المرور، مفتاح ملف تعريف الارتباط، ملفات تعريف الارتباط غير الآمنة، عمر ملف تعريف الارتباط، التسجيل المحلي، تسجيل OIDC، التحقق من TLS لـ OIDC، وCAPTCHA للتسجيل. ## ملاحظات ينص ملف README على أنه نظرًا لوقت المشرف المحدود، لا يتم قبول طلبات السحب مؤقتًا. المشروع مرخص بموجب ترخيص مفتوح المصدر ويشرف عليه muety.