Hosting Bot Discord 24 Jam: Pilihan, Contoh Kode, dan Biaya
Bot Discord buatanmu sudah jalan di laptop, tapi langsung offline begitu laptop ditutup. Di sinilah kamu butuh hosting bot discord: tempat yang menjalankan bot terus-menerus, 24 jam sehari, tanpa bergantung pada komputermu.
Bot Discord berbeda dari website. Bot membuka koneksi WebSocket ke gateway Discord dan harus tetap terhubung supaya bisa merespons perintah dan event. Kalau prosesnya mati, bot langsung terlihat offline di server.
Artikel ini membahas pilihan hosting untuk bot, contoh kode minimal untuk discord.js dan discord.py, cara menyimpan token dengan aman, dan dua cara menjalankannya: sebagai container atau di VPS.
Baca juga: Hosting Python dan Node.js Hosting Murah Indonesia
Kenapa Bot Discord Butuh Hosting 24 Jam?#
Ada tiga alasan utama:
- Koneksi gateway harus tetap hidup. Bot menerima pesan dan event lewat koneksi yang terus terbuka. Tanpa proses yang berjalan, tidak ada yang mendengarkan.
- Perintah slash butuh respons cepat. Discord memberi waktu singkat bagi bot untuk merespons interaksi. Bot yang sedang "tidur" tidak bisa menjawab tepat waktu.
- Tugas terjadwal. Pengingat, notifikasi, atau leveling membutuhkan proses yang selalu aktif.
Karena itu, hosting yang cocok adalah yang bisa menjalankan proses jangka panjang dan otomatis restart kalau crash. Shared hosting PHP biasa tidak memenuhi syarat ini.
Pilihan Hosting Bot Discord#
| Opsi | Kelebihan | Batasan |
|---|---|---|
| Laptop atau PC sendiri | Gratis | Bot mati saat komputer mati atau internet putus |
| Tier gratis platform cloud | Tanpa biaya | Sering ada batas jam, aplikasi ditidurkan saat sepi, atau butuh kartu kredit |
| Oracle Cloud Always Free, Google Cloud free tier | VM gratis dengan batasan | Pendaftaran butuh kartu kredit, kapasitas terbatas, setup manual |
| Container hosting (PaaS) | Deploy dari Git, restart otomatis, log mudah dilihat | Bot perlu health endpoint HTTP kecil |
| VPS | Kontrol penuh, bisa banyak bot sekaligus | Kamu urus server sendiri |
Opsi gratis bagus untuk belajar. Untuk bot yang dipakai komunitas aktif, kamu biasanya ingin sesuatu yang stabil dan tidak ditidurkan.
Contoh Bot Minimal#
discord.js (Node.js)#
npm install discord.js
// index.js
const { Client, GatewayIntentBits } = require("discord.js");
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
],
});
client.once("ready", () => {
console.log(`Login sebagai ${client.user.tag}`);
});
client.on("messageCreate", (msg) => {
if (msg.content === "!ping") msg.reply("pong");
});
client.login(process.env.DISCORD_TOKEN);
discord.py (Python)#
pip install discord.py
# bot.py
import os
import discord
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f"Login sebagai {client.user}")
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content == "!ping":
await message.channel.send("pong")
client.run(os.environ["DISCORD_TOKEN"])
Catatan: intent MessageContent harus diaktifkan juga di Discord Developer Portal, di bagian pengaturan bot.
Simpan Token di Environment Variables#
Token bot sama dengan password. Siapa pun yang memegangnya bisa mengendalikan bot kamu. Aturannya:
- Jangan pernah menulis token langsung di kode.
- Jangan commit file
.envke GitHub. Tambahkan.envke.gitignore. - Simpan token sebagai environment variable
DISCORD_TOKENdi platform hosting. - Kalau token sempat bocor, segera reset di Developer Portal.
Di Helipod, environment variables dan secrets diatur di pengaturan aplikasi. Penjelasan lengkapnya ada di environment variables di Helipod.
Cara 1: Jalankan sebagai Container dengan Health Endpoint#
Platform container seperti Helipod mengharapkan aplikasi mendengarkan sebuah port. Bot Discord tidak membuka port HTTP, jadi tambahkan server kecil yang hanya menjawab "ok".
Untuk discord.js, tambahkan di index.js:
const http = require("http");
const port = process.env.PORT || 8080;
http.createServer((req, res) => {
res.writeHead(200);
res.end("ok");
}).listen(port, "0.0.0.0");
Untuk discord.py, kamu bisa memakai aiohttp (sudah ikut terpasang bersama discord.py) di event loop yang sama:
from aiohttp import web
async def start_health():
app = web.Application()
app.router.add_get("/", lambda r: web.Response(text="ok"))
runner = web.AppRunner(app)
await runner.setup()
await web.TCPSite(runner, "0.0.0.0", int(os.environ.get("PORT", 8080))).start()
@client.event
async def setup_hook():
await start_health()
Catatan: setup_hook tersedia di discord.Client sejak discord.py 2.0. Taruh fungsi ini sebelum client.run(...).
Lalu deploy:
- Push kode ke GitHub atau GitLab.
- Buat aplikasi baru di Helipod dan hubungkan repository. Helipack mendeteksi Node.js atau Python dan membuat Dockerfile otomatis.
- Tambahkan
DISCORD_TOKENdi environment variables. - Deploy dan cek log real-time sampai muncul "Login sebagai ...".
Biaya: container ditagih harian dari saldo wallet. Contoh 0,25 vCPU, 256 MB RAM, dan 1 GB storage = Rp 775 per hari, sekitar Rp 23.250 per bulan. Bot kecil tidak butuh custom domain, jadi tidak ada biaya domain. Harga bisa berubah, cek halaman harga untuk angka terbaru di /pricing.
Cara 2: Jalankan di VPS dengan pm2 atau systemd#
Kalau kamu punya beberapa bot, atau tidak ingin menambahkan health endpoint, VPS adalah pilihan yang natural. Panduan masuk ke server ada di cara akses VPS Linux.
Bot Node.js dengan pm2:
npm install -g pm2
DISCORD_TOKEN=xxxx pm2 start index.js --name botku
pm2 save
pm2 startup
Bot Python dengan systemd, buat /etc/systemd/system/botku.service:
[Unit]
Description=Bot Discord
After=network-online.target
[Service]
WorkingDirectory=/opt/botku
ExecStart=/opt/botku/venv/bin/python bot.py
EnvironmentFile=/opt/botku/.env
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now botku
journalctl -u botku -f
Biaya: VPS S - EU di Jerman (1 vCPU, 1 GB RAM, 15 GB) Rp 27.900 per bulan, atau sekitar Rp 20.925 per bulan kalau dibayar tahunan. Satu VPS ini cukup untuk beberapa bot kecil sekaligus. Kalau kamu ingin server di Indonesia, VPS S Jakarta mulai Rp 64.900 per bulan. Lihat halaman VPS murah.
FAQ#
Apakah ada hosting bot discord gratis?#
Ada, misalnya Oracle Cloud Always Free atau Google Cloud free tier, tapi biasanya butuh kartu kredit dan setup manual. Beberapa platform juga punya tier gratis yang menidurkan aplikasi saat tidak aktif, yang kurang cocok untuk bot.
Lokasi server berpengaruh untuk bot Discord?#
Sedikit. Bot terhubung ke server Discord, bukan langsung ke pengguna. Server di Jerman atau Singapura umumnya sudah cukup untuk kebanyakan bot.
Berapa RAM yang dibutuhkan bot Discord?#
Bot kecil biasanya cukup dengan 256 MB sampai 512 MB. Bot yang memutar musik atau melayani banyak server butuh lebih. Pantau penggunaan memori lalu sesuaikan.
Kenapa bot terus restart di container?#
Penyebab umum: token belum diisi di environment variables, intent belum diaktifkan di Developer Portal, atau health endpoint tidak mendengarkan di port yang benar. Cek log untuk pesan error-nya.
Bisa menjalankan bot Telegram dengan cara yang sama?#
Bisa. Prinsipnya sama: proses jangka panjang, token di environment variables, dan health endpoint kalau dijalankan sebagai container.
Kesimpulan#
Hosting bot discord yang baik menjaga bot tetap online, restart otomatis saat crash, dan menyimpan token dengan aman. Container dengan health endpoint kecil cocok kalau kamu suka deploy dari Git. VPS cocok kalau kamu menjalankan banyak bot dan ingin kontrol penuh.
Pilih yang pas: lihat harga container Helipod atau VPS murah mulai Rp 27.900.