OffshoreVps
Tutorial8 Okt 20265 menit bacaOleh tim OffshoreVps

Cara Hosting Bot Telegram di VPS

Dapatkan token bot, tulis bot Python, simpan token dengan aman, dan jaga agar tetap berjalan 24/7 dengan layanan systemd.

Bot Telegram harus berjalan sepanjang waktu untuk menjawab pesan. Menjalankannya di laptop berarti bot offline setiap kali Anda menutup layar. VPS kecil mengatasinya dengan beberapa dolar per bulan. Panduan ini menjalankan bot Python sebagai layanan systemd sehingga mulai saat boot dan restart setelah crash.

Jendela terminal di VPS yang menampilkan perintah untuk meng-host bot Telegram, diawali dengan “sudo apt update && sudo apt install -y python3 p”
Jenis perintah yang akan Anda jalankan di server dalam panduan ini.

Seberapa besar VPS?

Sebagian besar bot ringan. Paket dengan 1 hingga 2 vCPU dan RAM 2 GB sudah lebih dari cukup. Lihat hosting bot Telegram untuk paket yang disarankan.

Langkah 1: dapatkan token bot

Bicaralah dengan @BotFather di Telegram, kirim /newbot, pilih nama dan nama pengguna yang berakhiran bot, lalu salin token. Perlakukan seperti kata sandi, karena siapa pun yang memilikinya dapat mengendalikan bot.

Langkah 2: siapkan server

sudo apt update && sudo apt install -y python3 python3-venv
sudo adduser --disabled-password --gecos "" botuser
sudo -iu botuser
mkdir ~/mybot && cd ~/mybot
python3 -m venv .venv
. .venv/bin/activate
pip install python-telegram-bot

Langkah 3: tulis bot kecil

# bot.py
import os
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes

async def start(update: Update, ctx: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("Hello! I am running on a VPS.")

app = ApplicationBuilder().token(os.environ["BOT_TOKEN"]).build()
app.add_handler(CommandHandler("start", start))
app.run_polling()

Polling tidak memerlukan port terbuka, jadi Anda tidak perlu menyiapkan domain atau webhook.

Langkah-langkah panduan ini secara berurutan: 1. Seberapa besar VPS?; 2. dapatkan token bot; 3. tulis bot kecil; 4. simpan token dengan aman; 5. Memperbarui dan memantaunya; 6. Polling atau webhook?
Langkah-langkah dalam panduan ini, secara berurutan.

Langkah 4: simpan token dengan aman

echo "BOT_TOKEN=123456:ABC..." > ~/mybot/.env
chmod 600 ~/mybot/.env

Langkah 5: jalankan sebagai layanan

Kembali sebagai pengguna admin, buat /etc/systemd/system/mybot.service:

[Unit]
Description=Telegram bot
After=network-online.target

[Service]
User=botuser
WorkingDirectory=/home/botuser/mybot
EnvironmentFile=/home/botuser/mybot/.env
ExecStart=/home/botuser/mybot/.venv/bin/python bot.py
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now mybot
sudo journalctl -u mybot -f

Memperbarui dan memantaunya

  • Perbarui kode, lalu sudo systemctl restart mybot.
  • Periksa log dengan journalctl -u mybot -n 100.
  • Gunakan cadangan jika bot menyimpan data.

Polling atau webhook?

Polling paling sederhana dan cukup untuk sebagian besar bot. Gunakan webhook jika Anda memerlukan pengiriman instan pada volume tinggi, yang memerlukan domain dan HTTPS. Lihat hosting dengan Nginx dan HTTPS.