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

Glance হলো একটি সেলফ-হোস্টেড ওয়েব অ্যানালিটিক্স পরিষেবা যা একটি একক Go বাইনারি (SQLite ফাইল দ্বারা সমর্থিত) অথবা একটি Docker কন্টেইনার হিসেবে সরবরাহ করা হয়। এটি ইচ্ছাকৃতভাবেই সীমিত পরিসরের তথ্যের জন্য তৈরি করা হয়েছে, যেমন: ভিজিটর, পেজ ভিউ, শীর্ষ পেজ, রেফারার, দেশ ও অঞ্চল, ডিভাইস, ব্রাউজার, অপারেটিং সিস্টেম এবং সাধারণ কাস্টম ইভেন্ট। এতে কোনো সেশন, ফানেল, কোহর্ট, হিটম্যাপ বা সেশন রিপ্লে নেই। ট্র্যাকিং: সাইটগুলোতে /glance.js থেকে পরিবেশিত প্রায় ১ KB-এর একটি কুকিহীন স্নিপেট এমবেড করা হয়। এটি প্রতিটি পেজ ভিউয়ের জন্য sendBeacon-এর মাধ্যমে একটি ছোট JSON বডি পোস্ট করে এবং সিঙ্গেল-পেজ অ্যাপের জন্য pushState ও popstate-এর সময় পুনরায় পাঠায়। পেজ থেকে কাস্টম ইভেন্ট ফায়ার করা যায়, তবে এর প্রপার্টিগুলো বর্তমানে উপেক্ষা করা হয়। সার্ভার সাইটের ডোমেনের বিপরীতে পেজ হোস্ট যাচাই করে, পরিচিত বট, webdriver-ফ্ল্যাগড ব্রাউজার এবং অতিরিক্ত বড় বডি বর্জন করে এবং সর্বদা ২০২ উত্তর দেয়। ডেপ্লয়মেন্টের আগে সাইট পরীক্ষার জন্য Localhost এবং প্রাইভেট-LAN অ্যাড্রেস গ্রহণ করা হয়। প্রাপ্ত ডাইমেনশনগুলোর মধ্যে রয়েছে ব্রাউজার, OS, ডিভাইস, দেশ, অঞ্চল এবং ক্যাম্পেইন ট্যাগ। প্রাইভেসি: কোনো কুকি এবং কোনো সংরক্ষিত IP নেই। একজন ভিজিটরকে প্রতিদিনের সল্ট (salt) প্লাস সাইট, IP এবং ইউজার এজেন্টের একটি ট্রাঙ্কেটেড SHA-256 হ্যাশ দ্বারা শনাক্ত করা হয়; সল্টটি প্রতি UTC দিনে পরিবর্তিত হয় এবং সংরক্ষিত থাকে, ফলে ভিজিটরদের এক দিন থেকে অন্য দিনে অনুসরণ করা যায় না। এক দিনের ভিজিটর সংখ্যা সঠিক থাকে, তবে বহু-দিনের মোট সংখ্যা প্রতিদিনের ইউনিক ভিজিটরদের যোগফল হিসেবে গণনা করা হয়। দেশ এবং অঞ্চল প্রক্সি কান্ট্রি হেডার থেকে নেওয়া হয়, অন্যথায় IANA-ডেরাইভড টেবিলের মাধ্যমে ব্রাউজার টাইম জোন থেকে ম্যাপ করা হয়; অঞ্চলগুলো হলো সেই জোনের শহরের অংশ, তাই শহর-স্তরের কোনো রিপোর্ট নেই। রেফারারগুলোকে শুধুমাত্র হোস্টে নামিয়ে আনা হয় এবং সাধারণ হোস্টগুলোকে এলিয়াস করা হয়। আর্কিটেকচার: ইভেন্টগুলো একটি ইন-মেমোরি কিউতে (queue) যায় এবং রিকোয়েস্ট পাথে কখনোই ডাটাবেস স্পর্শ করে না; একটি রাইটার goroutine প্রতি সেকেন্ডে অথবা প্রতি ২০০টি ইভেন্টে একবার ট্রানজ্যাকশনে কিউটি কমিট করে। প্রতি মিনিটে এবং ড্যাশবোর্ড খোলার সময় র-ইভেন্ট থেকে প্রতি ঘণ্টা এবং প্রতিদিনের রোলআপগুলো পুনর্গঠিত হয়, এবং ড্যাশবোর্ড শুধুমাত্র রোলআপগুলো পড়ে। রিটেনশন পিরিয়ডের পর (ডিফল্ট ৭ দিন, সর্বনিম্ন ২, এনভায়রনমেন্ট ভেরিয়েবল দ্বারা পিন করা না থাকলে ৯০ দিন পর্যন্ত অ্যাডজাস্ট করা যায়) র-ইভেন্টগুলো মুছে ফেলা হয়; রোলআপগুলো অনির্দিষ্টকাল রাখা হয়। Favicon-গুলো Glance নিজেই একটি SSRF গার্ডের মাধ্যমে সংগ্রহ করে যা লুপব্যাক, প্রাইভেট, লিঙ্ক-লোকাল এবং ক্যারিয়ার-গ্রেড NAT অ্যাড্রেস প্রত্যাখ্যান করে। ম্যাপটি MapLibre দ্বারা রেন্ডার করা বান্ডিলড Natural Earth আউটলাইন ব্যবহার করে, তাই রানটাইমে কোনো তৃতীয় পক্ষের পরিষেবার প্রয়োজন হয় না। ড্যাশবোর্ড এবং API: এমবেডেড Svelte UI-তে প্রতিটি সাইটের ফেভিকন, ১৪ দিনের স্পার্কলাইন এবং গত সপ্তাহের বিপরীতে এই সপ্তাহের ভিজিটর তালিকা ড্র্যাগ-টু-রিঅর্ডার সুবিধা সহ প্রদর্শিত হয়। প্রতিটি সাইটের জন্য এটি ২৪ ঘণ্টা থেকে ১৮০ দিনের পূর্ববর্তী সমান উইন্ডোর সাথে পরিবর্তনের মোট সংখ্যা, একটি চার্ট, গত ৩০ মিনিটে সক্রিয় ব্যক্তি, ট্যাবযুক্ত ব্রেকডাউন কার্ড (পেজ, সোর্স, লোকেশন, ডিভাইস, ইভেন্ট), এক্সপ্যান্ডেবল ফিল্টারযোগ্য তালিকা, গত পাঁচ মিনিটের একটি লাইভ 3D গ্লোব এবং একটি রেঞ্জ ম্যাপ দেখায়। পাশাপাশি নাম, ডোমেন, ডিফল্ট রেঞ্জ, অ্যাকসেন্ট কালার এবং হোম কান্ট্রির জন্য সাইট-ভিত্তিক সেটিংস রয়েছে। এন্ডপয়েন্টগুলো /api/v1-এর অধীনে থাকে এবং collect, sites, stats, breakdown, live, favicons, rollup, status, settings, export এবং টোকেন ম্যানেজমেন্ট কভার করে। অ্যাডমিন অথেন্টিকেশনে সেশন কুকি বা HTTP Basic ব্যবহৃত হয়; API টোকেনগুলো হ্যাশ হিসেবে সংরক্ষিত এবং শুধুমাত্র রিড-অনলি। অতিরিক্ত ফিচার: /mcp-তে একটি রিড-অনলি Model Context Protocol এন্ডপয়েন্ট (Streamable HTTP) AI এজেন্টদের জন্য list_sites, overview, site_stats, breakdown, search_terms এবং revenue-এর মতো টুলস প্রদান করে; Glance-এর ভেতরে কোনো LLM নেই। ঐচ্ছিক ইন্টিগ্রেশনের মাধ্যমে OAuth-এর মাধ্যমে Google Search Console সার্চ টার্মস (webmasters.readonly স্কোপ, কানেক্ট করার সময় প্রায় ১৬ মাস এবং প্রতিদিন রিফ্রেশ করা হয়) এবং Polar রেভিনিউ যুক্ত করা যায়, যেখানে ভিজিটরের নিজস্ব ব্রাউজার localStorage-এ ফার্স্ট-টাচ অ্যাট্রিবিউশন মনে রাখা হয় এবং চেকআউট মেটাডেটার মাধ্যমে পাস করা হয়। ডেপ্লয়মেন্ট গাইডে Docker Compose এবং linux/amd64 ও linux/arm64-এর জন্য প্রি-বিল্ট ghcr.io ইমেজ, Dokploy-স্টাইল হোস্টের জন্য আলাদা কম্পোজ ফাইল এবং Go 1.27, Node 24 এবং পিওর-Go SQLite ড্রাইভার দিয়ে সোর্স থেকে বিল্ড করার পদ্ধতি অন্তর্ভুক্ত রয়েছে। প্রকাশিত ইমেজটি প্রায় ৩৭ MB এবং আইডল অবস্থায় ১০ MB-এর কম মেমোরি ব্যবহার করে। লাইসেন্স: MIT।