envshare.dev হল একটি ওপেন সোর্স প্রজেক্ট যা ডেভেলপারদেরকে নিরাপদে পরিবেশের ভেরিয়েবল শেয়ার করতে দেয়। আপনি আপনার .env আপলোড করতে পারেন। আপনার এনভায়রনমেন্ট ভেরিয়েবলে ফাইল বা টাইপ করুন এবং একটি ডাটাবেসে সংরক্ষিত হওয়ার আগে সেগুলি এনক্রিপ্ট করা হবে৷ তারপর আপনি লিঙ্কটি যে কারো সাথে শেয়ার করতে পারেন এবং তারা পরিবেশ ভেরিয়েবল ডিক্রিপ্ট করতে সক্ষম হবে৷
EnvShare ব্যবহার এবং ওপেন সোর্স বিনামূল্যে. আপনি GitHub এ কোডটি খুঁজে পেতে পারেন।
বৈশিষ্ট্যগুলি
৷- শেয়ারযোগ্য লিঙ্কগুলি:৷ একটি লিঙ্ক পাঠিয়ে নিরাপদে আপনার পরিবেশের ভেরিয়েবল শেয়ার করুন
- এন্ড-টু-এন্ড এনক্রিপশন: AES এনক্রিপশন আপনার ডেটা সংরক্ষণ করার আগে এনক্রিপ্ট করতে ব্যবহৃত হয়
- পঠিত সংখ্যার সীমা: একটি লিঙ্ক কতবার পড়া এবং এনক্রিপ্ট করা যাবে তা সীমিত করুন
- স্বয়ংক্রিয় মেয়াদ শেষ: স্বয়ংক্রিয়ভাবে লিঙ্কগুলির মেয়াদ শেষ হয়ে যায় এবং একটি নির্দিষ্ট সময়ের পরে ডেটা মুছে দেয়
এটি কিভাবে কাজ করে
প্রতিবার আপনি যখন আপনার পরিবেশের ভেরিয়েবল শেয়ার করতে চান, ব্রাউজারে একটি নতুন র্যান্ডম এনক্রিপশন কী তৈরি হয়৷ আপনার সংবেদনশীল ডেটা AES ব্যবহার করে এনক্রিপ্ট করা হয় এবং তারপরে Redis এ সংরক্ষণ করা হয়৷
তারপরে, একটি অনন্য নথি আইডি একটি শেয়ারযোগ্য লিঙ্ক তৈরি করতে এনক্রিপশন কী এর সাথে মিলিত হয়, যা আপনি আপনার ডেটা অ্যাক্সেস এবং ডিক্রিপ্ট করতে ব্যবহার করতে পারেন৷

ডেটা
EnvShare এনক্রিপ্ট করা পরিবেশ ভেরিয়েবল সংরক্ষণ করতে Redis ব্যবহার করে। রেডিস দুর্দান্ত কারণ এটি একটি দ্রুত কী-মানের স্টোর হিসাবে ব্যবহার করা যেতে পারে, তবে তালিকা, সেট এবং হ্যাশের মতো আরও জটিল ডেটা স্ট্রাকচারও অফার করে৷ এটি স্বয়ংক্রিয়ভাবে মেয়াদোত্তীর্ণ কীগুলিও সরিয়ে দেয়, যা আমাদের ব্যবহারের ক্ষেত্রে উপযুক্ত৷
নিম্নলিখিত কাঠামো সহ একটি Redis হ্যাশে ডেটা সংরক্ষণ করা হয়:
{
"remainingReads": 20, // Optional, the number of times the link can be read
"encrypted": "...", // The encrypted environment variables
"iv": "..." // The initialization vector for AES-CBC
}
একটি হ্যাশ ব্যবহার করে আমাদেরকে এনক্রিপ্ট করা ডেটা সহ কিছু মেটাডেটা সঞ্চয় করতে এবং HINCRBY এর সাথে অবশিষ্ট পাঠগুলিকে পারমাণবিকভাবে হ্রাস করার অনুমতি দেয়। রেডিস অবিশ্বাস্যভাবে নমনীয় এবং দ্রুত পুনরাবৃত্তি এবং নতুন ধারণা বাস্তবায়নের অনুমতি দেয়। উদাহরণস্বরূপ ভবিষ্যতে আমরা অ্যাক্সেস লগের মতো কিছু যোগ করতে চাই। একটি সাজানো সেট এর জন্য একটি দুর্দান্ত ফিট হবে।
একমাত্র সমস্যা হল Redis সাধারণত শুধুমাত্র TCP-এর মাধ্যমে পাওয়া যায়, যা আমাদের এজ-ফাংশনে কাজ করে না। সৌভাগ্যবশত, Upstash একটি Redis API অফার করে যা HTTP এর মাধ্যমে Redis অ্যাক্সেস করতে ব্যবহার করা যেতে পারে। EnvShare-এর জন্য আমাদের ঠিক এটিই প্রয়োজন।Upstash প্রতিদিন 10,000 অনুরোধ সহ একটি বিনামূল্যের রেডিস ডাটাবেস অফার করে। এটি আমাদের জন্য যথেষ্ট, এবং আপনি যদি নিজেকে EnvShare হোস্ট করতে চান তবে আপনি এখানে একটি বিনামূল্যে অ্যাকাউন্ট পেতে পারেন৷ এখানে স্ব-হোস্টিং গাইডটি দেখুন
আমাদের এজ-ফাংশনে Redis সেট আপ করা সহজ। আমাদের শুধু একটি ডাটাবেস তৈরি করতে হবে এবং @upstash/redis ইনস্টল করতে হবে .
আমাদের এজ-ফাংশনে আমরা ডেটা সংরক্ষণ করতে পারি:
/api/share.tsimport { Redis } from "@upstash/redis";
const redis = new Redis({
url: "..." // UPSTASH_REDIS_REST_URL
token: "..." // UPSTASH_REDIS_REST_TOKEN
});
await redis.hset(key, {
remainingReads: 20,
encrypted: "...",
iv: "...",
}); র্যাপিং আপ
পড়ার জন্য ধন্যবাদ! EnvShare হল একটি মজার প্রজেক্ট যা আমি দেখিয়েছি যে নেক্সট.জেএস এবং আপস্ট্যাশ রেডিস দিয়ে শুরু করা কতটা সহজ। আমি আশা করি আপনি এটি পছন্দ করেন এবং এটি দরকারী খুঁজে. আপনার যদি কোন প্রশ্ন বা প্রতিক্রিয়া থাকে, তাহলে নির্দ্বিধায় টুইটারে আমার সাথে যোগাযোগ করুন।
প্রাসঙ্গিক লিঙ্ক:
- এনভশেয়ার
- GitHub
- ডিপ্লয়মেন্ট গাইড