इस प्रोजेक्ट के बारे में

Bast एक ओपन-सोर्स वेब एनालिटिक्स एप्लिकेशन है, जिसे उन छोटी साइटों के लिए बनाया गया है जिन्हें कुकीज़ या थर्ड-पार्टी ट्रैकिंग सेवाओं के बिना बुनियादी ट्रैफिक इनसाइट की आवश्यकता होती है। इसका मुख्य फोकस प्राइवेसी और सरलता है: इसे एक ऐसे प्रोजेक्ट के रूप में वर्णित किया गया है जिसे लेखक ने व्यक्तिगत उपयोग के लिए बनाया था और बाद में साझा किया क्योंकि कुछ दोस्तों को यह उपयोगी लगा। महत्वपूर्ण स्थिति नोट: README स्पष्ट रूप से बताता है कि इस प्रोजेक्ट को अब मेंटेन नहीं किया जा रहा है। जो कोई भी इसका उपयोग करने पर विचार कर रहा है, उसे इसे एक रीड-ओनली कोडबेस, फोर्क के लिए शुरुआती बिंदु, या एक रेफरेंस इम्प्लीमेंटेशन के रूप में मानना चाहिए, न कि एक समर्थित उत्पाद के रूप में। यह क्या मापता है मेट्रिक्स को समय के साथ दिनों के परमाणु पैमाने पर स्टोर किया जाता है। पेजव्यू गुमनाम या पहचाने गए विजिटर्स की गणना करते हैं, इसलिए तीन विजिटर्स तीन पेजव्यू उत्पन्न करते हैं; प्रत्येक पेजव्यू रेफरर और वर्तमान URL रिकॉर्ड करता है। यूजर्स बिना कुकीज़ के प्राप्त यूनिक विजिटर्स की संख्या हैं: एक आइडेंटिफायर विजिटर के IP एड्रेस और यूजर-एजेंट से बनाया जाता है, जिसे हैश करके डेटाबेस में स्टोर किया जाता है। 30 मिनट की निष्क्रियता के बाद एक नया सेशन शुरू होता है, इसलिए उस विंडो के भीतर बार-बार आने वाली विजिट्स को एक सेशन गिना जाता है। साइट पर औसत समय केवल तब रिकॉर्ड किया जाता है जब यह प्रति सेशन 5 सेकंड और 30 मिनट के बीच होता है। यूजर-एजेंट पार्सिंग woothee लाइब्रेरी द्वारा संभाली जाती है, जो ब्राउज़र का नाम, ऑपरेटिंग सिस्टम और संबंधित विवरण प्रदान करती है। जियोलोकेशन को एक वांछित लेकिन अभी तक लागू न किए गए फीचर के रूप में उल्लेख किया गया है। आर्किटेक्चर और स्टैक बैकएंड Rust में actix-web फ्रेमवर्क और PostgreSQL ORM के रूप में diesel के साथ लिखा गया है। फ्रंटएंड मुख्य रूप से स्टैटिक है, जिसे React और Next.js के साथ बनाया गया है, और इंटरफेस chakra-ui का उपयोग करता है, जिसमें एक कस्टम-बिल्ट चार्ट है। इसके लिए PostgreSQL डेटाबेस की आवश्यकता होती है। इसे चलाना README कई तरीके बताता है। Unix और OS/X पर, postgres फीचर के साथ diesel CLI इंस्टॉल करें, चलते हुए PostgreSQL इंस्टेंस के खिलाफ diesel setup चलाएं, फिर website फोल्डर के अंदर npm install के साथ फ्रंटएंड डिपेंडेंसी इंस्टॉल करें। एक Docker रूट का भी वर्णन है: docker-compose up, जिसमें docker-compose.yml में एनवायरनमेंट वेरिएबल्स को कस्टमाइज़ किया जा सकता है। डेवलपमेंट निर्देश .env.sample से .env फ़ाइल बनाने, संपादन के दौरान API को रीलोड करने के लिए वैकल्पिक रूप से cargo-watch का उपयोग करने, अन्यथा cargo run चलाने और npm run dev के साथ फ्रंटएंड शुरू करने को कवर करते हैं। सबसे आसान डिप्लॉयमेंट विकल्प के रूप में एक Heroku डिप्लॉय बटन प्रदान किया गया है। README चलते हुए एप्लिकेशन के लिए लोकल पोर्ट 3333 बताता है। योगदान और संदर्भ README प्रश्नों और पुल रिक्वेस्ट को प्रोत्साहित करता है, स्पष्ट रूप से शुरुआती और जूनियर्स का स्वागत करता है, और विवरण के लिए CONTRIBUTING.md की ओर इशारा करता है। यह Fathom को एक कोडबेस के रूप में श्रेय देता है जिसे लेखक ने पढ़ा था, और नोट करता है कि कुकी-मुक्त यूजर आइडेंटिफिकेशन दृष्टिकोण Ackee (एक JavaScript प्रोजेक्ट) से प्रेरित था। केवल कोड भाषा यहाँ वर्गीकरण का कारण नहीं है: उपयोगकर्ताओं के लिए इसका मूल्य उनके अपने इंफ्रास्ट्रक्चर पर डिप्लॉय की गई वेबसाइट के लिए ट्रैफिक एनालिटिक्स है।