প্রকল্প সম্পর্কে

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 সাপোর্টেড, এবং Kubernetes-এর জন্য একটি কমিউনিটি Helm চার্ট বিদ্যমান। - Go দিয়ে সোর্স থেকে কম্পাইল করে চালান, একটি YAML কনফিগারেশন ফাইল ব্যবহার করে। স্ট্যান্ডঅ্যালোন ডিপ্লয়মেন্টের জন্য SystemD সার্ভিস হিসেবে চালানো সুপারিশ করা হয়। ## ক্লায়েন্ট সেটআপ Wakapi ওপেন-সোর্স WakaTime ক্লায়েন্ট টুলের উপর নির্ভর করে। ব্যবহারকারীরা তাদের এডিটরের জন্য WakaTime প্লাগইন ইনস্টল করেন, তারপর `~/.wakatime.cfg` এডিট করে `api_url` তাদের Wakapi ইনস্ট্যান্সের দিকে নির্দেশ করেন এবং তাদের Wakapi API কী সেট করেন। একটি ক্লায়েন্ট-সাইড প্রক্সি ঐচ্ছিকভাবে কনফিগার করা যেতে পারে। Wakapi এবং WakaTime সমান্তরালে চলতে পারে, হয় ক্লায়েন্ট-সাইড কনফিগারেশনের মাধ্যমে অথবা Wakapi-এর রিলে ফিচারের মাধ্যমে, যা হার্টবিট WakaTime-এ ফরওয়ার্ড করে। ## কনফিগারেশন কনফিগারেশন একটি YAML ফাইল বা এনভায়রনমেন্ট ভেরিয়েবলের মাধ্যমে প্রদান করা যেতে পারে। README-তে বিস্তৃত অপশন ডকুমেন্ট করা হয়েছে, যার মধ্যে রয়েছে: - অ্যাপ্লিকেশন সেটিংস: লিডারবোর্ড সক্ষমতা, স্কোপ, জেনারেশন সময় এবং অথেনটিকেশন প্রয়োজনীয়তা; অ্যাগ্রিগেশন এবং সাপ্তাহিক রিপোর্ট সময়সূচি; ডেটা ক্লিনআপ এবং ডাটাবেস অপটিমাইজেশন সময়; ইমপোর্ট সেটিংস (সক্ষমতা, ব্যাচ সাইজ, ব্যাকঅফ, রেট লিমিট, হোস্ট হোয়াইটলিস্ট); হার্টবিট সর্বোচ্চ বয়স; ক্যাশ ওয়ার্মিং; কাস্টম ভাষা ম্যাপিং; অ্যাভাটার URL টেমপ্লেট; তারিখ এবং ডেটটাইম ফরম্যাট; সাপোর্ট কন্টাক্ট; ডেটা রিটেনশন এবং নিষ্ক্রিয়-অ্যাকাউন্ট সীমা। - সার্ভার সেটিংস: পোর্ট, IPv4/IPv6 অ্যাড্রেস, UNIX সকেট এবং এর পারমিশন, লগ ফরম্যাট, রিকোয়েস্ট টাইমআউট, TLS সার্টিফিকেট এবং কী পাথ, বেস পাথ এবং পাবলিক URL। - সিকিউরিটি সেটিংস: লোকাল অথেনটিকেশন নিষ্ক্রিয় করা, WebAuthn নিষ্ক্রিয় করা, পাসওয়ার্ড সল্ট, কুকি কী, ইনসিকিউর কুকি, কুকি লাইফটাইম, লোকাল সাইনআপ, OIDC সাইনআপ, OIDC TLS ভেরিফিকেশন এবং সাইনআপ CAPTCHA। ## নোট README-তে বলা হয়েছে যে, মেইনটেইনারের সীমিত সময়ের কারণে, পুল রিকোয়েস্ট সাময়িকভাবে গ্রহণ করা হচ্ছে না। প্রজেক্টটি একটি ওপেন-সোর্স লাইসেন্সের অধীনে লাইসেন্সকৃত এবং muety দ্বারা রক্ষণাবেক্ষণ করা হয়।