Botunuzu hosting paneline yüklemek iki dakikalık bir iş olmalı. Çoğu "yüklendi ama çalışmıyor" sorunu da birkaç basit hatadan kaynaklanır. İşte doğru klasör yapısı ve kontrol listesi.
Önerilen klasör yapısı
Node.js (discord.js):
botum/
├─ index.js
├─ package.json
├─ package-lock.json
├─ .env
├─ commands/
└─ events/
Python (discord.py):
botum/
├─ main.py
├─ requirements.txt
├─ .env
└─ cogs/
1. package.json ve start betiği
{
"name": "botum",
"version": "1.0.0",
"main": "index.js",
"scripts": { "start": "node index.js" },
"dependencies": {
"discord.js": "^14.16.0",
"dotenv": "^16.4.0"
}
}
Panel, package.json içindeki start betiğini (ya da main alanını) giriş noktası olarak kullanır. Bağımlılıklar dependencies içinde olmalı; devDependencies'e koyduğunuz paketler gerekliyse üretimde kurulmayabilir.
2. Gizli değerler: .env
TOKEN=bot_tokeniniz
CLIENT_ID=123456789012345678
- Token'ı kodun içine yazmayın.
- ZIP'i başkalarıyla paylaşacaksanız
.env'i içine koymayın; değerleri panelin dosya editöründen girin. - Node.js'te
require('dotenv').config()(ESM'deimport 'dotenv/config') satırını giriş dosyanızın başına ekleyin.
3. Python botları
requirements.txt içinde sürümleri belirtin:
discord.py==2.4.0
python-dotenv==1.0.1
Giriş dosyası olarak main.py, bot.py ya da app.py kullanın. discord.py'de mesaj içeriği için intents.message_content = True unutulmamalı.
4. TypeScript botları
TypeScript için iki yol vardır:
- Derlenmiş çıktıyı yükleyin:
npm run buildsonrasıdist/klasörünü vepackage.json'ı ZIP'leyin;startbetiğinode dist/index.jsolsun. - Doğrudan çalıştırın:
tsxile derlemeden çalıştırılabilir;startbetiğitsx src/index.tsolabilir vetsxbağımlılıkta bulunmalıdır.
Revolvant, TypeScript botlarını derlemeden tsx ile de çalıştırabilir.
5. ZIP'i hazırlama
node_modulesklasörünü eklemeyin. Panel bağımlılıkları kendisi kurar; başka bir işletim sisteminde derlenmiş modüller zaten uyumsuz olur..git,venv/.venvve__pycache__klasörlerini dışarıda bırakın.- ZIP içinde dosyalar köke ya da tek bir üst klasörün içine konsun.
- Boyutu küçük tutun; büyük veri dosyalarını ayrıca yönetin.
6. Panele yükleme (Revolvant)
- Giriş yapın ve Yeni düğmesine tıklayın.
- ZIP'i sürükleyin; bot adını girin.
- Panel giriş dosyasını bulur, bağımlılıkları kurar ve ilerlemeyi canlı gösterir.
- Başlat'a basın; Loglar sekmesinde bağlantı mesajını doğrulayın.
- Otomatik yeniden başlatma, bildirim ve yedek ayarlarını gözden geçirin.
Henüz hesabınız yoksa kayıt olun.
Sık hatalar ve çözümleri
| Hata | Çözüm |
|---|---|
Cannot find module 'discord.js' | package.json bağımlılıklarını kontrol edin; panelde bağımlılık kurulum loguna bakın |
TokenInvalid | .env içindeki TOKEN değerini ve dosya adını kontrol edin |
| Bot çevrimiçi ama komutlara cevap vermiyor | Intent'ler (Message Content), komut kaydı ve izinler |
| Giriş dosyası bulunamadı | Kökte index.js/main.py ya da start betiği olsun; ZIP'te fazladan iç içe klasör olmasın |
ESM hatası (require is not defined) | package.json'da "type": "module" varsa import kullanın |
ModuleNotFoundError (Python) | requirements.txt eksik; paketi ekleyin |
Yüklemeden önce son kontrol
- ☐
startbetiği ya da giriş dosyası var - ☐ Bağımlılıklar listede
- ☐
.envdeğerleri tamam (token, kimlikler) - ☐
node_modulesZIP'te yok - ☐ Yerelde
npm start/python main.pyile çalıştığını doğruladım
Sık sorulan sorular
Hangi dosya giriş dosyası sayılır?
Önce package.json içindeki start betiği ve main alanı, ardından index.js, main.js, bot.js; Python için main.py, bot.py, app.py gibi yaygın adlar aranır.
ZIP'e `node_modules` koymalı mıyım?
Hayır. Panel npm install ile bağımlılıkları kendisi kurar. ZIP'e koymak boyutu şişirir ve platforma özel modüllerle uyumsuzluk yaratabilir.
Yüklediğim botu sonradan nasıl güncellerim?
Panelin dosya yöneticisinden dosyaları düzenleyebilir ya da yeni bir ZIP yükleyebilirsiniz. Güncellemeden önce tek tıkla yedek almanız önerilir.
Botum çok büyük bir ZIP. Yüklenir mi?
Büyük dosyalar parçalı (kaldığı yerden devam eden) yükleme ile gönderilir. Yine de gereksiz dosyaları ZIP'e koymamak yüklemeyi hızlandırır.
Botunuzu 7/24 çalıştırın
ZIP’i yükleyin, panel kursun, çalıştırsın ve izlesin.