Phone ဖြင့် Termux နဲ့ Cloudflare Workers API ကနေ Telegram Bot Worker Deploy လုပ်နည်း
- Termux Appliaction
- Cloudflare Account
- Quickedit Application
- Telegram Bot
.workers.dev ကို မထည့်ရပါ (အမည်ပဲထည့်ပါ)။
(1) Cloudflare API Token တည်ဆောက်ခြင်း
Cloudflare dashboard → Profile/ Dashboard မှ ဘယ်ဘက် menu အောက်က API Tokens ကိုဝင်ပါ။
Create Custom Token
- Create Token → Create Custom Token → Get Start
- Token Name =
termux-worker-deploy -
Permissions မှာ
- ပထမ box = Account
- ဒုတိယ box = Workers Scripts
- တတိယ (အောက်ဆုံး) = Edit
Add More
- ပထမ box = Account
- ဒုတိယ box = Workers KV Stroage
- တတိယ (အောက်ဆုံး) = Edit
- Account Resources: Include → All accounts
- Client IP Address Filtering ဘာမှ မရွေးပါ
- Start date / End date ထည့်ပါ
- Go → Continue to summary → Create Token
Token verify command ကို copy ယူထားရန်
curl "https://api.cloudflare.com/client/v4/user/tokens/verify" \ -H "Authorization: Bearer Your_User_API_Token"
Account ID နှင့် Subdomain ကို Copy ယူရန်
- ဘယ်ဘက် menu → Compute & AI → Workers & Pages
- Account Details မှ Account Id နဲ့ subdomain ကို copy ကူးထားပါ
(2) Termux Setup
2.1 Storage permission
termux-setup-storage
Storage allow ပေးပါ။
2.2 Packages update + tools install
pkg update -y && pkg upgrade -y pkg install -y curl ca-certificates openssl nano coreutils
2.3 Proxy/VPN ပြဿနာ မဖြစ်အောင် (အမြဲ unset)
unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY all_proxy ALL_PROXY
2.4 Network စစ် (Cloudflare မဝင်နိုင်ရင် VPN လိုနိုင်)
curl -4 -I --connect-timeout 10 https://cloudflare.com
(3) Project folder ကို Phone Storage ထဲမှာဆောက်ရန်
ဖုန်းအများစုမှာ /storage/emulated/0/Download (သို့) /Downloads ရှိပါတယ်။
Termux မှာ အောက်က commands ကို run ပါ။ (ဥပမာ worker name = tg-worker-api)
cd /storage/emulated/0/Download || cd /storage/emulated/0/Downloads mkdir -p tg-worker-api cd tg-worker-api pwd
(4) Worker code ဖိုင် (၂ ခု) ရေးရန်
Bot “အလုပ်လုပ်ရုံ” (minimum working) နမူနာပါ။
4.1 main.js
cat > main.js <<'EOF'
export default {
async fetch(request, env) {
if (request.method === "GET") {
return new Response("OK - bot worker is running", { status: 200 });
}
if (request.method !== "POST") {
return new Response("Method not allowed", { status: 405 });
}
const update = await request.json();
const chatId = update?.message?.chat?.id;
const text = update?.message?.text || "";
if (!chatId) return new Response("No chatId", { status: 200 });
const reply =
text === "/start"
? "✅ Worker bot online! Send any text."
: `You said: ${text}`;
const url = `https://api.telegram.org/bot${env.BOT_TOKEN}/sendMessage`;
await fetch(url, {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({ chat_id: chatId, text: reply }),
});
return new Response("OK", { status: 200 });
},
};
EOF
4.2 metadata.json
cat > metadata.json <<'EOF'
{
"main_module": "main.js",
"compatibility_date": "2026-01-08"
}
EOF
4.3 ဖိုင်ရှိ/မရှိ စစ်
ls -la
main.js နဲ့ metadata.json ၂ ဖိုင် ပေါ်လာရပါမယ်။
(5) Termux env variables set
သင့် Cloudflare API Token / Account ID / Subdomain ကို ကိုယ့်ဟာနဲ့ အစားထိုးပါ။
Subdomain မှာ .workers.dev မထည့်ရပါ။
export CF_API_TOKEN="PASTE_CLOUDFLARE_API_TOKEN"
export CF_ACCOUNT_ID="PASTE_ACCOUNT_ID"
export CF_SUBDOMAIN="PASTE_SUBDOMAIN_WITHOUT_WORKERS_DEV"
export SCRIPT_NAME="tg-bot-test"
export WORKER_URL="https://${SCRIPT_NAME}.${CF_SUBDOMAIN}.workers.dev"
ပြန်စစ်ကြည့်ပါ (output ထဲမှာ အမည်များပေါ်လာရမယ်)
echo ${#CF_API_TOKEN}
echo $CF_ACCOUNT_ID
echo $CF_SUBDOMAIN
echo $SCRIPT_NAME
echo $WORKER_URL
(6) Token verify (API Token မှန်/မမှန်)
curl -s https://api.cloudflare.com/client/v4/user/tokens/verify \ -H "Authorization: Bearer $CF_API_TOKEN"
"success": true ပြရပါမယ်။ (Authorization header format မမှန်ရင် ဒီမှာ fail ဖြစ်တတ်)
(7) Worker ကို API နဲ့ Deploy (PUT)
unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY all_proxy ALL_PROXY curl -4 --tlsv1.2 --http1.1 --connect-timeout 20 --max-time 180 \ --retry 8 --retry-all-errors --retry-delay 2 \ -sS -X PUT "https://api.cloudflare.com/client/v4/accounts/$CF_ACCOUNT_ID/workers/scripts/$SCRIPT_NAME" \ -H "Authorization: Bearer $CF_API_TOKEN" \ -F "metadata=@metadata.json;type=application/json" \ -F "main.js=@main.js;type=application/javascript+module"
(8) Worker URL (workers.dev) နဲ့ run စစ်
echo "https://$SCRIPT_NAME.$CF_SUBDOMAIN.workers.dev"
OK - bot worker is running ပြရပါမယ်။ မပြန်လာလည်း ဆက်လက်လုပ်ဆောင်ပါ။
(9) Cloudflare Dashboard မှာ BOT_TOKEN Secret ထည့်
- Dashboard → Workers & Pages →
tg-bot-test(worker) ကိုဝင် - Settings → Domains & Routes မှာ workers.dev က inactive ဖြစ်နေရင် အစက်သုံးစက် (…) ကိုနှိပ်ပြီး enable လုပ်ပါ
- Variables & Secrets → Add → Secret
- Name:
BOT_TOKEN - Value: BotFather က token ထည့်
- Save & Deploy
(10) Telegram webhook ချိတ်
export TG_TOKEN="PASTE_TELEGRAM_BOT_TOKEN" export WORKER_URL="https://$SCRIPT_NAME.$CF_SUBDOMAIN.workers.dev" curl -4 -sS -X POST "https://api.telegram.org/bot$TG_TOKEN/setWebhook" \ -d "url=$WORKER_URL"
{"ok":true,"result":true,...} ပြရင် webhook OK ပါ။
(11) Test
- Telegram ထဲမှာ bot ကို
/startပို့ကြည့်ပါ - Reply ပြန်လာရင် ပြီးပါပြီ 🎉
Key Shop Bot ပြုလုပ်ဖို့ ဆက်သွားပါမယ်
- KV Bindings
- Marzban api add variables
- Key Shop Bot js file
(1) KV Bindings ပြုလုပ်ခြင်း
Create KV namespace
- Stroage & databases → Workers KV → Create Instance
- Namespaces name =
KB
KV Bindings
- Compute & AI → Workers & Pages → tg-bot-test
- Bindings → Add a binding → KV namespace → Add Binding
- Variable name =
KB - KV namespace =
Choose KV→ Add Binding
termux မှာ run ပါမယ်
namespace id ကို workers & pages/tg-bot-test/bindinds ရဲ့အောက်ဆုံးမှာ
value အောက်က KV ကိုနှိပ်ပြီး ကြည့်ပါ အပေါ်ဆုံးမှာ KV ရဲ့ ဘေးမှာ ကော်ပီ ကူးစရာပါတဲ့ id ကိုတွေ့ရမှာပါ ကော်ပီယူထားပါ
cd /storage/emulated/0/Download/tg-worker-api 2>/dev/null || cd /storage/emulated/0/Downloads/tg-worker-api
cat > metadata.json <<'JSON'
{
"main_module": "main.js",
"compatibility_date": "2026-01-08",
"bindings": [
{
"name": "KV",
"type": "kv_namespace",
"namespace_id": "မိမိ namespace id ထည့်ရန်"
}
]
}
JSON
namespace_id နေရာမှာ မိမိ id ဖြင့် အစားထိုးပါ
Metadata.json ကိုပြန်စစ်ဆေးပါမယ်
KV namespace မှာ ပေးခဲ့ တဲ့ နာမည်အတိုင်း KV ဖြစ်ရပါမယ်
cat metadata.json
Deploy တစ်ခါလုပ်ပါမယ်
unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY all_proxy ALL_PROXY curl -4 --tlsv1.2 --http1.1 --connect-timeout 20 --max-time 180 \ --retry 8 --retry-all-errors --retry-delay 2 \ -sS -X PUT "https://api.cloudflare.com/client/v4/accounts/$CF_ACCOUNT_ID/workers/scripts/$SCRIPT_NAME" \ -H "Authorization: Bearer $CF_API_TOKEN" \ -F "metadata=@metadata.json;type=application/json" \ -F "main.js=@main.js;type=application/javascript+module"
(2) Cloudflare Dashboard မှာ လိုအပ်တဲ့ variables များထည့်ထည့်ပါမယ်
- Dashboard → Workers & Pages →
tg-bot-test(worker) ကိုဝင် - Variables & Secrets → Add → Secret
- Name:
BOT_TOKEN - Value: BotFather က token ထည့်
- Name:
ADMIN_ID - Value: user info bot မှ ရသော မိမိ telegram id ထည့်ရန် → Add variables
- Name:
PANEL_URL - Value: marzban url (https://yourdomain.com:8000) dashboard မထည့်ရပါ → Add variables
- Name:
ADMIN_USERNAME - Value: marzban login username → Add variables
- Name:
ADMIN_PASSWORD - Value: marzban login username → Add variables
- Name:
BOT_USERNAME - Value: Bot user name ထည့်ပေးရန် ရှေ့ဆုံးမ @ မထည့်ရပါ → Add variables
- Name:
HTTP_TIMEOUT_MS - Value: 120 → Add variables
- Name:
TRIAL_COOLDOWN_DAYS - Value: မိမိထားလိုသောရက်ဉပမာ 10 → Add variables
- Name:
TRIAL_LIMIT_GB - Value: မိမိပေးလိုသော BG 2 → Add variables
- Name:
TRIAL_EXPIRE_DAYS - Value: မိမိပေးလိုသော ရက် 5
- Save & Deploy
ရှိပြီးသားဖြစ်နိုင်ပါတယ် ရှိပြီးသားဆိုထပ်ထည့်ရန်မလိုပါ
Key Shop Bot တည်ဆောက်ရန် js file အစားထိုးပါမည်။
keyshopbot.js file download ပြုလုပ်ထားပါ
termux မှာ location ပြောင်းသွားရင် အခု command ထည့်ပေးပါ termux မှာ tg-worker-api နဲ့ အဆုံးသတ်ပြနေရင် ပြောင်းစရာမလိုပါ
cd /storage/emulated/0/Download/tg-worker-api 2>/dev/null || cd /storage/emulated/0/Downloads/tg-worker-api
keyshopbot.js ဖိုင်ကို download folder အောက်က tg-worker-api ထဲကိုထားပေးပါ ပြိးရင် အောက်ပါအတိုင်း file အစားထိုးပါမယ်
cp keyshopbot.js main.js
file ပြောင်းမပြောင်းစမ်းရန်
head -n 5 main.js
keyshopbot ထဲရေးထားတဲ့ code စာကြောင်း ငါးကြောင်းပေါ်လာရပါမယ်
ပြီးရင် deploy လုပ်ပါမယ် မလုပ်ခင် ဒါတွေ အရင်ထပ်ပို့ပါ
export CF_ACCOUNT_ID="CF-Account_id အစားထိုးရန်"
export SCRIPT_NAME="tg-bot-test"
export CF_SUBDOMAIN="subdomain အစားထိုးရန်"
export CF_API_TOKEN="YOUR_CF_API_TOKEN"
export WORKER_URL="https://${SCRIPT_NAME}.${CF_SUBDOMAIN}.workers.dev"
အဆုံးသက်အနေနဲ့ Deploy လုပ်ပါမယ်
unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY all_proxy ALL_PROXY curl -4 --tlsv1.2 --http1.1 --connect-timeout 20 --max-time 180 \ --retry 8 --retry-all-errors --retry-delay 2 \ -sS -X PUT "https://api.cloudflare.com/client/v4/accounts/$CF_ACCOUNT_ID/workers/scripts/$SCRIPT_NAME" \ -H "Authorization: Bearer $CF_API_TOKEN" \ -F "metadata=@metadata.json;type=application/json" \ -F "main.js=@main.js;type=application/javascript+module"
Telegram Webhook အတွက် Bot token ပို့ပြီး ချိတ်ပါမယ်
export TG_TOKEN="YOUR_BOT_TOKEN" curl -sS "https://api.telegram.org/bot$TG_TOKEN/setWebhook" \ -d "url=$WORKER_URL" curl -sS "https://api.telegram.org/bot$TG_TOKEN/getWebhookInfo"