Discord bot kwenye laptop yako inakufa mara unapofunga mfuniko. Sawa kwa majaribio — isiyofaa kwa bot ambayo seva yako inaitegemea kweli. Ihamishe kwenye VPS nayo inabaki mtandaoni: inabaki kupitia wifi yako kudondoka, haiachi unapolala, na inaunganisha tena na Discord yenyewe.
Hii ndio chose nzima — bot ndogo, huduma inayoiweka hai, na jinsi ya kulipa bila kutoa ID.
Kwa nini VPS, si laptop yako
Discord bot inahitaji muunganisho thabiti, wa kila wakati kwa gateway ya Discord. Laptop hulala, huwaka upya kwa updates, na hubadilisha networks — kila mara, bot inadondoka nje ya mtandao na wanachama hugundua. VPS hushikilia muunganisho mmoja thabiti mchana kutwa. Ndiyo sababu yote watu huhamisha bots kutoka mashine binafsi.
Saizi gani — na unalipaje
Discord bot ni nyepesi. Inashikilia websocket na kuitikia matukio, hivyo sanduku kwa kiasi kikubwa husubiri:
- 1 GB RAM, cores 1–2 hufunika bots nyingi — hata zenye shughuli kiasi.
- Panda tu kama bot hufanya kazi nzito yenyewe: image generation, modeli ya ndani, audio kwa servers nyingi, hifadhidata kubwa.
Maamuzi mawili ya vitendo:
- NAT inatosha. Bot hufanya inayotoka muunganisho kwa Discord tu, hivyo mpango wa NAT wenye port-forwarded SSH unafanya kazi — hakuna dedicated IP, hakuna ports zinazoingia zilizo wazi. Ongeza IP ya umma tu kama unaendesha pia web dashboard au unapokea webhooks.
- No-KYC, imelipwa kwa crypto. Jisajili kwa barua pepe na ulipe kwa USDC au USDT kwenye Base au Ethereum — hakuna kadi, hakuna nyaraka. Kadi inafanya kazi pia, lakini on-ramp ina kiwango cha chini cha ~$27, hivyo kuongeza salio dogo mara moja ni laini zaidi kwa mpango nafuu.
Ni CPU-pekee na inaendesha kutoka datacenter moja Ujerumani — sawa kabisa kwa bot, inastahili kujua kama unahitaji GPU au eneo mahususi.
Bot ndogo
SSH ndani, sakinisha Python, na ingiza discord.py bot ndogo:
sudo apt update && sudo apt install -y python3-venv
mkdir ~/bot && cd ~/bot
python3 -m venv venv && source venv/bin/activate
pip install -U discord.py
# bot.py
import os, discord
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f"online as {client.user}")
@client.event
async def on_message(m):
if m.author == client.user:
return
if m.content == "!ping":
await m.channel.send("pong")
client.run(os.environ["DISCORD_TOKEN"])
Pata token kutoka Discord Developer Portal (application yako → Bot → Reset Token), na uwashe Message Content intent hapo kama bot yako inasoma messages.
Iweke hai na systemd
Kuendesha python bot.py katika kikao chako cha SSH maana yake bot inakufa unapodisconnect. Huduma ya systemd huirekebisha — inarestart kwenye crashes na inabaki kupitia reboots:
# /etc/systemd/system/discordbot.service
[Unit]
Description=Discord bot
After=network-online.target
[Service]
User=botuser
WorkingDirectory=/home/botuser/bot
Environment=DISCORD_TOKEN=your-token-here
ExecStart=/home/botuser/bot/venv/bin/python bot.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now discordbot
sudo journalctl -u discordbot -f # angalia logs
Hiyo ndiyo tofauti kati ya "script ninayoendesha" na "bot inayojiendesha yenyewe."
Tahadhari za uaminifu
- Linda token. Iweke katika faili ya huduma (root-pekee) au env var, endesha kama non-root
botuser, kamwe usiicommit. Ikivuja, iweke upya katika Developer Portal mara moja. - Voice ni nzito zaidi. Music/voice bot inayotiririsha kwa servers nyingi inahitaji CPU na bandwidth zaidi ya text bot — panda saizi na jaribu kabla ya kupanua.
- Angalia bot inachofanya, si tu inahifadhi. Hosting ni nafuu; kama bot yako inapiga paid APIs katika loop, hapo ndipo gharama inajitokeza.
Ndani ya hilo, Discord bot kwenye seva yake mwenyewe hubaki tu juu — ambalo ndilo lengo zima. Chagua mpango, lipa kwa crypto, na uiweke mtandaoni kwa dakika. Kama unaendesha pia bots nyingine, pattern ileile ya systemd huweka process yoyote hai.
Usanidi tayari: angalia VPS kwa Discord bots — mpango unaopendekezwa na crypto deploy ya dakika moja.
Maoni
Bado hakuna maoni. Kuwa wa kwanza.