Loading…

সম্পর্কে অনলাইন .env ফরম্যাটার

আপনার dotenv ফাইল পড়ার যোগ্য, অনুমানযোগ্য ও শেয়ার করা নিরাপদ করুন। এই .env ফরম্যাটার KEY=VALUE লাইন পার্স করে, স্পেসিং পরিষ্কার করে, মন্তব্য সংরক্ষণ করে, এবং কমিট করার আগে বা সহকর্মীদের জন্য গোপন-মুক্ত `.env.example` তৈরি করার আগে কাঠামো মানসম্মত করতে সাহায্য করে। এটি Node `dotenv`, `python-dotenv`, Ruby `dotenv` এবং অন্যান্য বেশিরভাগ dotenv-স্টাইল লোডারের সাথে সামঞ্জস্যপূর্ণ।

এই .env ফরম্যাটার আপনাকে কী করতে সাহায্য করে

  • `KEY=VALUE` লাইন স্বাভাবিক করুন যখন মন্তব্য ও খালি লাইন মানুষের পড়ার যোগ্য গ্রুপিংয়ের জন্য সংরক্ষণ করা হয়
  • `=` এবং মানের চারপাশের স্পেসিং পরিষ্কার করুন স্ক্যান করা সহজ এবং পর্যালোচনায় আরও কমপ্যাক্ট ডিফের জন্য
  • ডুপ্লিকেট কী দেখান যাতে আপনি দেখতে পারেন রানটাইমে আসলে কোনটি জেতে অনুমান না করে
  • ট্রেইলিং সাদা স্থান ট্রিম করুন এবং (ঐচ্ছিকভাবে) **চূড়ান্ত নিউলাইন ঢোকান** অপশনের মাধ্যমে EOF-এ একটি চূড়ান্ত নিউলাইন নিশ্চিত করুন
  • মন্তব্য লাইন (`# ...`) সংরক্ষণ করুন এবং মানের ভিতরে কোট করা `#` অক্ষর অক্ষত রাখুন
  • `${VAR}`-এর মতো প্লেসহোল্ডার এবং এস্কেপ সিকোয়েন্স সম্প্রসারণ না করেই ঠিক যেমন লেখা আছে সেভাবে রাখুন
  • LF/CRLF-এর জন্য লেআউট স্বাভাবিক করে এবং BOM বিস্ময় এড়িয়ে ক্রস-প্ল্যাটফর্ম প্রকল্পগুলির সাথে ভালভাবে খেলুন
  • একটি গোপন-মুক্ত `.env.example` তৈরি করা সহজ করুন (কী এবং কাঠামো কপি করুন, প্রোডাকশন মান বাদ দিন)
  • বন্ধুত্বপূর্ণ এডিটর: `.env`-স্টাইল ফাইল পেস্ট বা আপলোড করুন, ফলাফল প্রিভিউ করুন, তারপর পরিষ্কার আউটপুট কপি বা ডাউনলোড করুন

🔧 আপনার .env ফাইল কীভাবে পরিষ্কার ও ফরম্যাট করবেন for env-formatter

1

১. আপনার .env পেস্ট বা আপলোড করুন

আপনার `.env` ফাইলটি এডিটরে ড্রপ করুন বা কন্টেন্ট সরাসরি পেস্ট করুন। টুলটি সাধারণ ডটএনভ ফরম্যাট যেমন `.env`, `.env.local`, `.env.production`, `.env.test`, `.env.staging`, `.env.example` ইত্যাদির জন্য ডিজাইন করা হয়েছে।

2

২. ফরম্যাটিং অপশনগুলি পর্যালোচনা ও সামঞ্জস্য করুন

উপলব্ধ অপশনগুলি (যেমন **Insert final newline**) সক্রিয় বা নিষ্ক্রিয় করুন এবং কীভাবে কী ও কমেন্ট সাজাতে চান তা সিদ্ধান্ত নিন। অনেক দল সামঞ্জস্যপূর্ণ গ্রুপিং প্রয়োগ করতে এই ধাপটি ব্যবহার করে—উদাহরণস্বরূপ, `APP_`, `DB_`, `NEXT_PUBLIC_` সেকশন।

3

৩. প্রিভিউ, কপি বা ডাউনলোড করুন

পরিষ্কার আউটপুট পর্যালোচনা করুন, ডুপ্লিকেট ও কমেন্ট সঠিক দেখাচ্ছে কিনা তা পরীক্ষা করুন, তারপর এটিকে আপনার এডিটরে ফিরে কপি করুন বা ফরম্যাট করা `.env` ডাউনলোড করুন। `.env.example` বা অন্যান্য এনভায়রনমেন্ট ভেরিয়েন্টের ভিত্তি হিসাবে নর্মালাইজড স্ট্রাকচার ব্যবহার করুন।

প্রযুক্তিগত বিবরণ

সমর্থিত ফাইল ও প্রকার

ফরম্যাটার স্ট্যান্ডার্ড ডটএনভ-স্টাইল কনফিগারেশন ফাইল হ্যান্ডেল করে, যাতে সাধারণ ফ্রেমওয়ার্ক কনভেনশন অন্তর্ভুক্ত।

এক্সটেনশন / প্যাটার্নপ্রকারসাধারণ ব্যবহার
.envবেস কনফিগসব এনভায়রনমেন্টের জন্য ডিফল্ট
.env.localলোকাল ওভাররাইডমেশিন-স্পেসিফিক (সাধারণত git-ignore করা)
.env.developmentএনভায়রনমেন্ট ভেরিয়েন্টডেভেলপমেন্ট সেটিংস
.env.productionএনভায়রনমেন্ট ভেরিয়েন্টডেপ্লয়মেন্ট সেটিংস
.env.testএনভায়রনমেন্ট ভেরিয়েন্টCI / ইউনিট টেস্ট
.env.stagingএনভায়রনমেন্ট ভেরিয়েন্টস্টেজিং বা প্রিভিউ কনফিগ
.env.example / .env.sampleটেমপ্লেটরিয়েল সিক্রেট ছাড়া শেয়ার্ড উদাহরণ ফাইল
MIME প্রকারtext/plain, text/x-dotenv, application/x-envসম্পাদক এবং টুলস দ্বারা ব্যবহৃত সাধারণ কন্টেন্ট টাইপ

পার্সিং নিয়ম (dotenv-স্টাইল)

ফর্ম্যাটারটি বিভিন্ন ভাষায় জনপ্রিয় dotenv পার্সারের সাথে সামঞ্জস্যপূর্ণ হওয়ার জন্য ডিজাইন করা হয়েছে।

দিকআচরণমন্তব্য
কীকেস-সেনসিটিভ, সাধারণত `A–Z`, সংখ্যা এবং `_`পাঠযোগ্যতার জন্য UPPER_SNAKE_CASE সুপারিশকৃত
অ্যাসাইনমেন্ট`KEY=VALUE` ফর্মের লাইন`=` এর চারপাশের স্পেস এবং মানগুলি ফর্ম্যাটার দ্বারা স্বাভাবিক করা হয়
মন্তব্য`#` দিয়ে শুরু হওয়া লাইনকোট করা মানের মধ্যে `#` কে মানের অংশ হিসাবে বিবেচনা করা হয়
কোটসিঙ্গেল `'…'` বা ডাবল `"…"`ডাবল কোটের মধ্যে `\n` এবং `\t` এর মতো এস্কেপ সংরক্ষিত থাকে
ইন্টারপোলেশন`${VAR}` আক্ষরিকভাবে রাখা হয়কোনো এক্সপ্যানশন বা শেল-লাইক ইভ্যালুয়েশন করা হয় না
খালি লাইনলজিক্যাল সেকশন রাখার জন্য সংরক্ষিতআপনি এখনও ইচ্ছামতো ম্যানুয়ালি কোলাপ্স বা পুনরায় গ্রুপ করতে পারেন
ডুপ্লিকেটএকই কী সহ একাধিক লাইন দেখা যায়সাধারণ dotenv আচরণ: রানটাইমে শেষ মান জেতে

নরমালাইজেশন ও নিউলাইন

ফর্ম্যাটারটি ডিফগুলিতে প্ল্যাটফর্ম-নির্দিষ্ট নয়েজ কমানোর লক্ষ্য রাখে: `=` এর চারপাশের স্পেসিং, স্ট্রে ট্রেইলিং স্পেস এবং ফাইনাল নিউলাইন স্বাভাবিক করা যেতে পারে। **ফাইনাল নিউলাইন ঢোকান** অপশনটি একটি EOF নিউলাইন নিশ্চিত করে যাতে Git এবং বিভিন্ন সম্পাদক LF/CRLF পার্থক্য জুড়েও সিঙ্কে থাকে।

গোপনীয়তা ও নিরাপত্তা

ফর্ম্যাটিং এই টুলের জন্য নিবেদিত একটি নিরাপদ ব্যাকএন্ড দ্বারা পরিচালিত হয় এবং শুধুমাত্র অস্থায়ী প্রসেসিংয়ের উদ্দেশ্যে—কোনো তৃতীয় পক্ষের API-এর সাথে যোগাযোগ করা হয় না। তবে, এখনও সবচেয়ে নিরাপদ অনুশীলন হল ব্রাউজার-ভিত্তিক টুলসে প্রোডাকশন সিক্রেট পেস্ট করা এড়ানো: স্যানিটাইজড `.env.example` ফাইল এডিট করতে পছন্দ করুন এবং আসল সিক্রেটগুলি একটি ভল্ট বা CI সিক্রেট স্টোরে রাখুন।

কমান্ড লাইন বিকল্প ও স্নিপেট

টার্মিনাল পছন্দ করেন? সাধারণ CLI টুলস ব্যবহার করে এই ফর্ম্যাটারের কিছু আচরণ অনুকরণ করার জন্য এখানে কয়েকটি বিল্ডিং ব্লক রয়েছে।

লিনাক্স/ম্যাকওএস

কী সাজান (বেসিক, মন্তব্য/খালি লাইন উপেক্ষা করে)

grep -v '^\s*#' .env | grep -v '^\s*$' | sort > sorted.env

বর্ণানুক্রমিকভাবে নন-কমেন্ট লাইন সাজায় যাতে কনফিগারেশন কী স্ক্যান এবং তুলনা করা সহজ হয়।

awk ব্যবহার করে `=` এ অ্যালাইন করুন

awk -F '=' 'BEGIN{max=0} /^[[:space:]]*#/||NF<2{next} {gsub(/[[:space:]]+$/,"",$1); if(length($1)>max) max=length($1)} END{print max}' .env | xargs -I{} awk -F '=' -v w={} 'BEGIN{OFS="="} /^[[:space:]]*#/||NF<2{print; next} {k=$1; sub(/[[:space:]]+$/,"",k); v=substr($0,index($0,"=")+1); gsub(/^\s+|\s+$/,"",v); printf("% -" w "s = %s\n", k, v)}' .env > aligned.env

দুই-পাস awk স্ক্রিপ্ট যা সবচেয়ে চওড়া কী পরিমাপ করে এবং তারপর সমস্ত `KEY = VALUE` অ্যাসাইনমেন্ট সেই প্রস্থে সারিবদ্ধ করে।

উইন্ডোজ (PowerShell)

কী সাজান এবং ডুপ্লিকেট সরান (শেষ মান রাখুন)

(Get-Content .env) | Where-Object {$_ -notmatch '^\s*#' -and $_ -notmatch '^\s*$'} | Group-Object { $_.Split('=')[0].Trim() } -AsHashTable -AsString | ForEach-Object { $_.Value[-1] } | Set-Content cleaned.env

কী দ্বারা লাইন গ্রুপ করে এবং শুধুমাত্র শেষ সংঘটন লেখে, বেশিরভাগ ডটএনভ লোডার কীভাবে ডুপ্লিকেট সমাধান করে তার প্রতিফলন করে।

Node.js (ক্রস-প্ল্যাটফর্ম)

মিনিমাল ফরম্যাটার: পার্স, সাজান, সারিবদ্ধ, লেখেন

node -e "const fs=require('fs');const s=fs.readFileSync('.env','utf8');const lines=s.split(/\r?\n/);const kv=[];const others=[];for(const l of lines){if(!l||/^\s*#/.test(l)||!l.includes('=')){others.push(l);continue;}const i=l.indexOf('=');kv.push([l.slice(0,i).trim(),l.slice(i+1).trim()]);}kv.sort((a,b)=>a[0].localeCompare(b[0]));const w=Math.max(...kv.map(([k])=>k.length),0);const out=[...kv.map(([k,v])=>k.padEnd(w)+" = "+v),...others];fs.writeFileSync('formatted.env',out.join('\n'));"

একটি কমপ্যাক্ট Node স্ক্রিপ্ট যা আপনি স্থানীয় বা CI ব্যবহারের জন্য একটি ডেডিকেটেড ফরম্যাটারে রূপান্তর করতে পারেন।

সাধারণ .env ফরম্যাটার ব্যবহারের ক্ষেত্র

প্রোডাকশন প্রস্তুতি ও পরিচ্ছন্নতা

  • সমালোচনামূলক সার্ভিস মোতায়েনের আগে আকস্মিক ডুপ্লিকেট কী ধরুন
  • শোরগোল ডিফ এড়াতে হোয়াইটস্পেস এবং ফাইলের শেষের নতুন লাইন স্বাভাবিক করুন
  • `.env.example` বা সিক্রেট টেমপ্লেট জেনারেট করার আগে স্ট্রাকচার মানসম্মত করুন
# প্রোডাকশন .env
NODE_ENV=production
API_URL=https://api.example.com
LOG_LEVEL=info

টিম সহযোগিতা ও অনবোর্ডিং

  • সমস্ত সার্ভিস জুড়ে ক্যানোনিকাল .env লেআউট প্রয়োগ করে PR শোরগোল কমান
  • রিয়েল সিক্রেটের পরিবর্তে একটি পরিষ্কার `.env.example` কমিট করুন যাতে অনবোর্ডিং নিরাপদ হয়
  • নতুন টিম সদস্যদের দ্রুত এক নজরে সমস্ত প্রয়োজনীয় কনফিগারেশন কী দেখতে সাহায্য করুন
# .env.example
API_URL=
API_KEY=
DEBUG=false

CI ও কোয়ালিটি গেট

  • নিশ্চিত করুন যে কোনও ডুপ্লিকেট কী `main` বা `master` ব্রাঞ্চে পৌঁছায় না তা পরীক্ষা করুন
  • বিল্ড ব্যর্থ করুন যদি `.env` ফাইলগুলি বেসিক ফরম্যাটিং বা নামকরণ কনভেনশন লঙ্ঘন করে
  • কনফিগারেশন রিভিউকে মান এবং শব্দার্থবিদ্যার উপর ফোকাস রাখুন, স্পেসিং বিস্তারিত নয়

❓ Frequently Asked Questions

ডুপ্লিকেট কীগুলি কীভাবে হ্যান্ডেল করা হয়?

বেশিরভাগ ডটএনভ লোডার একটি নির্দিষ্ট কীয়ের শেষ মানকে কার্যকর হিসাবে বিবেচনা করে। এই ফরম্যাটারটি ডুপ্লিকেট কীগুলি স্পষ্টভাবে দেখানোর জন্য ডিজাইন করা হয়েছে যাতে আপনি কোন এন্ট্রিগুলি রাখবেন তা সিদ্ধান্ত নিতে পারেন, নীরবে দ্বন্দ্বপূর্ণ কনফিগারেশন শিপ করার পরিবর্তে।

মন্তব্য এবং খালি লাইন সংরক্ষিত হবে?

হ্যাঁ। সম্পূর্ণ মন্তব্য লাইন সংরক্ষিত হয়, এবং খালি লাইন রাখা হয় যাতে আপনার যৌক্তিক গ্রুপিং পড়ার যোগ্য থাকে। আপনি যদি ঘন বা আরও কমপ্যাক্ট লেআউট পছন্দ করেন তবে আপনি এখনও বিভাগের স্পেসিং ম্যানুয়ালি সামঞ্জস্য করতে পারেন।

আপনি কি ${VAR} রেফারেন্স প্রসারিত করেন?

না। `${DB_HOST}` এর মতো প্লেসহোল্ডারগুলি সাধারণ টেক্সট হিসাবে বিবেচনা করা হয়। ফরম্যাটারটি পরিবেশ রেফারেন্স প্রসারিত, বৈধতা বা এক্সিকিউট করে না, তাই আপনি রানটাইমে ইন্টারপোলেশন কীভাবে হ্যান্ডেল করা হয় তার সম্পূর্ণ নিয়ন্ত্রণে থাকেন।

রিয়েল সিক্রেট পেস্ট করা কি নিরাপদ?

ফরম্যাটারটি বাহ্যিক API-এর সাথে যোগাযোগ না করে এই টুলের ব্যাকএন্ডে অস্থায়ীভাবে ডেটা প্রক্রিয়া করার জন্য তৈরি করা হয়েছে। তবুও, সবচেয়ে নিরাপদ অনুশীলন হল যেকোনো ব্রাউজার-ভিত্তিক টুলে প্রোডাকশন সিক্রেট পেস্ট করা এড়ানো: শুধুমাত্র স্যানিটাইজড `.env.example` ফাইল কমিট করুন এবং রিয়েল মানের জন্য একটি ডেডিকেটেড সিক্রেট ম্যানেজার বা CI সিক্রেট স্টোরের উপর নির্ভর করুন।

CRLF বনাম LF এবং BOM সমস্যা সম্পর্কে কী?

অসঙ্গতিপূর্ণ নতুন লাইন এবং অপ্রয়োজনীয় UTF-8 BOM প্রায়ই বিশ্রী ডিফ এবং পার্সিং সমস্যার কারণ হয়। আপনার এডিটর সেটিংসের সাথে এই ফর্ম্যাটারটি ব্যবহার করুন (উদাহরণস্বরূপ, সর্বদা LF এবং BOM ছাড়া সংরক্ষণ করুন) যাতে ডটএনভি ফাইলগুলি অপারেটিং সিস্টেম এবং IDE জুড়ে সামঞ্জস্যপূর্ণ থাকে।

এটি কি আমার অ্যাপের এনভি ফাইল পড়ার পদ্ধতি পরিবর্তন করে?

না। লক্ষ্য হল ফাইলটি পড়তে সহজ করার সময় শব্দার্থ অক্ষত রাখা। কী, মান এবং মন্তব্যগুলি কার্যকরীভাবে একই থাকে, ধরে নেওয়া যে মূল ডটএনভি ফাইলটি আপনার লোডারের জন্য বৈধ ছিল।

Pro Tips

Best Practice

কখনই গিটে আসল গোপনীয়তা কমিট করবেন না। কী এবং নিরাপদ ইঙ্গিত সহ একটি `.env.example` কমিট করুন, এবং ভল্ট, CI সিক্রেট স্টোর বা লোকাল ওভাররাইড থেকে আসল মান লোড করুন।

Best Practice

ডোমেইন অনুযায়ী কী গোষ্ঠীবদ্ধ করুন (`APP_`, `DB_`, `NEXT_PUBLIC_`, ইত্যাদি) এবং প্রতিটি গোষ্ঠীকে সামঞ্জস্যপূর্ণভাবে সাজিয়ে রাখুন নতুন পাঠকদের জন্য জ্ঞানীয় চাপ কমাতে।

Best Practice

প্রি-কমিট হুক বা CI চেকের মাধ্যমে একটি একক ক্যানোনিকাল .env স্টাইল প্রয়োগ করুন যাতে আপনাকে কোড রিভিউতে স্পেসিং নিয়ে কখনো তর্ক করতে না হয়।

Best Practice

স্পেস, `#`, `=` বা শেল-সংরক্ষিত অক্ষরযুক্ত মানগুলিকে উদ্ধৃত করুন বিভিন্ন ডটএনভি বাস্তবায়নে সূক্ষ্ম পার্সিং সমস্যা এড়াতে।

Additional Resources

Other Tools