dotenv যেভাবে পড়ে সেভাবে একটি .env ফাইল লাইন ধরে ধরে যাচাই করুন, এবং JSON বা YAML-এ রূপান্তর করুন
আপনার ব্রাউজারে চলে। আপনি যা লেখেন তা কোথাও পাঠানো হয় না। যাচাই করা হয়েছে 16 অক্টোবর, 2026।একটি .env ফাইলে প্রতি লাইনে একটি KEY=value থাকে, যা dotenv প্যাকেজ ও অনুরূপ টুল পড়ে। একটি # মন্তব্য শুরু করে, উদ্ধৃতিচিহ্ন ছাড়া মানের ভেতরেও, তাই PASSWORD=abc#123 পড়া হয় abc হিসেবে। উদ্ধৃতিচিহ্ন স্পেস ও # চিহ্ন রেখে দেয়, ডাবল উদ্ধৃতিচিহ্ন \n-কে লাইন ব্রেকে পরিণত করে, আর একটি কী দুবার থাকলে শেষ মানটিই গণ্য হয়।
এই পৃষ্ঠাটি ইংরেজি মূল লেখা থেকে যন্ত্রের সাহায্যে অনুবাদ করা হয়েছে। এই অনুবাদটি এখনও কোনো মানুষ পর্যালোচনা করেননি, তাই ইংরেজি সংস্করণটিকেই নির্ভরযোগ্য ধরুন। ইংরেজি মূল লেখাটি পড়ুন
বাঁ দিকের প্যানে .env ফাইলটি পেস্ট করুন, অথবা ফাইল খুলুন-এ ক্লিক করুন।
নিচের সমস্যাগুলো পড়ুন: প্রতিটিতে তার লাইন উল্লেখ থাকে, আর লাইন N কার্সরকে সেখানে নিয়ে যায়।
রূপান্তরিত ভেরিয়েবল দেখতে একটি ফরম্যাট বেছে নিন: JSON, YAML, Shell export, Docker env ফাইল বা .env.example।
কপি করুন-এ ক্লিক করুন, অথবা রূপান্তরিত ফাইলটি সংরক্ষণ করতে ডাউনলোড-এ ক্লিক করুন।
একটি .env ফাইল দেখতে সহজ, কিন্তু ছোট ভুল কোনো ত্রুটি ছাড়াই প্রোগ্রাম কী পায় তা বদলে দেয়: পাসওয়ার্ডের ভেতরে একটি # সেটিকে ছেঁটে ফেলে, বন্ধ না হওয়া উদ্ধৃতিচিহ্ন মানের অংশ হয়ে যায়, আর একই কী-সহ দ্বিতীয় একটি লাইন নিঃশব্দে প্রথমটিকে প্রতিস্থাপন করে। এই টুলটি ফাইলটি ঠিক dotenv প্যাকেজের মতো করেই পড়ে এবং এমন প্রতিটি লাইন দেখায়।
কী কী যাচাই করা হয়, প্রতিটির লাইন নম্বরসহ:
| সমস্যা | উদাহরণ | কী ঘটে |
|---|---|---|
| অ্যাসাইনমেন্ট নয় | just some text |
উপেক্ষা করা হয় |
| উদ্ধৃতিচিহ্ন ছাড়া মানে # | PASS=abc#123 |
abc হিসেবে পড়া হয় |
| বন্ধ না হওয়া উদ্ধৃতিচিহ্ন | NAME="Asha |
মানে উদ্ধৃতিচিহ্ন থেকে যায় |
| ডুপ্লিকেট কী | PORT দুবার |
শেষটি গণ্য হয় |
| এমন নাম যা shell প্রত্যাখ্যান করে | feature.flags=on |
source .env ব্যর্থ হয় |
| অসংজ্ঞায়িত রেফারেন্স | ${REDIS_HOST} |
যেমন লেখা তেমনই থাকে |
| উদ্ধৃতিচিহ্ন ছাড়া স্পেস | FROM=Example Team |
shell-এ ভেঙে যায় |
ত্রুটি হলো সেসব লাইন যা dotenv উপেক্ষা করে বা ভুল পড়ে; সতর্কতাগুলো dotenv-এ কাজ করে কিন্তু shell, Docker বা Compose-এ নয়; খালি মানের মতো নোটগুলো কেবল তথ্যের জন্য।
রূপান্তর। dotenv যেভাবে পড়ে সেভাবে ভেরিয়েবলগুলো 5টি রূপে কপি বা ডাউনলোড করা যায়: একটি JSON অবজেক্ট; YAML, যেখানে প্রতিটি মান স্ট্রিং হিসেবে রাখা হয় যাতে 0123 ও true ভিন্নভাবে ব্যাখ্যা না হয়; নিরাপদ সিঙ্গল উদ্ধৃতিচিহ্নসহ shell export লাইন; একটি Docker env ফাইল, যা একাধিক লাইনের মান ধারণ করতে পারে না; এবং প্রতিটি কী-সহ কিন্তু কোনো মান ছাড়া একটি .env.example, commit করার জন্য প্রস্তুত।
পড়ার পদ্ধতিটি স্বয়ং dotenv-এর সঙ্গে 401টি টেস্ট ফাইলে মিলিয়ে দেখা হয়েছে, যার মধ্যে আছে একাধিক লাইনের কী, CRLF লাইন এন্ডিং এবং সব ধরনের উদ্ধৃতি শৈলী। কিছুই প্রসারিত করা হয় না: ${OTHER} যেমন লেখা তেমনই থাকে, সাধারণ dotenv-এর মতোই।
ফাইলটি কেবল আপনার ব্রাউজারের মেমরিতে থাকে। এটি কখনো আপলোড বা সংরক্ষণ করা হয় না, এবং পেজ বন্ধ করলেই মুছে যায়, তাই আসল সিক্রেট পেস্ট করা নিরাপদ।
.env ফাইলে একটি # মন্তব্য শুরু করে, উদ্ধৃতিচিহ্ন ছাড়া মানের মাঝখানেও, তাই PASSWORD=abc#123 পড়া হয় abc হিসেবে। মানটি উদ্ধৃতিচিহ্নের মধ্যে রাখুন, PASSWORD="abc#123" বা PASSWORD='abc#123', তাহলে পুরো লেখাটি থাকবে। এই সমস্যাযুক্ত প্রতিটি লাইন এখানে তার লাইন নম্বরসহ চিহ্নিত করা হয়।
হ্যাঁ। dotenv দুই প্রান্তের স্পেস ছেঁটে ফেলে কিন্তু ভেতরেরগুলো রাখে, তাই NAME=Example Team কাজ করে। তবে source .env চালানো একটি shell স্পেসে ভেঙে যাবে, আর Docker সবকিছু আক্ষরিকভাবে রাখে। স্পেসযুক্ত মান উদ্ধৃতিচিহ্নে রাখলে, NAME="Example Team", তা dotenv, Compose ও shell-এ একইভাবে কাজ করে।
মানটি ডাবল উদ্ধৃতিচিহ্নে রাখুন এবং হয় সত্যিই লাইন ভাঙুন, নয়তো প্রতিটি ব্রেকের জায়গায় \n লিখুন। dotenv দুটিই পড়ে, এবং কেবল ডাবল উদ্ধৃতিচিহ্নের ভেতরে \n-কে লাইন ব্রেকে পরিণত করে। সিঙ্গল উদ্ধৃতিচিহ্ন ও ব্যাকটিকও একাধিক লাইন জুড়ে থাকতে পারে, কিন্তু \n যেমন লেখা তেমনই রাখে। একটি Docker env ফাইল একাধিক লাইনের মান একেবারেই ধারণ করতে পারে না।
শেষ মানটিই গণ্য হয়, dotenv-এর কোনো সতর্কতা ছাড়াই, তাই ওপরে সেট করা একটি PORT নিচের আরেকটি PORT দিয়ে নিঃশব্দে প্রতিস্থাপিত হতে পারে। এই টুলটি প্রথম সংজ্ঞার লাইনসহ প্রতিটি ডুপ্লিকেট তালিকাভুক্ত করে, যাতে আপনি যেটি থাকার কথা নয় সেটি মুছে দিতে পারেন।
dotenv নিজে করে না: API=${HOST}/api ঠিক যেমন লেখা তেমনই থাকে। Docker Compose ও dotenv-expand প্যাকেজ ${HOST}-কে তার মান দিয়ে প্রতিস্থাপন করে, এবং HOST সেট না থাকলে ${HOST:-fallback} একটি ডিফল্ট মান দেয়। ফাইলে কখনো সংজ্ঞায়িত হয়নি এমন নামের রেফারেন্স এখানে চিহ্নিত করা হয়, কারণ সেই টুলগুলোতে সেগুলো খালি হয়ে যায়।
হ্যাঁ। ফাইলটি পড়ে আপনার নিজের ব্রাউজারে চলা কোড; কিছুই আপলোড, লগ বা সংরক্ষণ করা হয় না, এবং পেজ বন্ধ বা রিলোড করলেই এটি মুছে যায়। আউটপুট ফরম্যাট মনে রাখা হলেও, আপনি যে লেখা পেস্ট করেন তা কখনো সংরক্ষণ করা হয় না, এমনকি আপনার ব্রাউজারের স্টোরেজেও নয়।
হার ও নিয়ম বদলায়; কোনো অঙ্কের ওপর নির্ভর করার আগে সূত্রটি দেখে নিন।
এখনও আটকে আছেন? .env ফাইল ভ্যালিডেটর সম্পর্কে প্রশ্ন করুন আর যিনি জানেন তিনিই উত্তর দিতে পারেন। কোনো অ্যাকাউন্ট লাগবে না।