بکاند Cloudflare workers
راهاندازی پروژه
cd worker
pnpm install
cp wrangler.toml.template wrangler.tomlایجاد کش KV
NOTE
اگر میخواهید قابلیت ثبتنام کاربران را فعال کنید و نیاز به ارسال ایمیل تأیید دارید، باید کش KV ایجاد کنید. در غیر این صورت میتوانید این مرحله را رد کنید. اگر به ربات تلگرام نیاز دارید، باید کش KV ایجاد کنید. در غیر این صورت میتوانید این مرحله را رد کنید.
کش KV را از طریق خط فرمان ایجاد کنید یا در کنسول Cloudflare ایجاد کنید، سپس تنظیمات مربوطه را در فایل wrangler.toml کپی کنید.
wrangler kv:namespace create KVویرایش فایل پیکربندی wrangler.toml
توجه
برای اطلاعات بیشتر در مورد پیکربندی متغیرها، لطفاً به توضیحات متغیرهای worker مراجعه کنید.
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 را وارد کنید.
pnpm run deployپس از استقرار موفق، میتوانید url مربوط به worker را در مسیرها ببینید، کنسول نیز url مربوط به worker را نمایش میدهد.

NOTE
url مربوط به worker را باز کنید، اگر OK نمایش داده شود، استقرار موفقیتآمیز بوده است.
/health_check را باز کنید، اگر OK نمایش داده شود، استقرار موفقیتآمیز بوده است.
پیکربندی ربات تلگرام
NOTE
اگر به ربات تلگرام نیاز ندارید، میتوانید این مرحله را رد کنید.
ابتدا یک ربات تلگرام ایجاد کنید، سپس token را دریافت کنید، سپس دستور زیر را اجرا کنید تا token را به secrets اضافه کنید.
pnpm wrangler secret put TELEGRAM_BOT_TOKEN