Firebase App Hosting বিশেষভাবে ফ্রেমওয়ার্ক-কেন্দ্রিক আধুনিক ওয়েব অ্যাপ ডেভেলপমেন্টকে সমর্থন করার জন্য ডিজাইন করা হয়েছে। App Hosting সরাসরি যেসব টুলিং এবং ফ্রেমওয়ার্ক সমর্থন করে, সেগুলোর রেফারেন্স হিসেবে এই পৃষ্ঠাটি ব্যবহার করুন। এছাড়াও, এটি সম্পর্কিত ফ্রেমওয়ার্ক ও টুলিং সম্পর্কে জানার একটি সূচনা বিন্দু হিসেবেও কাজ করবে।
ওয়েব ফ্রেমওয়ার্ক এবং App Hosting
App Hosting আধুনিক ওয়েব ফ্রেমওয়ার্কগুলির জন্য দুই ধরনের সহায়তা প্রদান করে: পূর্ব-কনফিগার করা বিল্ড ও ডিপ্লয় সাপোর্ট, এবং আউটপুট বান্ডেল স্পেসিফিকেশন মেনে চলা ওপেন সোর্স অবদানের মাধ্যমে কমিউনিটি-স্তরের সহায়তা। উভয় ক্ষেত্রেই, একটি ফ্রেমওয়ার্ক অ্যাডাপ্টার কম্পোনেন্ট App Hosting সাথে একটি নির্দিষ্ট ফ্রেমওয়ার্কের ইন্টিগ্রেশন সক্ষম করে।
পূর্ব-কনফিগার করা বিল্ড এবং ডিপ্লয় সমর্থন সহ ফ্রেমওয়ার্ক
পূর্ব-কনফিগার করা বিল্ড এবং ডিপ্লয় সাপোর্টের মাধ্যমে, Firebase আপনার package-lock.json ফাইল বা অন্য কোনো লক ফাইল পরীক্ষা করে আপনি কোন ফ্রেমওয়ার্ক ব্যবহার করছেন তা শনাক্ত করে এবং আপনার অ্যাপের জন্য বিল্ড ও ডিপ্লয়মেন্ট প্রক্রিয়াকে অপ্টিমাইজ করে। Google এই ফ্রেমওয়ার্কগুলোর জন্য সাপোর্ট বজায় রাখতে প্রতিশ্রুতিবদ্ধ, এবং Firebase সাপোর্ট টিম বিভিন্ন সমস্যার রিপোর্ট ও ফিচারের অনুরোধ গ্রহণ করতে পারে।
নিম্নলিখিত ক্ষেত্রে এই স্তরের সহায়তা প্রদান করা হয়:
- নেক্সট.জেএস
- কৌণিক
নির্দিষ্ট সংস্করণ এবং সহায়তার স্তর সম্পর্কে বিস্তারিত জানতে সহায়তা সময়সূচী দেখুন।
যদি আপনি এমন একটি Node.js অ্যাপ ডেপ্লয় করার চেষ্টা করেন যেটিতে লক ফাইল নেই, তাহলে App Hosting আপনার অ্যাপটি বিল্ড এবং রান করতে ব্যর্থ হবে। আপনি আপনার রুট ডিরেক্টরিতে npm install চালিয়ে package-lock.json তৈরি করতে পারেন।
সম্প্রদায়-সমর্থিত কাঠামো
Next.js এবং Angular ছাড়াও, App Hosting এমন যেকোনো ওয়েব ফ্রেমওয়ার্ক সমর্থন করে যা আমাদের আউটপুট বান্ডেল স্পেসিফিকেশনের সাথে মেলে এমন একটি বিল্ড আউটপুট প্রদান করতে সক্ষম। ফ্রেমওয়ার্ক নির্মাতারা তাদের ফ্রেমওয়ার্কটি App Hosting দ্বারা সমর্থিত কিনা তা নিশ্চিত করতে আউটপুট বান্ডেল স্পেসিফিকেশনের সুবিধা নিতে পারেন। উদাহরণস্বরূপ, জনপ্রিয় Nuxt ফ্রেমওয়ার্কটি Nitro টিম দ্বারা সমর্থিত, যারা App Hosting -এ Nuxt অ্যাপ ডেপ্লয়মেন্ট সক্ষম করার জন্য একটি Firebase অ্যাডাপ্টার তৈরি করেছে।
আপনি যদি App Hosting দ্বারা সমর্থিত অতিরিক্ত ফ্রেমওয়ার্কগুলো দেখতে চান, তাহলে আপনি একটি ফ্রেমওয়ার্ক অ্যাডাপ্টার তৈরি করতে পারেন, অথবা বিল্ড আউটপুটগুলোকে App Hosting ফরম্যাটে রূপান্তর করার জন্য ফ্রেমওয়ার্কটির রক্ষণাবেক্ষণকারীদের সাথে যোগাযোগ করতে পারেন। যারা অ্যাডাপ্টার তৈরি করছেন, তাদের জন্য Next.js এবং Angular অ্যাডাপ্টারগুলো ভালো রেফারেন্স উদাহরণ।
কমিউনিটি-সমর্থিত ফ্রেমওয়ার্ক সম্পর্কিত তথ্য ফায়ারবেস ওপেন সোর্স -এ পাওয়া যাবে। কমিউনিটি-সমর্থিত ফ্রেমওয়ার্ক সংক্রান্ত সমস্যা এবং ফিচার অনুরোধ ওপেন সোর্স কমিউনিটি বা ফ্রেমওয়ার্কের নির্মাতাদের কাছে জানাতে হবে। কিছু ক্ষেত্রে গুগল সাহায্য করতে পারলেও, এই অ্যাডাপ্টারগুলোর জন্য কমিউনিটিই হলো সহায়তার প্রথম মাধ্যম।
App Hosting ফ্রেমওয়ার্ক অ্যাডাপ্টার
App Hosting এ, ফ্রেমওয়ার্ক অ্যাডাপ্টারের মাধ্যমে পূর্ব-কনফিগার করা এবং কমিউনিটি-সমর্থিত উভয় প্রকার ফ্রেমওয়ার্কের জন্য সাপোর্ট প্রদান করা হয়। App Hosting ফ্রেমওয়ার্ক অ্যাডাপ্টারের দুটি প্রধান ভূমিকা রয়েছে:
- তারা আপনার সোর্স কোড এবং যেকোনো ফ্রেমওয়ার্ক-নির্দিষ্ট কনফিগারেশন ফাইল (যেমন
next.config.js) পার্স করে একটি আউটপুট বান্ডেল তৈরি করে, যা App Hosting পরিকাঠামোর বাকি অংশ দ্বারা প্রসেস করা যায়। - এগুলো আপনার অ্যাপের বিল্ড কমান্ড চালিয়ে স্ট্যাটিক অ্যাসেট তৈরি করে এবং প্রোডাকশনের জন্য আপনার অ্যাপের একটি অপ্টিমাইজড সংস্করণ তৈরি করে।
ফ্রেমওয়ার্ক অ্যাডাপ্টারগুলো npm run build মাধ্যমে আপনার Node.js অ্যাপ বিল্ড করে, যা প্রতিটি ফ্রেমওয়ার্কের ডিফল্ট বিল্ড স্ক্রিপ্টের সাথে সবচেয়ে ভালোভাবে কাজ করে: Next.js-এর জন্য next build এবং Angular-এর জন্য ng build । App Hosting কাস্টম বিল্ড কমান্ড দিয়ে বিল্ড করার চেষ্টা করবে, কিন্তু নির্ভরযোগ্যভাবে সফলতার নিশ্চয়তা দিতে পারে না। আপনি apphosting.yaml ফাইলে বিল্ড এবং রান স্ক্রিপ্টগুলো ওভাররাইড করতে পারেন।
Next.js এবং Angular অ্যাডাপ্টারগুলির সোর্স firebase-framework-tools- এ পাওয়া যায়।
App Hosting জন্য রানটাইম
App Hosting দ্বারা বিল্ড এবং রোল আউট করার পর, আপনার Node.js অ্যাপটি একটি Cloud Run রিভিশনে চলে। সেই অনুযায়ী, আপনার অ্যাপের রানটাইম ভার্সনটি Cloud Run -এর সমর্থিত পরিসর এবং আপনার নির্বাচিত ওয়েব ফ্রেমওয়ার্কের পরিসরের মধ্যেই থাকা উচিত। Angular এবং Next.js-এর জন্য প্রি-কনফিগার করা সাপোর্টের ক্ষেত্রে, এর অর্থ হলো নিম্নলিখিত Node.js ভার্সনগুলো সমর্থিত:
- Next.js 13.5.x এবং উচ্চতর সংস্করণ
- Angular 18.2.x এবং উচ্চতর সংস্করণ
- Node.js 20 এবং উচ্চতর
App Hosting নতুন প্রকাশিত ফ্রেমওয়ার্ক সংস্করণগুলির জন্য স্বয়ংক্রিয়ভাবে সক্রিয় সমর্থন প্রদান করে না। আমাদের বর্তমানে নির্ধারিত 'সক্রিয়' সংস্করণের চেয়ে নতুন সংস্করণগুলিকে 'প্রিভিউ' অবস্থায় বিবেচনা করা হবে, যতক্ষণ না সেগুলিকে App Hosting জন্য আনুষ্ঠানিকভাবে 'সক্রিয়' হিসাবে চিহ্নিত করা হয়।
App Hosting কোনো মেজর রিলিজের সর্বশেষ মাইনর ভার্সনের জন্য তার সক্রিয় সাপোর্ট সময়কাল থেকে এক বছরের জন্য দীর্ঘমেয়াদী সাপোর্ট (LTS) প্রদান করে, এই শর্তে যে আপনি সেই মাইনর ভার্সনের সর্বশেষ প্যাচ রিলিজগুলোতে ধারাবাহিকভাবে আপডেট করবেন। Next.js এবং Angular-এর বিস্তারিত তথ্যের জন্য নিম্নলিখিত সারণিগুলো দেখুন।
Next.js সমর্থনের সময়সূচী
| সংস্করণ | অবস্থা | অবচয় |
|---|---|---|
| ১৩.৫.x | এলটিএস | ২০২৬-১০-৯ |
| ১৪.২.x | এলটিএস | ২০২৬-১০-৯ |
| ১৫.০.x | সক্রিয় | ২০২৫-১০-৯ এর আগে নয় |
| ১৫.১.x | সক্রিয় | ২০২৫-১০-৯ এর আগে নয় |
| ১৫.২.x | সক্রিয় | - |
অ্যাঙ্গুলার সাপোর্ট শিডিউল
| সংস্করণ | অবস্থা | অবচয় |
|---|---|---|
| ১৮.২.x | এলটিএস | ২০২৬-১০-৯ |
| ১৯.০.x | সক্রিয় | ২০২৫-১০-৯ এর আগে নয় |
| ১৯.১.x | সক্রিয় | ২০২৫-১০-৯ এর আগে নয় |
| ১৯.২.x | সক্রিয় | - |
স্বয়ংক্রিয় বেস ইমেজ আপডেট (ABIU)
অটোমেটিক বেস ইমেজ আপডেট (ABIU) এমন একটি ফিচার যা নতুন কোনো অ্যাপ রোলআউট চালু করার প্রয়োজন ছাড়াই আপনার অন্তর্নিহিত রানটাইম এনভায়রনমেন্টে স্বয়ংক্রিয়ভাবে সিকিউরিটি প্যাচ প্রয়োগ করে।
App Hosting নতুন ব্যাকএন্ডগুলির জন্য ডিফল্টরূপে ABIU সক্রিয় করে, যার জন্য নিম্নলিখিত নির্দিষ্ট শর্তাবলী প্রয়োজন:
- ভার্সনযুক্ত রানটাইম: ABIU ব্যবহার করতে হলে, আপনাকে অবশ্যই একটি ভার্সনযুক্ত রানটাইম (যেমন
nodejs20,nodejs22,nodejs24) নির্দিষ্ট করতে হবে। Cloud Run -এর সমর্থনের অনুরূপভাবে, App Hosting জোড় সংখ্যার Node.js ভার্সন সমর্থন করে। - package.json-এর মিল: App Hosting জন্য আপনার নির্বাচিত Node ভার্সনটি অবশ্যই আপনার
package.jsonফাইলেরenginesফিল্ডে উল্লেখিত ভার্সনের সাথে সামঞ্জস্যপূর্ণ হতে হবে। যদি কোনো অমিল থাকে, তাহলে আপনি Cloud Build থেকে একটি বিল্ড-টাইম এররের সম্মুখীন হবেন। যখনই আপনিenginesফিল্ডটি পরিবর্তন করবেন, ডিপ্লয় করার আগে আপনার ব্যাকএন্ডের রানটাইম আপডেট করে নিতে ভুলবেন না।
ABIU অক্ষম করা
আপনি যদি ABIU ব্যবহার বন্ধ করতে চান, তাহলে অনবোর্ডিংয়ের সময় অথবা Firebase কনসোলে আপনার রানটাইমের জন্য "Not Specified" নির্বাচন করে এটি নিষ্ক্রিয় করতে পারেন। যখন একটি ভার্সনবিহীন nodejs ডিফল্ট ব্যবহার করা হয়, তখন ABIU স্বয়ংক্রিয়ভাবে নিষ্ক্রিয় হয়ে যায়।
রানটাইম সংস্করণ পরিচালনা করা
আপনি আপনার App Hosting ড্যাশবোর্ডের সেটিংস ট্যাবে যেকোনো সময় আপনার ব্যাকএন্ডের রানটাইম ভার্সন এবং ABIU প্রেফারেন্স দেখতে ও পরিবর্তন করতে পারেন। তবে, মনে রাখবেন যে, নতুন ভার্সনটি আপনার কোডের সাথে সামঞ্জস্যপূর্ণ না হলে রানটাইম ভার্সন পরিবর্তন করার ফলে আপনার অ্যাপ্লিকেশনটি ভেঙে যেতে পারে ।
রানটাইম ভার্সনগুলো অবশেষে তাদের সাপোর্ট লাইফসাইকেলের শেষ পর্যায়ে পৌঁছায়। বড় ধরনের পরিবর্তন (breaking changes) এড়াতে আপনার রানটাইমগুলো আপডেট রাখা জরুরি:
- অপ্রচলিত রানটাইম: আপনার নির্বাচিত রানটাইমটি অপ্রচলিত হয়ে গেলেও, আপনার অ্যাপ্লিকেশনটি সাধারণত কাজ করতে থাকবে। আপনি কনসোলে একটি সতর্কবার্তা পাবেন এবং আপনার যত তাড়াতাড়ি সম্ভব একটি নতুন সংস্করণে চলে যাওয়া উচিত। আরও তথ্যের জন্য, রানটাইম লাইফসাইকেল সম্পর্কিত Cloud Run ডকুমেন্টেশন দেখুন।
- বাতিলকৃত রানটাইম: বাতিলকৃত রানটাইমগুলো সম্পূর্ণরূপে অসমর্থিত। আপনি বাতিলকৃত সংস্করণ ব্যবহার করে নতুন বিল্ড বা ব্যাকএন্ড তৈরি করতে পারবেন না, এবং তা করার চেষ্টা করলে একটি বিল্ড ত্রুটি দেখা দেবে। বাতিলকৃত সংস্করণে চলমান বিদ্যমান ডেপ্লয়মেন্টগুলো কাজ করা বন্ধ করে দিতে পারে, এবং Cloud Run সেগুলো মুছে ফেলার অধিকার সংরক্ষণ করে।
সমর্থিত, অপ্রচলিত এবং পরিষেবা থেকে বাদ দেওয়া নোড সংস্করণগুলির সম্পূর্ণ তালিকার জন্য, Cloud Run রানটাইম সাপোর্ট ডকুমেন্টেশন দেখুন। বেস ইমেজ আপডেটগুলি কীভাবে কাজ করে সে সম্পর্কে আরও প্রযুক্তিগত বিবরণের জন্য, Cloud Run ABIU ডকুমেন্টেশন দেখুন।
প্যাকেজ ম্যানেজার
App Hosting ডিপেন্ডেন্সি ইনস্টল করার জন্য ক্লাউড নেটিভ বিল্ডপ্যাক ব্যবহার করে এবং npm, yarn, বা pnpm দিয়ে অ্যাপটি বিল্ড করে। JSR-এর মতো অন্যান্য প্যাকেজ ম্যানেজার সমর্থিত নয়।
এনপিএম
- NPM হলো ডিফল্ট প্যাকেজ ম্যানেজার।
- বিল্ড সফল হওয়ার পর নন-প্রোডাকশন ডিপেন্ডেন্সিগুলো ছেঁটে ফেলা হয়।
- আপনি আপনার
package.jsonফাইলেরengines.npmফিল্ড ব্যবহার করে npm ভার্সন সেকশনটি নির্দিষ্ট করতে পারেন।
সুতা
- আপনার প্রজেক্টে
yarn.lockফাইলটি অন্তর্ভুক্ত করলে এর পরিবর্তে সুতা ব্যবহৃত হয়। - আপনি আপনার
package.jsonফাইলেরengines.yarnঅথবাpackageManagerফিল্ডে ব্যবহার করার জন্য ইয়ার্ন (yarn) ভার্সনটি নির্দিষ্ট করে দিতে পারেন। - App Hosting Yarn2 PnP মোড সমর্থন করে।
পিএনপিএম
- আপনার প্রজেক্টে
pnpm-lock.yamlফাইলটি অন্তর্ভুক্ত করলে এর পরিবর্তে Pnpm ব্যবহৃত হয়। - আপনি আপনার
package.jsonফাইলেরengines.pnpmঅথবাpackageManagerফিল্ডে pnpm-এর ভার্সন নির্দিষ্ট করে দিতে পারেন। - একটি কার্যকরী উদাহরণের জন্য sample-node-pnpm .app দেখুন।
App Hosting জন্য মোনোরেপোস
App Hosting এনএক্স-ভিত্তিক অ্যাপ সমর্থন করে। বিস্তারিত নির্দেশনার জন্য App Hosting সাথে মনোরেপো ব্যবহার’ দেখুন।
নিম্নলিখিত Nx সংস্করণগুলি সমর্থিত:
| সংস্করণ | অবস্থা | অবচয় |
|---|---|---|
| ১৯.৫.x | রক্ষণাবেক্ষণ | ২০২৫-১০-৯ |
| ১৯.৬.x | রক্ষণাবেক্ষণ | ২০২৫-১০-৯ |
| ১৯.৭.x | রক্ষণাবেক্ষণ | ২০২৫-১০-৯ |
| ১৯.৮.x | এলটিএস | ২০২৬-১০-৯ |
| ২০.০.x | সক্রিয় | ২০২৫-১০-৯ এর আগে নয় |
| ২০.১.x | সক্রিয় | ২০২৫-১০-৯ এর আগে নয় |
| ২০.২.x | সক্রিয় | ২০২৫-১০-৯ এর আগে নয় |
| ২০.৩.x | সক্রিয় | ২০২৫-১০-৯ এর আগে নয় |
| ২০.৪.x | সক্রিয় | ২০২৫-১০-৯ এর আগে নয় |
| ২০.৫.x | সক্রিয় | ২০২৫-১০-৯ এর আগে নয় |
| ২০.৬.x | সক্রিয় | ২০২৫-১০-৯ এর আগে নয় |
| ২০.৭.x | সক্রিয় | — |
অন্যান্য ধরনের মোনোরেপো ওয়ার্কস্পেসের জন্য সহায়তার প্রয়োজন হলে, আমাদেরকে Firebase UserVoice- এ জানান।