লাইভ পরিচালনা করুন & আপনার সাইটের জন্য চ্যানেল, রিলিজ এবং সংস্করণগুলির পূর্বরূপ দেখুন

Firebase Hosting আপনার Hosting সাইটের চ্যানেল, রিলিজ এবং ভার্সনগুলো পরিচালনা করার জন্য Firebase কনসোল এবং Firebase সিএলআই উভয়ের মাধ্যমেই টুল সরবরাহ করে।

Hosting পরিকাঠামোর সংক্ষিপ্ত বিবরণ

Hosting পরিকাঠামো সম্পর্কে ধারণা থাকলে এই পৃষ্ঠায় বর্ণিত ব্যবস্থাপনার বিকল্পগুলো বুঝতে আপনার সুবিধা হবে।

প্রতিটি ফায়ারবেস প্রজেক্টের একটি ডিফল্ট Hosting সাইট থাকে, যেখান থেকে প্রজেক্টের সমস্ত রিসোর্স (ডাটাবেস, অথেন্টিকেশন, ফাংশন ইত্যাদি) অ্যাক্সেস করা যায়। একটি সাইটে এক বা একাধিক চ্যানেল থাকে, যেখানে প্রতিটি চ্যানেল একটি ইউআরএল-এর সাথে যুক্ত থাকে যা নির্দিষ্ট কন্টেন্ট এবং একটি Hosting কনফিগারেশন সরবরাহ করে।

একটি ছবি <span class= ফায়ারবেস হোস্টিং হায়ারার্কি" />

প্রতিটি Hosting সাইটের একটি "লাইভ" চ্যানেল থাকে যা (১) সাইটের ফায়ারবেস-প্রোভিশন করা সাবডোমেনগুলিতে ( SITE_ID .web.app এবং SITE_ID .firebaseapp.com ) এবং (২) যেকোনো সংযুক্ত কাস্টম ডোমেনে কন্টেন্ট এবং Hosting কনফিগারেশন পরিবেশন করে। এছাড়াও আপনি ঐচ্ছিকভাবে "প্রিভিউ" চ্যানেল তৈরি করতে পারেন যা অস্থায়ী, শেয়ারযোগ্য "প্রিভিউ ইউআরএল"-এ নিজস্ব কন্টেন্ট এবং কনফিগারেশন পরিবেশন করে। SITE_ID -- CHANNEL_ID - RANDOM_HASH .web.app )

প্রতিটি চ্যানেলের মাধ্যমে পরিবেশিত কন্টেন্ট এবং কনফিগারেশন একটি ভার্সন অবজেক্টে প্যাকেজ করা থাকে, যার একটি অনন্য শনাক্তকারী (unique identifier) ​​থাকে। আপনি যখন আপনার সাইটে ডেপ্লয় করেন, তখন ফায়ারবেস একটি রিলিজ অবজেক্ট তৈরি করে যা একটি নির্দিষ্ট ভার্সনকে নির্দেশ করে। একটি রিলিজে ডেপ্লয়মেন্ট সম্পর্কিত মেটাডেটা থাকে, যেমন কে এবং কখন ডেপ্লয় করেছে।

আপনার Firebase প্রোজেক্টের Hosting ড্যাশবোর্ড থেকে, আপনি একটি রিলিজ হিস্ট্রি টেবিলে আপনার লাইভ চ্যানেলের রিলিজগুলোর সম্পূর্ণ ইতিহাস দেখতে পারেন। আপনার যদি একাধিক Hosting সাইট থাকে, তবে কাঙ্ক্ষিত সাইটের রিলিজ হিস্ট্রি দেখতে সেটির জন্য 'ভিউ' (View) বাটনে ক্লিক করুন। আপনার যদি কোনো প্রিভিউ চ্যানেল থাকে, সেগুলোও Hosting ড্যাশবোর্ডে প্রদর্শিত হয়।

একটি চ্যানেলের সেটিংস পরিচালনা করুন

আপনার সাইটের প্রতিটি চ্যানেলের সেটিংস আপনি নিয়ন্ত্রণ করতে পারেন। চ্যানেল মেয়াদের মতো কিছু সেটিংস শুধুমাত্র প্রিভিউ চ্যানেলের জন্য প্রযোজ্য।

রাখার জন্য রিলিজের সংখ্যা সীমিত করুন

প্রতিবার যখন আপনি কোনো চ্যানেলে ডিপ্লয় করেন (এবং একটি রিলিজ তৈরি করেন), Hosting আপনার প্রোজেক্টের Hosting স্টোরেজে পূর্ববর্তী রিলিজের সাথে যুক্ত ভার্সনটি সংরক্ষণ করে রাখে। আপনি আপনার প্রোজেক্টের প্রতিটি চ্যানেলের জন্য, লাইভ এবং প্রিভিউ উভয় চ্যানেলের ক্ষেত্রেই, কতগুলো রিলিজ রাখবেন তা নির্ধারণ করতে পারেন।

  • Hosting কেন পূর্ববর্তী রিলিজগুলো সংরক্ষণ করে?
    আপনার লাইভ চ্যানেলের জন্য, পূর্ববর্তী রিলিজগুলো সংরক্ষণ করলে প্রয়োজনে আপনি আপনার সাইটের পূর্ববর্তী সংস্করণে ফিরে যেতে পারবেন। আপনার প্রিভিউ চ্যানেলগুলোর জন্য, পূর্ববর্তী সংস্করণে ফিরে যাওয়ার সুবিধাটি এখনও উপলব্ধ নয়।

  • রাখার জন্য রিলিজের সংখ্যা সীমিত করা কেন?
    এই ফিচারটি আপনাকে আপনার প্রোজেক্টের Hosting স্টোরেজের ব্যবহারের মাত্রা নিয়ন্ত্রণ করতে সাহায্য করতে পারে, কারণ পূর্ববর্তী রিলিজগুলোর কন্টেন্ট এই স্টোরেজে সংরক্ষিত থাকে। আপনি কনসোলের স্টোরেজ ট্যাব থেকে আপনার Hosting স্টোরেজ নিরীক্ষণ করতে পারেন।

  • সংরক্ষণের জন্য রিলিজ সীমিত করলে কী হয়?
    আপনি যখন রাখার জন্য রিলিজের একটি সীমা নির্ধারণ করেন, তখন আপনার নির্ধারিত সীমার অতিরিক্ত রিলিজগুলোর বিষয়বস্তু মুছে ফেলার জন্য নির্ধারিত হয়, এবং এই প্রক্রিয়া প্রথমে সবচেয়ে পুরোনো রিলিজগুলো থেকে শুরু হয়

একটি চ্যানেলের জন্য রিলিজ স্টোরেজ সীমা নির্ধারণ করার পদ্ধতি নিচে দেওয়া হলো:

  1. Firebase কনসোলে, রিলিজ স্টোরেজ সেটিং ডায়ালগটি অ্যাক্সেস করতে হোস্টিং ও সার্ভারলেস > হোস্টিং- এ যান:

    • আপনার লাইভ চ্যানেলের জন্য
      আপনার সাইটের রিলিজ হিস্ট্রি টেবিলে, ক্লিক করুন, তারপর রিলিজ স্টোরেজ সেটিংস নির্বাচন করুন।

    • যেকোনো প্রিভিউ চ্যানেলের জন্য
      প্রিভিউ চ্যানেলের সারিতে, ক্লিক করুন, তারপর চ্যানেল সেটিংস নির্বাচন করুন।

  2. আপনি যে সংখ্যক রিলিজ রাখতে চান তা লিখুন, তারপর সেভ-এ ক্লিক করুন।

একটি প্রিভিউ চ্যানেলের মেয়াদ শেষ হওয়ার সময় নির্ধারণ করুন

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

যখন কোনো প্রিভিউ চ্যানেলের মেয়াদ শেষ হয়ে যায়, তখন চ্যানেলটি, তার রিলিজ এবং সংশ্লিষ্ট ভার্সনগুলোসহ, ২৪ ঘণ্টার মধ্যে মুছে ফেলার জন্য নির্ধারিত হয়। সংশ্লিষ্ট প্রিভিউ ইউআরএলটিও নিষ্ক্রিয় হয়ে যায়। এই ভার্সন-মুছে ফেলার একটি ব্যতিক্রম হলো যদি কোনো ভার্সন অন্য কোনো রিলিজের সাথে যুক্ত থাকে (উদাহরণস্বরূপ, একই সাইটের মধ্যে একটি চ্যানেল থেকে অন্য চ্যানেলে কোনো ভার্সন ক্লোন করলে এমনটা ঘটে)।

Hosting একটি চ্যানেলের মেয়াদ নিয়ন্ত্রণ করার জন্য দুটি ভিন্ন উপায় সমর্থন করে:

  • Firebase কনসোল
    প্রিভিউ চ্যানেলের সারিতে, ক্লিক করুন, তারপর চ্যানেল সেটিংস নির্বাচন করুন। মেয়াদ শেষ হওয়ার তারিখ ও সময় লিখুন।

  • Firebase সিএলআই
    আপনার প্রিভিউ চ্যানেলে ডিপ্লয় করার সময়, --expires DURATION ফ্ল্যাগটি পাস করুন, উদাহরণস্বরূপ:

    firebase hosting:channel:deploy new-awesome-feature --expires 7d

    স্থাপনের তারিখ থেকে এর মেয়াদ সর্বোচ্চ ৩০ দিন পর্যন্ত হতে পারে। ঘণ্টার জন্য h , দিনের জন্য d এবং সপ্তাহের জন্য w ব্যবহার করুন (উদাহরণস্বরূপ, যথাক্রমে 12h , 7d , 2w )।

এক চ্যানেল থেকে অন্য চ্যানেলে একটি সংস্করণ ক্লোন করুন

আপনি একটি ডেপ্লয় করা ভার্সন এক চ্যানেল থেকে অন্য চ্যানেলে ক্লোন করতে পারেন। আপনি লাইভ বা প্রিভিউ চ্যানেল জুড়ে, Hosting সাইট জুড়ে, এমনকি ফায়ারবেস প্রোজেক্ট জুড়েও ক্লোন করতে পারেন।

ক্লোন কমান্ডটি 'টার্গেট' চ্যানেলেও ডেপ্লয় করে , ফলে ক্লোন করা Hosting কন্টেন্ট এবং কনফিগারেশন স্বয়ংক্রিয়ভাবে 'টার্গেট' চ্যানেলের সংশ্লিষ্ট URL-এ পরিবেশিত হয়।

এই ফিচারটি ভার্সন ট্র্যাক করার জন্য অথবা অন্য কোনো চ্যানেলে দেখা এবং/অথবা পরীক্ষা করা সঠিক কন্টেন্টটিই ডেপ্লয় করছেন কিনা, সে বিষয়ে নিশ্চিত হতে চাইলে উপযোগী। এখানে কিছু উদাহরণ দেওয়া হলো:

  • একটি "QA" প্রিভিউ চ্যানেল থেকে আপনার সাইটের লাইভ চ্যানেলে (যা শীঘ্রই লাইভ হচ্ছে!) ক্লোন করুন।

  • আপনার সাইটের লাইভ চ্যানেল থেকে একটি 'ডিবাগ' প্রিভিউ চ্যানেলে ক্লোন করুন (যেমন রোলব্যাকের আগে)।

  • আপনার 'স্টেজিং' ফায়ারবেস প্রজেক্টের একটি চ্যানেল থেকে আপনার 'প্রোড' ফায়ারবেস প্রজেক্টের একটি প্রিভিউ চ্যানেলে ক্লোন করুন।

একটি সংস্করণ ক্লোন করতে, যেকোনো ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডটি চালান:

firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID

প্রতিটি প্লেসহোল্ডারকে নিম্নলিখিত দ্বারা প্রতিস্থাপন করুন:

  • SOURCE_SITE_ID এবং TARGET_SITE_ID : এগুলো হলো সেই Hosting সাইটগুলোর আইডি, যেগুলোতে চ্যানেলগুলো রয়েছে।

    • আপনার ডিফল্ট Hosting সাইটের জন্য আপনার ফায়ারবেস প্রজেক্ট আইডি ব্যবহার করুন।
    • আপনি একই ফায়ারবেস প্রজেক্টে থাকা অথবা এমনকি ভিন্ন ভিন্ন ফায়ারবেস প্রজেক্টে থাকা Hosting সাইটগুলোও নির্দিষ্ট করে দিতে পারেন।
  • SOURCE_CHANNEL_ID এবং TARGET_CHANNEL_ID : এগুলো হলো চ্যানেলগুলোর শনাক্তকারী।

    • লাইভ চ্যানেলের জন্য, চ্যানেল আইডি হিসেবে live ব্যবহার করুন।
    • যদি নির্দিষ্ট "টার্গেট" চ্যানেলটি আগে থেকে বিদ্যমান না থাকে, তাহলে এই কমান্ডটি সেটিতে ডিপ্লয় করার আগে চ্যানেলটি তৈরি করে নেয়।

আপনার সাইটের পূর্ববর্তী সংস্করণে ফিরে যান

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

রোল ব্যাক করার মাধ্যমে, আপনি একটি নতুন রিলিজ তৈরি করেন যা পূর্ববর্তী রিলিজের মতোই একই সংস্করণের কন্টেন্ট সরবরাহ করে। আপনার রিলিজ হিস্ট্রি টেবিলে, উভয় রিলিজেই একই ভার্সন আইডেন্টিফায়ার তালিকাভুক্ত থাকবে।

যেভাবে আগের অবস্থায় ফিরে যাবেন:

  1. Firebase কনসোলে, Hosting & Serverless > Hosting -এ যান।

  2. আপনার সাইটের রিলিজ হিস্ট্রি টেবিলে, পূর্ববর্তী যে রিলিজ এন্ট্রিতে আপনি ফিরে যেতে চান, সেটির উপর মাউস রাখুন।

  3. এ ক্লিক করুন, তারপর Roll back নির্বাচন করুন।

ম্যানুয়ালি একটি রিলিজ ডিলিট করুন

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

যখন আপনি একটি রিলিজ ডিলিট করেন, তখন আপনি আসলে এর কন্টেন্ট ডিলিট করে দেন, যা ২৪ ঘণ্টার মধ্যে ডিলিট হওয়ার জন্য নির্ধারিত থাকে। রিলিজ অবজেক্টটি রেখে দেওয়া হয়, যাতে আপনি এর মেটাডেটা (কে এবং কখন ডেপ্লয় করেছে) দেখতে পারেন।

একটি রিলিজ ডিলিট করার পদ্ধতি নিচে দেওয়া হলো:

  1. Firebase কনসোলে, Hosting & Serverless > Hosting -এ যান।

  2. আপনার সাইটের রিলিজ হিস্ট্রি টেবিলে, আপনি যে পূর্ববর্তী রিলিজ এন্ট্রিটি মুছে ফেলতে চান, সেটির উপর মাউস রাখুন।

  3. এ ক্লিক করুন, তারপর Delete নির্বাচন করুন।

ম্যানুয়ালি ফাইল মুছুন

Firebase Hosting এ, ডেপ্লয় করা কোনো সাইট থেকে নির্বাচিত ফাইল মুছে ফেলার প্রধান উপায় হলো, প্রথমে ফাইলগুলো স্থানীয়ভাবে মুছে ফেলা এবং তারপর পুনরায় ডেপ্লয় করা।

ম্যানুয়ালি একটি প্রিভিউ চ্যানেল মুছুন

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

আপনি যখন একটি প্রিভিউ চ্যানেল ডিলিট করেন, তখন চ্যানেলটি, তার রিলিজ এবং সংশ্লিষ্ট ভার্সনগুলোসহ, ২৪ ঘন্টার মধ্যে ডিলিট করার জন্য নির্ধারিত হয়ে যায়। সংশ্লিষ্ট প্রিভিউ ইউআরএলটিও নিষ্ক্রিয় হয়ে যায়। ভার্সন ডিলিট করার ক্ষেত্রে একটি ব্যতিক্রম রয়েছে, যদি কোনো ভার্সন অন্য কোনো রিলিজের সাথে যুক্ত থাকে (উদাহরণস্বরূপ, আপনি যদি একই সাইটের মধ্যে একটি চ্যানেল থেকে অন্য চ্যানেলে কোনো ভার্সন ক্লোন করেন, তবে এমনটা ঘটে)।

Hosting একটি প্রিভিউ চ্যানেল ডিলিট করার জন্য দুটি ভিন্ন উপায় সমর্থন করে:

  • Firebase কনসোল
    প্রিভিউ চ্যানেলের সারিতে, ক্লিক করুন, তারপর Delete channel নির্বাচন করুন। মুছে ফেলার বিষয়টি নিশ্চিত করুন।

  • Firebase সিএলআই
    যেকোনো ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডটি চালান:

    firebase hosting:channel:delete CHANNEL_ID

প্রিভিউ চ্যানেল এবং ক্লোনিংয়ের জন্য CLI কমান্ড

প্রিভিউ চ্যানেলগুলির জন্য কমান্ড

আপনার একাধিক Hosting সাইট থাকলে, প্রিভিউ চ্যানেলগুলির সমস্ত কমান্ড ডিপ্লয় টার্গেট সমর্থন করে।

আদেশ বর্ণনা
firebase hosting:channel:create CHANNEL_ID

নির্দিষ্ট CHANNEL_ID ব্যবহার করে ডিফল্ট Hosting সাইটে একটি নতুন প্রিভিউ চ্যানেল তৈরি করে।

এই কমান্ডটি চ্যানেলে ডেপ্লয় করে না।

firebase hosting:channel:delete CHANNEL_ID

নির্দিষ্ট প্রিভিউ চ্যানেলটি মুছে দেয়

আপনি কোনো সাইটের লাইভ চ্যানেল মুছে ফেলতে পারবেন না।

firebase hosting:channel:deploy CHANNEL_ID

আপনার Hosting কন্টেন্ট এবং কনফিগারেশন নির্দিষ্ট প্রিভিউ চ্যানেলে স্থাপন করে।

যদি প্রিভিউ চ্যানেলটি আগে থেকে বিদ্যমান না থাকে, তাহলে এই কমান্ডটি চ্যানেলে ডিপ্লয় করার আগে ডিফল্ট Hosting সাইটে চ্যানেলটি তৈরি করে নেয়।

firebase hosting:channel:list ডিফল্ট Hosting সাইটের সমস্ত চ্যানেল (লাইভ চ্যানেল সহ) তালিকাভুক্ত করে।
firebase hosting:channel:open CHANNEL_ID ব্রাউজারে নির্দিষ্ট চ্যানেলের ইউআরএল খোলে অথবা ব্রাউজারে খোলা সম্ভব না হলে ইউআরএলটি ফেরত দেয়।

সংস্করণ ক্লোনিংয়ের জন্য কমান্ড

আদেশ বর্ণনা
firebase hosting:clone \
SOURCE_SITE_ID : SOURCE_CHANNEL_ID \
TARGET_SITE_ID : TARGET_CHANNEL_ID

নির্দিষ্ট 'সোর্স' চ্যানেলে সর্বশেষ ডেপ্লয় করা সংস্করণটিকে নির্দিষ্ট 'টার্গেট' চ্যানেলে ক্লোন করে।

এই কমান্ডটি নির্দিষ্ট 'টার্গেট' চ্যানেলেও ডেপ্লয় করে। যদি 'টার্গেট' চ্যানেলটি আগে থেকে বিদ্যমান না থাকে, তবে এই কমান্ডটি চ্যানেলে ডেপ্লয় করার আগে 'টার্গেট' Hosting সাইটে একটি নতুন প্রিভিউ চ্যানেল তৈরি করে।

firebase hosting:clone \
SOURCE_SITE_ID :@ VERSION_ID \
TARGET_SITE_ID : TARGET_CHANNEL_ID

নির্দিষ্ট সংস্করণটিকে নির্দিষ্ট 'টার্গেট' চ্যানেলে ক্লোন করে।

এই কমান্ডটি নির্দিষ্ট 'টার্গেট' চ্যানেলেও ডেপ্লয় করে। যদি 'টার্গেট' চ্যানেলটি আগে থেকে বিদ্যমান না থাকে, তবে এই কমান্ডটি চ্যানেলে ডেপ্লয় করার আগে 'টার্গেট' Hosting সাইটে একটি নতুন প্রিভিউ চ্যানেল তৈরি করে।

আপনি Firebase কনসোলের Hosting ড্যাশবোর্ডে VERSION_ID খুঁজে পাবেন।