আপনার লাইভ সাইটে ডেপ্লয় করার আগে, আপনি আপনার পরিবর্তনগুলো দেখতে ও পরীক্ষা করতে চাইবেন। Firebase Hosting আপনাকে স্থানীয়ভাবে পরিবর্তনগুলো দেখতে ও পরীক্ষা করতে এবং অনুকৃত ব্যাকএন্ড প্রজেক্ট রিসোর্সগুলোর সাথে ইন্টারঅ্যাক্ট করতে সক্ষম করে। আপনার টিমের সদস্যদের যদি পরিবর্তনগুলো দেখা ও পরীক্ষা করার প্রয়োজন হয়, তবে Hosting আপনার সাইটের জন্য শেয়ারযোগ্য, অস্থায়ী প্রিভিউ ইউআরএল তৈরি করে দিতে পারে। এমনকি পুল রিকোয়েস্ট থেকে ডেপ্লয় করার জন্য আমরা গিটহাব ইন্টিগ্রেশনও সমর্থন করি।
শুরু করার আগে
Hosting গেট স্টার্টেড পেজে তালিকাভুক্ত ধাপগুলো সম্পূর্ণ করুন, বিশেষ করে নিম্নলিখিত কাজগুলো:
- Firebase CLI-কে এর সর্বশেষ সংস্করণে ইনস্টল বা আপডেট করুন।
- আপনার অ্যাপের কন্টেন্ট ধারণকারী লোকাল প্রজেক্ট ডিরেক্টরিটি আপনার ফায়ারবেস প্রজেক্টের সাথে সংযুক্ত করুন।
আপনি চাইলে আপনার অ্যাপের Hosting কন্টেন্ট এবং কনফিগারেশন ডেপ্লয় করতে পারেন, কিন্তু এই পৃষ্ঠার ধাপগুলোর জন্য এটি কোনো পূর্বশর্ত নয়।
ধাপ ১: স্থানীয়ভাবে পরীক্ষা করুন
যদি আপনি দ্রুত পরিবর্তন করতে চান অথবা আপনার অ্যাপকে অনুকৃত ব্যাকএন্ড প্রজেক্ট রিসোর্সের সাথে ইন্টারঅ্যাক্ট করাতে চান, তাহলে আপনি আপনার Hosting কন্টেন্ট এবং কনফিগারেশন স্থানীয়ভাবে পরীক্ষা করতে পারেন। স্থানীয়ভাবে পরীক্ষা করার সময়, Firebase আপনার ওয়েব অ্যাপটিকে একটি স্থানীয়ভাবে হোস্ট করা URL-এ পরিবেশন করে।
Hosting হলো Firebase Local Emulator Suite একটি অংশ, যা আপনার অ্যাপকে আপনার এমুলেটেড Hosting কন্টেন্ট ও কনফিগের পাশাপাশি ঐচ্ছিকভাবে আপনার এমুলেটেড প্রোজেক্ট রিসোর্সগুলোর (ফাংশন, ডেটাবেস এবং রুলস) সাথেও ইন্টারঅ্যাক্ট করতে সক্ষম করে।
(ঐচ্ছিক) ডিফল্টরূপে, আপনার স্থানীয়ভাবে হোস্ট করা অ্যাপটি অনুকরণ করা নয়, বরং আসল প্রজেক্ট রিসোর্স (ফাংশন, ডেটাবেস, রুলস, ইত্যাদি) ব্যবহার করবে। এর পরিবর্তে, আপনি চাইলে আপনার কনফিগার করা যেকোনো অনুকরণ করা প্রজেক্ট রিসোর্স ব্যবহার করার জন্য অ্যাপটিকে সংযুক্ত করতে পারেন। আরও জানুন: Realtime Database | Cloud Firestore | Cloud Functions
আপনার স্থানীয় প্রজেক্ট ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডটি চালান:
firebase emulators:start
CLI দ্বারা প্রাপ্ত স্থানীয় URL-এ (সাধারণত
http://localhost:5000) আপনার ওয়েব অ্যাপটি খুলুন।পরিবর্তনসহ স্থানীয় ইউআরএল আপডেট করতে, আপনার ব্রাউজার রিফ্রেশ করুন।
অন্যান্য স্থানীয় ডিভাইস থেকে পরীক্ষা করুন
ডিফল্টরূপে, এমুলেটরগুলো শুধুমাত্র localhost থেকে আসা অনুরোধে সাড়া দেয়। এর মানে হলো, আপনি আপনার কম্পিউটারের ওয়েব ব্রাউজার থেকে আপনার হোস্ট করা কন্টেন্ট অ্যাক্সেস করতে পারবেন, কিন্তু আপনার নেটওয়ার্কের অন্য কোনো ডিভাইস থেকে পারবেন না। আপনি যদি অন্য লোকাল ডিভাইস থেকে পরীক্ষা করতে চান, তাহলে আপনার firebase.json নিম্নোক্তভাবে কনফিগার করুন:
"emulators": {
// ...
"hosting": {
"port": 5000,
"host": "0.0.0.0"
}
}
firebase serve ব্যবহার করার সময়, আপনার অ্যাপ Hosting কন্টেন্ট ও কনফিগের (এবং ঐচ্ছিকভাবে ফাংশনগুলোর) জন্য একটি অনুকৃত ব্যাকএন্ডের সাথে এবং প্রোজেক্টের অন্য সব রিসোর্সের জন্য আপনার আসল ব্যাকএন্ডের সাথে যোগাযোগ করে।
আপনার স্থানীয় প্রজেক্ট ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডটি চালান:
firebase serve --only hosting
CLI দ্বারা প্রাপ্ত স্থানীয় URL-এ (সাধারণত
http://localhost:5000) আপনার ওয়েব অ্যাপটি খুলুন।পরিবর্তনসহ স্থানীয় ইউআরএল আপডেট করতে, আপনার ব্রাউজার রিফ্রেশ করুন।
অন্যান্য স্থানীয় ডিভাইস থেকে পরীক্ষা করার জন্য firebase serve ব্যবহার করুন
ডিফল্টরূপে, firebase serve শুধুমাত্র localhost থেকে আসা অনুরোধে সাড়া দেয়। এর মানে হলো, আপনি আপনার কম্পিউটারের ওয়েব ব্রাউজার থেকে আপনার হোস্ট করা কন্টেন্ট অ্যাক্সেস করতে পারবেন, কিন্তু আপনার নেটওয়ার্কের অন্য কোনো ডিভাইস থেকে পারবেন না। আপনি যদি অন্য লোকাল ডিভাইস থেকে পরীক্ষা করতে চান, তাহলে --host ফ্ল্যাগটি ব্যবহার করুন, যেমন:
firebase serve --host 0.0.0.0 // accepts requests to any host
ধাপ ২: প্রিভিউ করুন এবং শেয়ার করুন
আপনার ওয়েব অ্যাপটি লাইভ করার আগে যদি আপনি অন্যদেরকে এর পরিবর্তনগুলো দেখাতে চান, তাহলে আপনি প্রিভিউ চ্যানেল ব্যবহার করতে পারেন।
প্রিভিউ চ্যানেলে ডিপ্লয় করার পর, Firebase আপনার ওয়েব অ্যাপটিকে একটি 'প্রিভিউ ইউআরএল'-এ পরিবেশন করে, যা একটি শেয়ারযোগ্য ও অস্থায়ী ইউআরএল। প্রিভিউ ইউআরএল ব্যবহার করার সময়, আপনার ওয়েব অ্যাপটি প্রোজেক্টের সমস্ত রিসোর্সের জন্য আপনার আসল ব্যাকএন্ডের সাথে যোগাযোগ করে (তবে আপনার রিরাইটস কনফিগে থাকা কোনো 'পিন করা' ফাংশন এর ব্যতিক্রম)।
মনে রাখবেন যে, প্রিভিউ ইউআরএলগুলো অনুমান করা কঠিন হলেও (কারণ এতে একটি র্যান্ডম হ্যাশ থাকে), এগুলো পাবলিক। তাই, যার কাছেই ইউআরএলটি থাকবে, সে-ই এটি অ্যাক্সেস করতে পারবে।
আপনার স্থানীয় প্রজেক্ট ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডটি চালান:
firebase hosting:channel:deploy CHANNEL_ID
CHANNEL_ID স্পেস ছাড়া একটি স্ট্রিং দিয়ে প্রতিস্থাপন করুন (উদাহরণস্বরূপ,
feature_mission-2-mars)। এই আইডিটি প্রিভিউ চ্যানেলের সাথে যুক্ত প্রিভিউ ইউআরএল তৈরি করতে ব্যবহৃত হবে।CLI থেকে পাওয়া প্রিভিউ URL-এ আপনার ওয়েব অ্যাপটি খুলুন। এটি দেখতে অনেকটা এইরকম হবে:
PROJECT_ID -- CHANNEL_ID - RANDOM_HASH .web.appপরিবর্তনসহ আপনার প্রিভিউ URL আপডেট করতে, একই কমান্ডটি আবার চালান। কমান্ডে একই
CHANNEL_IDউল্লেখ করতে ভুলবেন না।
প্রিভিউ চ্যানেল পরিচালনা সম্পর্কে জানুন, যার মধ্যে একটি চ্যানেলের মেয়াদ কীভাবে নির্ধারণ করতে হয় তাও অন্তর্ভুক্ত রয়েছে।
Firebase Hosting একটি গিটহাব অ্যাকশন সমর্থন করে, যা পুল রিকোয়েস্টে পরিবর্তন কমিট করার সময় স্বয়ংক্রিয়ভাবে একটি প্রিভিউ ইউআরএল তৈরি ও আপডেট করে। এই গিটহাব অ্যাকশনটি কীভাবে সেট আপ এবং ব্যবহার করতে হয় তা জানুন।
ধাপ ৩: লাইভ স্থাপন করুন
যখন আপনি আপনার পরিবর্তনগুলো সবার সাথে শেয়ার করার জন্য প্রস্তুত হবেন, তখন আপনার Hosting কন্টেন্ট এবং কনফিগারেশন আপনার লাইভ চ্যানেলে ডেপ্লয় করুন। আপনার ব্যবহারের ধরনের ওপর নির্ভর করে, এই ধাপটির জন্য Firebase কয়েকটি ভিন্ন বিকল্প প্রদান করে (নিচের বিকল্পগুলো দেখুন)।
বিকল্প ১: একটি প্রিভিউ চ্যানেল থেকে আপনার লাইভ চ্যানেলে ক্লোন করুন
এই বিকল্পটি আপনাকে এই নিশ্চয়তা দেয় যে, আপনি প্রিভিউ চ্যানেলে পরীক্ষা করা হুবহু সেই কন্টেন্ট এবং কনফিগারেশনই আপনার লাইভ চ্যানেলে স্থাপন করছেন। ভার্সন ক্লোন করা সম্পর্কে আরও জানুন।
যেকোনো ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডটি চালান:
firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:live
প্রতিটি প্লেসহোল্ডারকে নিম্নলিখিত দ্বারা প্রতিস্থাপন করুন:
SOURCE_SITE_ID এবং TARGET_SITE_ID : এগুলো হলো সেই Hosting সাইটগুলোর আইডি, যেগুলোতে চ্যানেলগুলো রয়েছে।
- আপনার ডিফল্ট Hosting সাইটের জন্য আপনার ফায়ারবেস প্রজেক্ট আইডি ব্যবহার করুন।
- আপনি একই ফায়ারবেস প্রজেক্টে থাকা সাইটগুলো, এমনকি ভিন্ন ভিন্ন ফায়ারবেস প্রজেক্টে থাকা সাইটগুলোও নির্দিষ্ট করতে পারেন।
SOURCE_CHANNEL_ID : এটি সেই চ্যানেলের শনাক্তকারী, যেটি বর্তমানে সেই সংস্করণটি পরিবেশন করছে যা আপনি আপনার লাইভ চ্যানেলে স্থাপন করতে চান।
- লাইভ চ্যানেলের জন্য, চ্যানেল আইডি হিসেবে
liveব্যবহার করুন।
- লাইভ চ্যানেলের জন্য, চ্যানেল আইডি হিসেবে
আপনার পরিবর্তনগুলো দেখুন (পরবর্তী ধাপ)।
বিকল্প ২: আপনার স্থানীয় প্রজেক্ট ডিরেক্টরি থেকে আপনার লাইভ চ্যানেলে ডেপ্লয় করুন
এই বিকল্পটি আপনাকে লাইভ চ্যানেলের জন্য নির্দিষ্ট কনফিগারেশন সামঞ্জস্য করার অথবা প্রিভিউ চ্যানেল ব্যবহার না করলেও তা স্থাপন করার সুবিধা দেয়।
আপনার স্থানীয় প্রজেক্ট ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডটি চালান:
firebase deploy --only hosting
আপনার পরিবর্তনগুলো দেখুন (পরবর্তী ধাপ)।
ধাপ ৪: আপনার লাইভ সাইটে পরিবর্তনগুলো দেখুন
উপরের উভয় বিকল্পই আপনার Hosting কন্টেন্ট এবং কনফিগারেশন নিম্নলিখিত সাইটগুলিতে স্থাপন করে:
আপনার ডিফল্ট Hosting সাইট এবং যেকোনো অতিরিক্ত Hosting সাইটের জন্য ফায়ারবেস দ্বারা সরবরাহকৃত সাবডোমেইনগুলো হলো:
SITE_ID .web.app(যেমনPROJECT_ID .web.app)
SITE_ID .firebaseapp.com(যেমনPROJECT_ID .firebaseapp.com)আপনার Hosting সাইট(গুলি) এর সাথে সংযুক্ত যেকোনো কাস্টম ডোমেইন
কোনো নির্দিষ্ট Hosting সাইটে ডিপ্লয় সীমাবদ্ধ করতে, আপনার CLI কমান্ডে একটি ডিপ্লয় টার্গেট উল্লেখ করুন ।
অন্যান্য মোতায়েন কার্যক্রম এবং তথ্য
ডিপ্লয়ের জন্য একটি মন্তব্য যোগ করুন
আপনি চাইলে একটি ডিপ্লয়মেন্টে মন্তব্য যোগ করতে পারেন। এই মন্তব্যটি Firebase কনসোলের Hosting ড্যাশবোর্ডে অন্যান্য ডিপ্লয়মেন্ট তথ্যের সাথে প্রদর্শিত হবে। উদাহরণস্বরূপ:
firebase deploy --only hosting -m "Deploying the best new feature ever."
প্রিডিপ্লয় এবং পোস্টডিপ্লয় স্ক্রিপ্টেড টাস্ক যোগ করুন
আপনি চাইলে প্রি-ডিপ্লয় বা পোস্ট-ডিপ্লয় টাস্ক সম্পাদন করার জন্য firebase deploy কমান্ডের সাথে শেল স্ক্রিপ্ট সংযুক্ত করতে পারেন। উদাহরণস্বরূপ, একটি পোস্ট-ডিপ্লয় হুক নতুন সাইট কন্টেন্ট ডিপ্লয় সম্পর্কে অ্যাডমিনিস্ট্রেটরদের অবহিত করতে পারে। আরও বিস্তারিত জানতে Firebase CLI ডকুমেন্টেশন দেখুন।
স্থাপন করা বিষয়বস্তু ক্যাশিং করা হচ্ছে
যখন স্ট্যাটিক কন্টেন্টের জন্য অনুরোধ করা হয়, তখন Firebase Hosting স্বয়ংক্রিয়ভাবে সিডিএন-এ কন্টেন্টটি ক্যাশ করে রাখে। আপনি যদি আপনার সাইটের কন্টেন্ট পুনরায় ডেপ্লয় করেন, ফায়ারবেস স্বয়ংক্রিয়ভাবে সিডিএন জুড়ে আপনার সমস্ত ক্যাশ করা স্ট্যাটিক কন্টেন্ট মুছে ফেলে, যাতে নতুন অনুরোধগুলো আপনার নতুন কন্টেন্ট পায়।
মনে রাখবেন যে আপনি ডাইনামিক কন্টেন্টের ক্যাশিং কনফিগার করতে পারেন।
HTTPS এর মাধ্যমে পরিবেশন করা হচ্ছে
নিশ্চিত করুন যে Firebase Hosting এ হোস্ট করা নয় এমন সমস্ত বাহ্যিক রিসোর্স, যেকোনো বাহ্যিক স্ক্রিপ্ট সহ, SSL (HTTPS)-এর মাধ্যমে লোড করা হয়। বেশিরভাগ ব্রাউজার ব্যবহারকারীদের "মিশ্র কন্টেন্ট" (SSL এবং নন-SSL ট্র্যাফিক) লোড করার অনুমতি দেয় না।
ফাইল মুছে ফেলা হচ্ছে
Firebase Hosting এ, ডেপ্লয় করা কোনো সাইট থেকে নির্বাচিত ফাইল মুছে ফেলার প্রধান উপায় হলো, প্রথমে ফাইলগুলো স্থানীয়ভাবে মুছে ফেলা এবং তারপর পুনরায় ডেপ্লয় করা।
পরবর্তী পদক্ষেপ
GitHub Action সেট আপ করার মাধ্যমে GitHub-এর সাথে ইন্টিগ্রেট করুন এবং আপনার প্রিভিউ করা কন্টেন্ট পরিমার্জন করতে থাকুন।
হোস্টিং-এর আরও সুবিধা সম্পর্কে জানুন:
Firebase CLI- এর সম্পূর্ণ ডকুমেন্টেশনটি দেখে নিন।
আপনার অ্যাপটি চালু করার জন্য প্রস্তুত হন:
- Google Cloud কনসোলে আপনার প্রোজেক্টের জন্য বাজেট অ্যালার্ট সেট আপ করুন।
- একাধিক ফায়ারবেস পরিষেবা জুড়ে আপনার প্রকল্পের ব্যবহারের একটি সামগ্রিক চিত্র পেতে Firebase কনসোলে থাকা ব্যবহার এবং বিলিং ড্যাশবোর্ডটি পর্যবেক্ষণ করুন। আরও বিস্তারিত ব্যবহারের তথ্যের জন্য আপনি Hosting ব্যবহার ড্যাশবোর্ডটিও দেখতে পারেন।
- ফায়ারবেস লঞ্চ চেকলিস্টটি পর্যালোচনা করুন।