Replit'te geliştirmek keyifli, ama botunuz sürekli uyuyor ya da kaynak sınırlarına takılıyorsa taşımak mantıklı olabilir. Bu rehber, Node.js (discord.js) ve Python (discord.py) botları için yaklaşık 10 dakikalık bir taşıma sürecini anlatır.
Başlamadan önce kontrol listesi
- Botunuzun token'ı ve diğer gizli değerleriniz elinizde mi? (Replit'te Secrets bölümünde.)
- Bot Replit Database (
@replit/database,from replit import db) kullanıyor mu? Kullanıyorsa aşağıdaki 3. adıma bakın. - Botunuzun bir giriş dosyası var mı? (
index.js,main.py,bot.pygibi ya dapackage.jsoniçindestartbetiği.)
1. Projeyi ZIP olarak indirin
Replit'te dosya ağacındaki menüden projeyi ZIP olarak indirin ("Download as zip"). node_modules klasörü çok büyükse silebilirsiniz; Revolvant bağımlılıkları kendisi kurar.
Secrets ZIP'e dahil edilmez. Token ve diğer gizli değerleri ayrıca not etmeniz gerekir. Token'ı sohbet, ekran görüntüsü ya da herkese açık bir yere yapıştırmayın.
2. Gizli değerleri .env dosyasına taşıyın
Replit'te process.env.TOKEN ile okuduğunuz değerler Revolvant'ta bir .env dosyasından okunur. Proje klasörünüze şu içerikle bir .env oluşturun:
TOKEN=bot_tokeniniz_buraya
CLIENT_ID=123456789012345678
Node.js için kodunuzun başında require('dotenv').config() (ya da Node 20.6+ ile node --env-file=.env) olması gerekir; Python için python-dotenv kullanabilirsiniz. dotenv paketini package.json bağımlılıklarına ekleyin.
Revolvant'ta .env dosyasını sonradan panelin dosya editöründen de düzenleyebilirsiniz; bu yüzden ZIP'e gizli bilgi koymadan yükleyip değerleri panelde girmek daha güvenlidir.
3. Replit Database kullanıyorsanız
@replit/database ya da replit.db, yalnızca Replit ortamında çalışır; Replit dışında bağlanamaz. Yerine şunlardan birini kullanın:
- SQLite (
better-sqlite3,sqlite3; Python'dasqlite3yerleşiktir): dosya projenizin klasöründe kalır. - JSON dosyası: küçük ve basit veriler için.
- MySQL/PostgreSQL: çok kullanıcılı ya da büyük veri için.
Mevcut verilerinizi Replit'te bir betikle dışa aktarıp (JSON) yeni depoya aktarın.
4. Keep-alive sunucusunu kaldırın (isteğe bağlı)
Replit'te botu uyanık tutmak için eklediğiniz express/flask sunucusu Revolvant'ta gerekli değildir. Silmek zorunda değilsiniz, ama gereksiz bir port açmanın anlamı yok.
5. ZIP'i Revolvant'a yükleyin
- Revolvant'a giriş yapın ya da kayıt olun.
- Panelde Yeni düğmesine basın ve ZIP'inizi sürükleyin.
- Panel giriş dosyasını otomatik bulur;
package.jsonvarsa bağımlılıklarınpmile,requirements.txtvarsapipile kurar. Kurulum ilerlemesini canlı izlersiniz. - Botu Başlat deyin ve Loglar sekmesinden bağlantıyı doğrulayın.
Ayrıntılı kurallar (hangi dosya giriş sayılır, TypeScript ve Python desteği): Discord botu ZIP ile nasıl yüklenir?
6. Replit tarafındaki kopyayı durdurun
Aynı token ile iki yerde bot çalışırsa her olay iki kez işlenir: komutlara çift cevap, tekrarlanan mesajlar gibi. Yeni ortamda her şeyin çalıştığını gördükten sonra Replit'teki projeyi durdurun (ve varsa Deployment'ı kapatın).
7. Taşıma sonrası test listesi
- ☐ Bot çevrimiçi görünüyor.
- ☐ Slash komutlar yanıt veriyor (gerekirse komutları yeniden kaydedin).
- ☐ Veritabanı okuma/yazma çalışıyor.
- ☐ Çökme durumunda otomatik yeniden başlıyor (Loglar ve çökme geçmişinden izleyin).
- ☐ Bildirimler (Discord/Telegram/Slack webhook) ayarlı.
Taşımanın kazandırdıkları
- Uyku/ping derdi biter; bot sürekli çalışır.
- Çökme geçmişi, canlı log ve tek tık yedekleme panelde hazırdır.
- Aynı panelden birden fazla botu yönetebilirsiniz.
Hazırsanız hemen başlayın.
Sık sorulan sorular
Replit'te yazdığım bot Revolvant'ta aynen çalışır mı?
Standart discord.js ve discord.py botları, Replit'e özgü API'ler (Replit Database gibi) kullanmadıkça değişiklik gerektirmeden çalışır. Secrets'ı .env'e taşımanız ve Node/Python sürümü uyumluluğunu kontrol etmeniz yeterlidir.
Replit Database'deki verilerimi nasıl aktarırım?
Replit'te bir betikle tüm anahtar-değerleri JSON dosyasına yazın, sonra bunu SQLite, JSON ya da bir SQL veritabanına aktarın. Veri şemanıza göre küçük bir dönüştürme betiği yazmak gerekebilir.
Taşırken botun token'ını değiştirmem gerekir mi?
Zorunlu değil. Ancak token'ınızı Replit'te herkese açık bir projede ya da ZIP içinde paylaştıysanız, güvenlik için Developer Portal'dan sıfırlayıp yeni token'ı yalnızca .env içinde kullanın.
TypeScript ya da ESM botlar da taşınabilir mi?
Evet. JavaScript (CommonJS/ESM), TypeScript ve Python botları desteklenir.
Replit botunuzu izleyin
Adresinizi 5 dakikada bir kontrol edelim; kesintide haber verelim.