ساخت وب‌سایت با استفاده از Cloudflare Workers

اگر می‌خواهید یک وب‌سایت سریع، امن و همیشه در دسترس داشته باشید،
Cloudflare Workers یکی از بهترین گزینه‌هاست.
در این مقاله قدم‌به‌قدم یاد می‌گیریم چگونه با کمک این پلتفرم،
یک وب‌سایت شخصی یا بلاگ ساده ایجاد کنیم.


مقدمه

Cloudflare Workers بستری بدون سرور (Serverless) است
که به شما اجازه می‌دهد کدهای JavaScript، TypeScript یا حتی WASM خود را
در لبه‌ی شبکه‌ی Cloudflare (Edge) اجرا کنید.
به زبان ساده، کد شما دقیقاً در نزدیک‌ترین نقطه به کاربر اجرا می‌شود؛
بدون نیاز به هاست سنتی، VPS یا تنظیمات پیچیده‌ی بک‌اند.


مزایای استفاده از Workers

  • 🌎 سرعت بالا: محتوا از نزدیک‌ترین دیتاسنتر به کاربر ارائه می‌شود.
  • ⚙️ بدون نیاز به سرور: نیازی به مدیریت زیرساخت یا Docker نیست.
  • 🔒 امنیت بالا: همه‌چیز پشت فایروال Cloudflare اجرا می‌شود.
  • 💰 هزینه‌ی کم: پلن رایگان برای بسیاری از پروژه‌های کوچک کافی است.
  • 🚀 قابلیت استقرار لحظه‌ای: با یک دستور کد خود را منتشر می‌کنید.

ایجاد پروژه‌ی جدید

ابتدا باید ابزار رسمی Cloudflare به نام Wrangler را نصب کنید:

npm install -g wrangler

سپس یک پروژه‌ی جدید ایجاد کنید:

wrangler init my-website
cd my-website

در این مرحله Wrangler فایل‌های اولیه مانند wrangler.json و ساختار پروژه را می‌سازد.


نوشتن اولین Worker

در فایل src/index.ts می‌توانید چنین کدی بنویسید:

export default {
  async fetch(request: Request): Promise<Response> {
    return new Response("سلام از Cloudflare Workers!", {
      headers: { "content-type": "text/plain; charset=utf-8" },
    });
  },
};

این کد بسیار ساده، در پاسخ به هر درخواستی، یک متن فارسی برمی‌گرداند.


اجرای محلی (Dev Mode)

برای تست در حالت توسعه، از دستور زیر استفاده کنید:

npx wrangler dev

سپس مرورگر را باز کنید و آدرس

http://localhost:8787

را ببینید؛ باید پیام شما نمایش داده شود.


انتشار (Deploy)

پس از اطمینان از صحت عملکرد، کافی است بنویسید:

npx wrangler deploy

Wrangler کد شما را بسته‌بندی و در شبکه‌ی Cloudflare مستقر می‌کند.
چند ثانیه بعد، آدرس عمومی وب‌سایت آماده است!


افزودن صفحات React یا Vite

اگر می‌خواهید یک رابط کاربری مدرن داشته باشید،

می‌توانید از Vite + React استفاده کنید و خروجی dist را به عنوان

Assets در wrangler.json تعریف کنید:

{
  "main": "src/worker/index.ts",
  "assets": { "directory": "./dist" }
}

اکنون Worker شما هم صفحات استاتیک (فرانت‌اند) را سرو می‌کند،
و هم APIهای شخصی شما را.


نکات پایانی

  • برای پروژه‌های چندزبانه، بهتر است از i18n در سطح فرانت‌اند استفاده کنید.
  • حتماً از متغیرهای محیطی (Environment Variables) برای تنظیم توکن‌ها و اطلاعات خصوصی استفاده کنید.
  • اگر نیاز به ذخیره‌ی داده دارید، می‌توانید از KV Storage یا D1 Database Cloudflare بهره ببرید.
  • برای بلاگ‌ها، Markdown ساده‌ترین و تمیزترین روش مدیریت محتواست.

جمع‌بندی

در این مقاله دیدیم که ایجاد یک وب‌سایت با Cloudflare Workers
چقدر ساده و در عین حال قدرتمند است.
بدون نیاز به سرور، با هزینه‌ی بسیار پایین و سرعت فوق‌العاده بالا،
می‌توانید پروژه‌ی خود را در چند دقیقه به کاربران سراسر جهان ارائه دهید.

اگر هنوز شروع نکرده‌اید،
همین حالا دستور زیر را اجرا کنید و اولین Worker خود را بسازید:

npx wrangler init my-awesome-site

موفق باشید 💪