Skip to content

بک‌اند Cloudflare workers

راه‌اندازی پروژه

bash
cd worker
pnpm install
cp wrangler.toml.template wrangler.toml

ایجاد کش KV

NOTE

اگر می‌خواهید قابلیت ثبت‌نام کاربران را فعال کنید و نیاز به ارسال ایمیل تأیید دارید، باید کش KV ایجاد کنید. در غیر این صورت می‌توانید این مرحله را رد کنید. اگر به ربات تلگرام نیاز دارید، باید کش KV ایجاد کنید. در غیر این صورت می‌توانید این مرحله را رد کنید.

کش KV را از طریق خط فرمان ایجاد کنید یا در کنسول Cloudflare ایجاد کنید، سپس تنظیمات مربوطه را در فایل wrangler.toml کپی کنید.

bash
wrangler kv:namespace create KV

ویرایش فایل پیکربندی wrangler.toml

توجه

برای اطلاعات بیشتر در مورد پیکربندی متغیرها، لطفاً به توضیحات متغیرهای worker مراجعه کنید.

toml
name = "cloudflare_mailer"
main = "src/worker.ts"
compatibility_date = "2024-09-23"
compatibility_flags = [ "nodejs_compat" ]

# اگر می‌خواهید از دامنه سفارشی استفاده کنید، باید پیکربندی مسیرها را اضافه کنید
# routes = [
#  { pattern = "temp-email-api.xxxxx.xyz", custom_domain = true },
# ]

# اگر می‌خواهید از وظایف زمان‌بندی شده برای پاکسازی ایمیل‌ها استفاده کنید، توضیحات زیر را حذف کنید و عبارت cron را ویرایش کنید
# [triggers]
# crons = [ "0 0 * * *" ]

# ارسال ایمیل از طریق Cloudflare
# send_email = [
#    { name = "SEND_MAIL" },
# ]

[vars]
# پیشوند نام ایمیل، اگر پسوند نیاز ندارید می‌توانید آن را به صورت رشته خالی تنظیم کنید یا اصلاً پیکربندی نکنید
PREFIX = "tmp"
# تمام دامنه‌های مورد استفاده برای ایمیل موقت، پشتیبانی از چندین دامنه
DOMAINS = ["xxx.xxx1" , "xxx.xxx2"]
# کلید مخفی برای تولید jwt، jwt برای ورود کاربر و احراز هویت استفاده می‌شود
JWT_SECRET = "xxx"

# رمز عبور کنسول مدیر، اگر پیکربندی نشود، دسترسی به کنسول مجاز نیست
# ADMIN_PASSWORDS = ["123", "456"]

# آیا کاربران مجاز به ایجاد ایمیل هستند، اگر پیکربندی نشود، مجاز نیست
ENABLE_USER_CREATE_EMAIL = true
# آیا کاربران مجاز به حذف ایمیل هستند، اگر پیکربندی نشود، مجاز نیست
ENABLE_USER_DELETE_EMAIL = true

# نام و شناسه پایگاه داده D1 را می‌توان در کنسول cloudflare مشاهده کرد
[[d1_databases]]
binding = "DB"
database_name = "xxx" # نام پایگاه داده D1
database_id = "xxx" # شناسه پایگاه داده D1

# پیکربندی kv برای ارسال کدهای تأیید ایمیل برای ثبت‌نام کاربر، اگر ثبت‌نام کاربر را فعال نمی‌کنید یا تأیید ثبت‌نام را فعال نمی‌کنید، می‌توانید پیکربندی نکنید
# [[kv_namespaces]]
# binding = "KV"
# id = "xxxx"

# پیکربندی محدودیت نرخ برای آدرس جدید /api/new_address
# [[unsafe.bindings]]
# name = "RATE_LIMITER"
# type = "ratelimit"
# namespace_id = "1001"
# # 10 درخواست در دقیقه
# simple = { limit = 10, period = 60 }

# اتصال به worker دیگر برای پردازش ایمیل، مثلاً استفاده از قابلیت‌های هوش مصنوعی auth-inbox برای تجزیه کدهای تأیید یا لینک‌های فعال‌سازی
# [[services]]
# binding = "AUTH_INBOX"
# service = "auth-inbox"

استقرار

اولین استقرار از شما می‌خواهد که یک پروژه ایجاد کنید، برای شاخه production لطفاً production را وارد کنید.

bash
pnpm run deploy

پس از استقرار موفق، می‌توانید url مربوط به worker را در مسیرها ببینید، کنسول نیز url مربوط به worker را نمایش می‌دهد.

worker

NOTE

url مربوط به worker را باز کنید، اگر OK نمایش داده شود، استقرار موفقیت‌آمیز بوده است.

/health_check را باز کنید، اگر OK نمایش داده شود، استقرار موفقیت‌آمیز بوده است.

پیکربندی ربات تلگرام

NOTE

اگر به ربات تلگرام نیاز ندارید، می‌توانید این مرحله را رد کنید.

ابتدا یک ربات تلگرام ایجاد کنید، سپس token را دریافت کنید، سپس دستور زیر را اجرا کنید تا token را به secrets اضافه کنید.

bash
pnpm wrangler secret put TELEGRAM_BOT_TOKEN

منتشر شده تحت مجوز MIT