ফুল-স্ট্যাক ওয়েব অ্যাপ ডেপ্লয় করার কথা ভাবলেই আগে মাথায় আসতো ভিপিএস (VPS) কেনা বা জটিল কন্টেইনার ম্যানেজমেন্টের কথা। কিন্তু ক্লাউডফ্লেয়ার ওয়ার্কার্স (Cloudflare Workers) পুরো গেমটাই বদলে দিয়েছে। এখন আপনি SvelteKit Cloudflare Workers ব্যবহার করে সার্ভার-সাইড রেন্ডারিং, এপিআই রাউট আর এজ ক্যাশিং—সবকিছুই পাবেন একদম ফ্রিতে। এই সাইটটা আমি যেভাবে সেটআপ করেছি, সেই এক্সাক্ট কনফিগারেশন নিয়েই আজ কথা বলব।

ফ্রিতে আপনি কী কী পাচ্ছেন?

ক্লাউডফ্লেয়ারের ফ্রি টিয়ার ব্যক্তিগত প্রজেক্টের জন্য যথেষ্ট শক্তিশালী:

  • দৈনিক ১,০০,০০০ রিকোয়েস্ট — ছোট সাইটের জন্য এটা বিশাল।
  • প্রতি রিকোয়েস্টে ১০ মিলি-সেকেন্ড CPU টাইম — স্ভেল্টকিট এর মধ্যে অনায়াসেই রান করে।
  • ১ জিবি KV স্টোরেজ — সিম্পল কনফিগ বা সেশন ডেটার জন্য ভালো।
  • কাস্টম ডোমেইন — কোনো বাড়তি খরচ ছাড়াই নিজের ডোমেইন কানেক্ট করা যায়।

ভার্সেল (Vercel) বা নেটলিফাই (Netlify) এর তুলনায় ওয়ার্কার্সের V8 আইসোলেট মডেল অনেক বেশি ফাস্ট কোল্ড স্টার্ট দেয় এবং প্রাইসিংও বেশ প্রেডিক্টেবল।

প্রিকুইজিট

  • Node.js ১৮ বা তার বেশি ইন্সটলড।
  • ক্লাউডফ্লেয়ার অ্যাকাউন্ট।
  • একটি স্ভেল্টকিট প্রজেক্ট।
pnpx sv create my-app
cd my-app
pnpm install

স্টেপ ১: অ্যাডাপ্টার ইন্সটল করা

ক্লাউডফ্লেয়ার ওয়ার্কার্স সরাসরি Node.js রান করে না, এটি V8 আইসোলেট ব্যবহার করে। তাই স্ভেল্টকিটের জন্য একটি ব্রিজ দরকার:

pnpm add -D @sveltejs/adapter-cloudflare

অনেকে ভুল করে পুরনো adapter-cloudflare-workers ইন্সটল করে ফেলে, যা এখন আর রিকমেন্ডেড নয়। নতুন adapter-cloudflare ই এখন স্ট্যান্ডার্ড।

স্টেপ ২: svelte.config.js কনফিগারেশন

ফাইলে ডিফল্ট অ্যাডাপ্টার রিপ্লেস করে নিচের মতো করে দিন:

import adapter from '@sveltejs/adapter-cloudflare';
// ... (rest of the config)

এখানে routes.exclude অপশনটি বেশ জরুরি। এটি ক্লাউডফ্লেয়ারকে বলে দেয় কোন রিকোয়েস্টগুলো সরাসরি স্ট্যাটিক অ্যাসেট থেকে সার্ভ করবে, যা আপনার ইনভোকেশন কস্ট বাঁচায়।

স্টেপ ৩: wrangler.jsonc তৈরি করা

প্রজেক্টের রুটে wrangler.jsonc ফাইল তৈরি করুন। আমি শুরুতে এর সিনট্যাক্স নিয়ে একটু ঝামেলায় পড়েছিলাম, কিন্তু এটি বেশ সোজাসাপ্টা:

{
	"name": "my-sveltekit-app",
	"main": ".svelte-kit/cloudflare/_worker.js",
	"compatibility_flags": ["nodejs_als", "nodejs_compat"],
	"compatibility_date": "2024-09-23",
	"assets": {
		"binding": "ASSETS",
		"directory": ".svelte-kit/cloudflare"
	}
}

স্টেপ ৪: বিল্ড আর ডেপ্লয়

বিল্ড করার পর ক্লাউডফ্লেয়ারে পুশ করে দিন:

pnpm build
wrangler deploy

প্রথমবার ডেপ্লয় করার পর ক্লাউডফ্লেয়ার আপনাকে একটি *.workers.dev সাবডোমেইন দেবে।

কেন SvelteKit Cloudflare Workers ব্যবহার করবেন?

আমার অভিজ্ঞতায়, ক্লাউডফ্লেয়ার ওয়ার্কার্সের সবচেয়ে বড় সীমাবদ্ধতা হলো এর ১ মেগাবাইটের জিজিপড (Gzipped) ফাইল সাইজ লিমিট। যদি আপনার অ্যাপ অনেক বেশি হেভি ডিপেন্ডেন্সি ব্যবহার করে, তবে বিল্ড টাইমে এরর খেতে পারেন। এছাড়া Node.js এর সব লাইব্রেরি এখানে কাজ করে না, বিশেষ করে যেগুলো fs বা নেটিভ বাইন্ডিংয়ের ওপর নির্ভরশীল।

তবে এই সীমাবদ্ধতাগুলো বাদ দিলে, পারফরম্যান্সের দিক থেকে এটি অতুলনীয়। কোল্ড স্টার্টের ঝামেলা নেই বললেই চলে। আমার মনে হয় যারা জিরো কস্টে হাই-পারফরম্যান্স অ্যাপ বানাতে চান, তাদের জন্য SvelteKit Cloudflare Workers সেরা চয়েস।

ক্লাউডফ্লেয়ার ওয়ার্কার্স (Cloudflare Workers) ব্যবহার করে SvelteKit অ্যাপ একদম ফ্রিতে ডেপ্লয় করার নিয়ম, কনফিগারেশন এবং সীমাবদ্ধতা নিয়ে বিস্তারিত জানুন।

Asaduzzaman Pavel

About the Author

Asaduzzaman Pavel is a Software Engineer who actually enjoys the friction of a well-architected system. He has over 15 years of experience building high-performance backends and infrastructure that can actually handle the real-world chaos of scale.

Currently looking for new opportunities to build something amazing.