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

# RelayAB সংক্ষিপ্ত বিবরণ RelayAB একটি স্ব-হোস্টেড AI API গেটওয়ে (মধ্যস্থতাকারী), যা আপস্ট্রিম AI পরিষেবার API Key নিরাপদে এবং নিয়ন্ত্রিতভাবে অল্প সংখ্যক ব্যবহারকারীর সাথে ভাগ করার জন্য ডিজাইন করা হয়েছে, সাথে সূক্ষ্ম অনুমতি এবং ব্যবহার ব্যবস্থাপনা প্রদান করে। এটি Vercel-এ এক-ক্লিকে ডিপ্লয় করা যায় এবং OpenAI ও Anthropic-এর API প্রোটোকলের সাথে সামঞ্জস্যপূর্ণ। ## মূল বৈশিষ্ট্য - **মাল্টি-ইউজার ও রোল**: অ্যাডমিন (admin) এবং সাধারণ ব্যবহারকারী (user) দুটি রোল সমর্থন করে; ব্যবহারকারীর পাসওয়ার্ড bcrypt ওয়ান-ওয়ে হ্যাশে সংরক্ষিত হয়। - **ক্রেডিট কোটা ব্যবস্থাপনা**: অ্যাডমিন প্রতিটি অ্যাকাউন্টের জন্য মোট ক্রেডিট এবং অ্যাক্সেসযোগ্য মডেল নির্ধারণ করতে পারে; অ্যাকাউন্টের অধীনে সব API Key এই ক্রেডিট ভাগ করে, শেষ হলে সব বন্ধ হয়ে যায়। - **ব্যবহারকারী স্ব-সেবা**: সাধারণ ব্যবহারকারী কনসোলে নিজে API Key তৈরি, পুনঃনামকরণ, সক্রিয়/নিষ্ক্রিয় বা মুছে ফেলতে পারে, পাশাপাশি পাসওয়ার্ড পরিবর্তন করতে পারে। - **সূক্ষ্ম Key নিয়ন্ত্রণ**: প্রতিটি ব্যবহারকারী একাধিক API Key তৈরি করতে পারে, প্রতিটি Key-এর জন্য আলাদা মেয়াদ শেষ, সক্রিয় অবস্থা এবং মডেল সাদা তালিকা (শুধু অ্যাকাউন্টের সাদা তালিকার মধ্যে সীমাবদ্ধ) কনফিগার করা যায়। - **সামঞ্জস্যপূর্ণ প্রোটোকল**: OpenAI Chat Completions এবং Anthropic Messages প্রোটোকল সমর্থন করে, সাথে ক্লায়েন্ট মডেল থেকে আপস্ট্রিম বাস্তব মডেলে ম্যাপিং সমর্থন করে। - **নিরাপদ স্টোরেজ**: আপস্ট্রিম Provider Key AES-256-GCM এনক্রিপশনে Redis-এ সংরক্ষিত হয়; মূল চাবি হারালে ডেটা স্থায়ীভাবে অ্যাক্সেসযোগ্য নয়। - **বহুভাষিক ইন্টারফেস**: ডিফল্ট চীনা, ইংরেজি সমর্থন, ফুটারে এক ক্লিকে পরিবর্তনযোগ্য। - **ব্যবহারকারী-বান্ধব ডকুমেন্টেশন পেজ**: কপি-যোগ্য API ঠিকানা এবং OpenAI/Anthropic সামঞ্জস্যপূর্ণ উদাহরণ কোড প্রদান করে। ## প্রযুক্তি স্ট্যাক - **ফ্রেমওয়ার্ক**: Next.js 15 App Router + React 19 + TypeScript 5 - **ডেটা স্টোরেজ**: Upstash for Redis (Vercel Marketplace থেকে এক-ক্লিকে ইনস্টলযোগ্য) - **অথেনটিকেশন**: iron-session 8 + bcryptjs (ওয়ার্ক ফ্যাক্টর 12) - **এনক্রিপশন**: AES-256-GCM + bcryptjs - **আপস্ট্রিম AI ইন্টিগ্রেশন**: Vercel AI SDK - **টেস্টিং**: Vitest + Playwright ## দ্রুত শুরু 1. **নির্ভরতা ইনস্টল করুন**: `pnpm install` 2. **এনভায়রনমেন্ট ভেরিয়েবল কনফিগার করুন**: `.env.example` কপি করে `.env.local` তৈরি করুন, শুধু `RELAY_AUTH` (মূল পাসওয়ার্ড, যা অ্যাডমিন লগইন পাসওয়ার্ডও) সেট করুন। Upstash-এর ভেরিয়েবল Vercel-এ স্বয়ংক্রিয়ভাবে ইনজেক্ট হয়। 3. **ডেভেলপমেন্ট সার্ভার চালু করুন**: `pnpm dev`, তারপর `http://localhost:3000` দেখুন। 4. **লগইন করুন**: প্রথম চালুতে স্বয়ংক্রিয়ভাবে অ্যাডমিন অ্যাকাউন্ট তৈরি হয়, ইউজারনেম `admin`, পাসওয়ার্ড `RELAY_AUTH`-এর মান। ## Vercel-এ ডিপ্লয় প্রকল্পে এক-ক্লিক ডিপ্লয় বাটন রয়েছে, ডিপ্লয়ের সময় শুধু `RELAY_AUTH` এনভায়রনমেন্ট ভেরিয়েবল পূরণ করুন। সফল ডিপ্লয়ের পর, Vercel Marketplace থেকে Upstash ডেটাবেস ইনস্টল করুন, তারপর পুনরায় ডিপ্লয় (Redeploy) করলে কার্যকর হবে। ## নিরাপত্তা পয়েন্ট - ব্যবহারকারীর পাসওয়ার্ড bcrypt ওয়ান-ওয়ে হ্যাশে সংরক্ষিত, মূল টেক্সট পুনরুদ্ধার করা যায় না। - ক্লায়েন্ট API Key-এর শুধু SHA-256 হ্যাশ সংরক্ষিত হয়, প্লেইন টেক্সট শুধু তৈরি করার সময় একবার ফেরত দেওয়া হয়। - আপস্ট্রিম Provider Key AES-256-GCM এনক্রিপ্টেড সংরক্ষিত, মূল চাবি হারালে পুনরুদ্ধার অসম্ভব। - সেশন কুকি iron-session দিয়ে এনক্রিপ্টেড, সাথে HttpOnly, Secure এবং SameSite=Lax অ্যাট্রিবিউট সেট করা। ## ডকুমেন্টেশন ও অপারেশন প্রকল্পে বিস্তারিত আর্কিটেকচার, ডেটা মডেল, API রুট, টেস্টিং এবং ডিপ্লয়মেন্ট ডকুমেন্টেশন রয়েছে। সাথে অপারেশনাল স্ক্রিপ্ট যেমন bootstrap-admin, reset-password, rotate-key এবং list-usage কমান্ড অন্তর্ভুক্ত। ## লাইসেন্স MIT