บอท Telegram ที่รันเฉพาะขณะแล็ปท็อปของคุณเปิดไม่ได้รันจริง — มันสาธิต เพื่อให้มันออนไลน์จริง ตอบตอนตีสาม รอดรีบูตของคุณและการแครชของมันเอง มันต้องอยู่บนเซิร์ฟเวอร์ นี่คือเส้นทางทั้งหมด ตั้งแต่ต้นจนจบ พร้อมคำสั่ง
ข่าวดีก่อน: บอทคืองานจิ๋ว มันส่วนใหญ่นั่งว่างรอข้อความ ดังนั้นเครื่องถูกที่สุดรันมันได้ดี — ไม่มี dedicated IP ไม่มีโดเมน ไม่มีอะไรแฟนซี
1. รับโทเคนจาก BotFather
ใน Telegram ส่งข้อความ @BotFather ส่ง /newbot เลือกชื่อและ username มันมอบโทเคนที่ดูเหมือน 12345:AAH... ปฏิบัติต่อมันเหมือนรหัสผ่าน — ใครที่มีมันควบคุมบอทของคุณ
2. บอทขั้นต่ำ
SSH เข้าเซิร์ฟเวอร์ ตั้ง Python และไลบรารี:
sudo apt update && sudo apt install -y python3-venv
mkdir ~/mybot && cd ~/mybot
python3 -m venv venv && source venv/bin/activate
pip install python-telegram-bot
บอทที่ตอบ — ~/mybot/bot.py:
import os
from telegram.ext import ApplicationBuilder, CommandHandler
async def start(update, ctx):
await update.message.reply_text("Alive and on a server. 🟢")
app = ApplicationBuilder().token(os.environ["BOT_TOKEN"]).build()
app.add_handler(CommandHandler("start", start))
app.run_polling()
สังเกตว่ามันอ่านโทเคนจากตัวแปรสภาพแวดล้อม — ไม่ hard-code นั่นสำคัญในขั้นถัดไป
3. ส่วนที่เก็บมันให้รันจริง: systemd
หากคุณแค่รัน python bot.py มันตายทันทีที่คุณปิด SSH บริการ systemd คือสิ่งที่ทำให้มันรอด log out แครช และรีบูต สร้าง /etc/systemd/system/mybot.service:
[Unit]
Description=Telegram bot
After=network-online.target
[Service]
WorkingDirectory=/home/youruser/mybot
Environment=BOT_TOKEN=12345:AAH...your-token
ExecStart=/home/youruser/mybot/venv/bin/python bot.py
Restart=always
RestartSec=5
User=youruser
[Install]
WantedBy=multi-user.target
จากนั้น:
sudo systemctl daemon-reload
sudo systemctl enable --now mybot
sudo systemctl status mybot # ควรบอก active (running)
journalctl -u mybot -f # log สด
Restart=always คือบรรทัดที่ทำงานจริง — แครช แล้วมันกลับใน 5 วินาที enable หมายถึงมันขึ้นหลังรีบูต นั่นคือความต่างทั้งหมดระหว่าง "ฉันรันบอทครั้งหนึ่ง" และ "บอทของฉันขึ้น"
4. ทำไมไม่มีโดเมนหรือพอร์ตเปิด
บอทใช้ long polling — มันยื่นออกไปยัง Telegram เพื่ออัปเดต ดังนั้นไม่มีอะไรต้องเข้าถึงเข้า ไม่มี URL สาธารณะ ไม่มีกฎ firewall ขาเข้า ไม่มี dedicated IP นี่คือเหตุผลพอดีที่ NAT VPS (IP ร่วม SSH บนพอร์ต) เป็นบ้านที่โอเคและถูกสำหรับบอท webhook มีอยู่สำหรับปริมาณสูงมาก แต่คุณแทบแน่นอนไม่ต้องการมันเพื่อเริ่ม
ข้อควรระวังที่ตรงไปตรงมา
- สุขอนามัยโทเคน: ที่นี่มันอยู่ inline ในไฟล์ unit เพื่อความชัดเจน — โอเคบนเครื่องที่ล็อก แต่สำหรับอะไรที่แชร์ โหลดมันจาก
EnvironmentFileแบบ root-only แทน และไม่เคย commit มันลง git รั่ว? เพิกถอนใน BotFather ออกใหม่ - บอทหนัก: หากบอทของคุณทำงานเอง (สร้างภาพ โมเดลในเครื่อง) มันไม่จิ๋วอีก — ขยายขึ้นตามนั้น
แค่นั้น ล็อกเครื่องก่อนด้วยเช็กลิสต์ความปลอดภัย วางบริการ และบอทของคุณอยู่ออนไลน์ไม่ว่าคุณทำหรือไม่ บน VPS ที่จ่ายด้วยคริปโต คุณมีมันรันหนึ่งนาทีหลังคุณตัดสินใจ
ความคิดเห็น
ยังไม่มีความคิดเห็น เป็นคนแรกสิ