Mengembangkan bot Telegram di komputer lokal memang mudah, tapi untuk produksi dibutuhkan server yang selalu aktif 24/7. VPS Debian 13 adalah pilihan ideal untuk men-deploy bot Telegram karena murah, stabil, dan mudah dikonfigurasi. Artikel ini membahas cara deploy bot Telegram di VPS Debian 13 secara lengkap.
Pengertian Deploy Bot Telegram di VPS
Deploy bot Telegram ke VPS adalah memindahkan bot dari komputer lokal ke server virtual (VPS) yang berjalan di data center. VPS selalu menyala, memiliki IP statis, dan tidak memerlukan komputer pribadi untuk berjalan.
Mengapa VPS untuk Bot Telegram?
- Uptime 24/7: Bot tidak pernah mati, bahkan saat komputer offline
- IP Statis: Telegram membutuhkan IP yang konsisten untuk webhook
- Port Terbuka: Mudah membuka port untuk webhook tanpa NAT
- Keamanan: VPS bisa diamankan dengan firewall dan SSH key
- Skalabilitas: VPS bisa ditingkatkan sesuai kebutuhan
- Biaya Rendah: VPS mulai dari Rp 30.000/bulan
Alat yang Dibutuhkan
- Akun VPS Debian 13 (DigitalOcean, Vultr, AWS, dll.)
- Aplikasi Telegram dan BotFather
- SSH client (PuTTY, Terminal, atau Git Bash)
- Akses SSH key ke VPS
Langkah 1: Setup VPS Debian 13
1. Login ke VPS
ssh root@SERVER_IP2. Update Sistem
apt update && apt upgrade -y3. Buat User Non-Root
adduser botuser
usermod -aG sudo botuser4. Setup SSH Key
# Di komputer lokal, copy public key ke VPS
ssh-copy-id botuser@SERVER_IP5. Amankan SSH
nano /etc/ssh/sshd_configPasswordAuthentication no
PermitRootLogin no
Port 2222systemctl restart sshd6. Setup Firewall
apt install ufw -y
ufw allow 2222/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enableLangkah 2: Instal Node.js
# Install NodeSource
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs
# Verifikasi
node -v
npm -vLangkah 3: Clone dan Setup Bot
1. Clone Repository
su - botuser
mkdir ~/bots
cd ~/bots
# Clone dari GitHub atau upload file bot
git clone https://github.com/user/bot-telegram.git
cd bot-telegram2. Install Dependensi
npm install3. Konfigurasi Environment
cp .env.example .env
nano .envBOT_TOKEN=TOKEN_DARI_BOTFATHER
CHAT_ID=123456789
NODE_ENV=production
PORT=3000Langkah 4: Jalankan Bot dengan PM2
1. Install PM2
npm install -g pm22. Jalankan Bot
# Jalankan bot
pm2 start index.js --name "my-bot" --env production
# Buat startup otomatis
pm2 startup
pm2 save
# Cek status
pm2 status my-bot3. Perintah PM2 Dasar
# Restart bot
pm2 restart my-bot
# Lihat log
pm2 logs my-bot
pm2 logs my-bot --lines 100
# Stop bot
pm2 stop my-bot
# Delete bot
pm2 delete my-bot
# Monitor real-time
pm2 monitLangkah 5: Setup Systemd (Alternatif PM2)
Jika lebih suka systemd daripada PM2:
nano /etc/systemd/system/telegram-bot.service[Unit]
Description=Telegram Bot Service
After=network.target
[Service]
Type=simple
User=botuser
WorkingDirectory=/home/botuser/bots/bot-telegram
EnvironmentFile=/home/botuser/bots/bot-telegram/.env
ExecStart=/usr/bin/node index.js
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=telegram-bot
[Install]
WantedBy=multi-user.targetsystemctl daemon-reload
systemctl enable telegram-bot
systemctl start telegram-bot
systemctl status telegram-botLangkah 6: Setup Webhook (Opsional)
Jika bot menggunakan webhook, setup Caddy reverse proxy:
apt install caddy -ynano /etc/caddy/Caddyfilebot.masyarakat.id {
tls [email protected]
reverse_proxy localhost:3000
}systemctl restart caddySetel webhook Telegram:
curl -X POST "https://api.telegram.org/bot<TOKEN>/setWebhook" \
-d "url=https://bot.masyarakat.id/bot"Langkah 7: Backup Otomatis
Buat script backup untuk code bot:
nano /usr/local/bin/backup-bot.sh#!/bin/bash
BACKUP_DIR="/backup/bot"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
cp -r /home/botuser/bots/bot-telegram $BACKUP_DIR/bot-${DATE}
find $BACKUP_DIR -name "bot-*" -mtime +7 -exec rm -rf {} \;
echo "$(date): Backup bot selesai" >> /var/log/bot-backup.logchmod +x /usr/local/bin/backup-bot.sh
crontab -e
# Tambahkan:
0 3 * * * /usr/local/bin/backup-bot.shLangkah 8: Monitoring Bot
1. Cek Status via PM2
pm2 status
pm2 logs my-bot --lines 502. Cek via Systemd
systemctl status telegram-bot
journalctl -u telegram-bot -f3. Monitoring Otomatis
# Script cek sederhana
nano /usr/local/bin/check-bot.sh#!/bin/bash
if ! pgrep -f "index.js" > /dev/null; then
pm2 restart my-bot
echo "$(date): Bot direstart otomatis" >> /var/log/bot-monitor.log
ficrontab -e
# * * * * * /usr/local/bin/check-bot.shTroubleshooting
1. Bot Tidak Mulai
# Cek log
pm2 logs my-bot
# Atau
journalctl -u telegram-bot -e
# Coba jalankan manual
cd ~/bots/bot-telegram && node index.js2. Bot Crash Berulang
# Cek memori
free -h
# Cek disk
df -h
# Restart
pm2 restart my-bot3. Webhook Tidak Bekerja
# Pastikan Caddy jalan
systemctl status caddy
# Cek port
ss -tlnp | grep 443
# Cek webhook
curl https://bot.masyarakat.id/bot4. Bot Lambat
# Cek resource
top
htop
# Batasi resource
pm2 start index.js --name "my-bot" --max-memory-restart 256MKesimpulan
Mendeploy bot Telegram di VPS Debian 13 memberikan stabilitas, keamanan, dan uptime yang lebih baik dibanding menjalankan bot di komputer lokal. Dengan PM2 atau systemd sebagai service manager, bot akan otomatis restart jika crash dan berjalan 24/7.
Kunci utama:
- Selalu gunakan user non-root untuk menjalankan bot
- Gunakan SSH key dan nonaktifkan password authentication
- Deploy dengan PM2 atau systemd untuk auto-restart
- Setup backup otomatis untuk code bot
- Gunakan reverse proxy (Caddy/Nginx) untuk webhook
- Monitor bot secara rutin
- Amankan VPS dengan UFW dan update berkala
Catatan penting: Jangan pernah menjalankan bot sebagai root di VPS. Jika bot diretas, attacker mendapatkan akses root ke server Anda. Selalu buat user khusus dengan permission seminimal mungkin. Jangan menyimpan bot token di repository Git publik — gunakan .env dan file environment yang hanya bisa dibaca oleh user bot.
Ingat: VPS yang menjalankan bot Telegram harus dijaga keamanannya seperti halnya server produksi lainnya. Update sistem rutin, firewall aktif, dan monitoring berkala adalah kewajiban Anda sebagai administrator. Bot yang aman adalah bot yang berjalan di server yang aman.
Dipublikasikan untuk membantu para pengembang bot Telegram dalam mendeploy bot mereka di VPS Debian 13 secara profesional.