Panas musim panas — semuanya meleleh, bahkan harga kami.−25%−25% pada setiap paket tahunan, hingga 31 AgustusLihat paket
EQVPS
Mulai

Cara hosting bot Telegram di VPS (dan menjaganya tetap berjalan)

15 Jun 2026 · 2 mnt baca · EQVPS Team

Bot Telegram yang hanya berjalan saat laptop Anda terbuka tidak benar-benar berjalan — ia sedang demo. Agar benar-benar online, menjawab jam 3 pagi, bertahan dari reboot Anda dan crash-nya sendiri, ia perlu hidup di server. Berikut seluruh jalannya, dari awal hingga akhir, dengan perintahnya.

Kabar baik dulu: bot adalah beban kerja mungil. Ia kebanyakan duduk menganggur menunggu pesan, jadi mesin termurah menjalankannya baik — tanpa IP khusus, tanpa domain, tanpa yang mewah.

1. Dapatkan token dari BotFather

Di Telegram, kirim pesan ke @BotFather, kirim /newbot, pilih nama dan username. Ia menyerahkan token yang terlihat seperti 12345:AAH.... Perlakukan seperti kata sandi — siapa pun yang memilikinya mengendalikan bot Anda.

2. Bot minimal

SSH ke server, siapkan Python dan pustakanya:

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

Bot yang membalas — ~/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()

Perhatikan ia membaca token dari variabel lingkungan — bukan di-hardcode. Itu penting di langkah berikutnya.

3. Bagian yang sebenarnya menjaganya berjalan: systemd

Jika Anda hanya menjalankan python bot.py, ia mati begitu Anda menutup SSH. Layanan systemd adalah yang membuatnya bertahan dari keluar, crash, dan reboot. Buat /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

Lalu:

sudo systemctl daemon-reload
sudo systemctl enable --now mybot
sudo systemctl status mybot      # seharusnya menyatakan active (running)
journalctl -u mybot -f           # log langsung

Restart=always adalah baris yang melakukan kerja sebenarnya — crash, dan ia kembali dalam 5 detik. enable berarti ia menyala setelah reboot. Itulah seluruh perbedaan antara "saya menjalankan bot sekali" dan "bot saya menyala".

4. Mengapa tanpa domain atau port terbuka

Bot memakai long polling — ia menjangkau ke Telegram untuk pembaruan, jadi tidak ada yang perlu menjangkau masuk. Tanpa URL publik, tanpa aturan firewall masuk, tanpa IP khusus. Inilah persis mengapa VPS NAT (IP bersama, SSH di sebuah port) adalah rumah yang baik dan murah untuk bot. Webhook ada untuk volume sangat tinggi, tapi Anda hampir pasti tidak membutuhkannya untuk mulai.

Peringatan jujur

Itu saja. Kunci mesinnya dulu dengan daftar periksa keamanan, masukkan layanannya, dan bot Anda tetap online entah Anda online atau tidak. Pada VPS dibayar-kripto Anda bisa membuatnya berjalan semenit setelah Anda memutuskan.

Pertanyaan umum

VPS apa yang saya butuhkan untuk bot Telegram?

Yang terkecil. Bot Telegram kebanyakan menganggur, menunggu pembaruan, jadi 1 GB RAM dan 2 inti sudah cukup untuk kebanyakan bot — bahkan yang cukup sibuk. Anda hanya butuh lebih jika bot melakukan kerja berat sendiri (pemrosesan gambar, model lokal, basis data besar).

Bagaimana saya menjaga bot Telegram berjalan setelah saya menutup SSH?

Jalankan sebagai layanan systemd. Berbeda dengan meluncurkannya di terminal Anda, systemd menjaganya hidup setelah Anda keluar, restart jika crash, dan memulainya lagi setelah reboot. Itulah perbedaan antara mainan dan sesuatu yang tetap menyala.

Mengapa bot saya berhenti saat saya terputus?

Karena Anda memulainya di sesi SSH Anda, jadi ia mati saat sesi itu berakhir. Bungkus dalam layanan systemd (atau tmux untuk uji cepat) dan ia berjalan independen dari login Anda.

Apakah saya butuh domain atau webhook untuk bot Telegram?

Tidak. Long polling (getUpdates) tidak butuh URL publik, tidak butuh domain, tidak butuh port masuk — bot menjangkau ke Telegram. Itulah mengapa VPS NAT tanpa IP khusus sepenuhnya baik untuk bot. Webhook adalah optimasi opsional untuk volume tinggi.

Apakah aman menaruh token bot saya di VPS?

Ya, jika Anda memperlakukannya seperti kata sandi: simpan di variabel lingkungan atau berkas yang hanya bisa dibaca oleh pengguna bot, jangan pernah commit ke git, dan kunci server dengan kunci SSH. Jika token bocor, cabut di BotFather dan terbitkan yang baru.

← Kembali ke blogLihat paket dan harga →

Komentar

Belum ada komentar. Jadilah yang pertama.

Tinggalkan komentar

Komentar dimoderasi sebelum muncul.