Skip to content

rtwone/baileys-base

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚡ Baileys Base

Profesional WhatsApp Bot Starter Kit

License: MIT Node.js JavaScript Baileys

🚀 Mulai Cepat📚 Dokumentasi🎯 Fitur🤝 Kontribusi


🎯 Fitur

Lightweight & Modular — Struktur bersih, mudah diperluas
🔌 Plugin System — Tambah command dan handler kapan saja
🤖 AI Integration — Built-in support untuk Google Gemini
📦 Production Ready — Session management & error handling otomatis
🛠️ Developer Friendly — TypeScript-ready, hot reload support
⚙️ Configurable — Environment-based configuration


📋 Tech Stack

Teknologi Versi Tujuan
Node.js 18+ Runtime
Baileys Latest WhatsApp Web API
JavaScript ES2020+ Language
Google Gemini Optional AI Responses

📂 Struktur Proyek

baileys-base/
├── 📄 index.js              # Entry point aplikasi
├── 📄 config.js             # Konfigurasi global
├── 📄 package.json          # Dependencies
├── 📁 commands/             # 🔌 Command plugins
│   ├── ping.js
│   └── menu.js
├── 📁 chats/                # 💬 Chat handlers & pipeline
│   └── ai.js
├── 📁 lib/                  # 🛠️ Utilities & helpers
│   ├── Collection.js
│   ├── database.js
│   ├── functions.js
│   ├── gemini.js
│   ├── logger.js
│   ├── sendMessage.js
│   └── serialize.js
├── 📁 prompts/              # 📝 AI prompt templates
├── 📁 database/             # 💾 Data storage
├── 📁 events/               # 🎪 Event hooks
├── 📁 handlers/             # 🔄 Handler utilities
└── 📄 .env                  # Environment variables (git ignored)

🔄 Alur Kerja

Pesan Masuk
    ↓
lib/serialize.js (normalize payload)
    ↓
Command dispatcher (cek prefix & command)
    ↓
commands/ atau chats/ (execute handler)
    ↓
lib/sendMessage.js (kirim response)
    ↓
Pesan Keluar

🚀 Quickstart

Prerequisites

  • Node.js 18+ (LTS recommended)
  • Git untuk clone repo
  • Koneksi Internet stabil

Setup (5 menit)

# 1️⃣ Clone repository
git clone https://github.com/rtwone/baileys-base.git
cd baileys-base

# 2️⃣ Install dependencies
npm install

# 3️⃣ Setup environment
cp .env.example .env
# Edit .env sesuai kebutuhan (lihat section berikutnya)

# 4️⃣ Jalankan
npm run dev

Jalankan Aplikasi

Development Mode (dengan auto-reload):

npm run dev

Production Mode:

npm start

⚙️ Konfigurasi Environment

Buat file .env di root directory:

# AI (optional)
GEMINI_API_KEY=your_api_key_here

⚠️ Important: Jangan commit .env ke git — file ini berisi secrets!


🔌 Membuat Command Baru

Commands disimpan di folder commands/. Buat file baru dengan struktur:

// commands/hello.js
export default {
  name: "hello",
  aliases: ["hi", "hey"],
  category: "fun",
  cooldown: 5,
  description: "Ucapkan hello ke bot",
  
  async execute({ m, sock }) {
    const text = args.join(" ") || "World";
    return m.reply(`Hello ${text}! 👋`);
  }
}

Opsi tersedia:

  • name (required) — Nama command
  • aliases — Alias command lainnya
  • category — Kategori command
  • cooldown — Delay antar eksekusi (dalam detik)
  • description — Deskripsi singkat
  • execute — Fungsi handler

💬 Chat Handlers & AI

Handlers di chats/ dijalankan untuk semua pesan sebelum command dispatcher:

// chats/ai.js
import { askGemini } from "../lib/gemini.js";

export async function chatHandler(m, sock) {
  // Cek apakah ada prefix (jika ada, skip handler ini)
  if (m.text?.startsWith(m.prefix)) return;

  // Respons dengan AI jika diaktifkan
  const response = await askGemini(m.text);
  return m.reply(response);
}

Gunakan m.stop() untuk menghentikan pipeline.


🛠️ Built-in Utilities

lib/sendMessage.js

Wrapper untuk mengirim pesan dengan berbagai tipe:

m.reply(text)          // Reply text
m.send(text)           // Send message
m.react(emoji)         // React dengan emoji
m.edit(newText)        // Edit pesan
m.delete()             // Delete pesan

lib/serialize.js

Normalisasi pesan masuk:

m.text              // Teks pesan
m.sender            // ID pengirim
m.isGroup           // Apakah group chat
m.prefix            // Bot prefix
m.command           // Command yang digunakan
m.args              // Argumen command
m.quoted            // Pesan yang di-reply

lib/functions.js

Helper utilities:

  • formatDate() — Format tanggal
  • formatTime() — Format waktu
  • delay() — Sleep/delay
  • fetch() — HTTP requests
  • randomChoice() — Pilih random dari array

lib/database.js

Penyimpanan data sederhana (file-based):

db.set(key, value)
db.get(key)
db.delete(key)
db.all()

🤖 Integrasi AI (Google Gemini)

Setup

  1. Dapatkan API key dari Google AI Studio

  2. Masukkan ke .env:

    GEMINI_API_KEY=your_api_key_here
  3. Gunakan di handler:

import { askGemini } from "./lib/gemini.js";

const response = await askGemini("Your question here");
m.reply(response);

📊 Logging & Debugging

Logger tersedia di lib/logger.js:

import logger from "./lib/logger.js";

logger.info("Bot started");
logger.warn("Low storage");
logger.error("Connection failed");
logger.debug("Payload:", payload);

Tips debugging:

  • Jalankan dengan NODE_ENV=development untuk verbose logging
  • Cek QR code di terminal saat pertama kali koneksi
  • Monitor session file di folder ./auth

🌐 Deployment

Menggunakan PM2 (Recommended)

# Install PM2 globally
npm install -g pm2

# Start aplikasi
pm2 start index.js --name "baileys-bot"

# Setup auto-restart
pm2 startup
pm2 save

# Monitor
pm2 monit

Docker

FROM node:18-alpine

WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production

COPY . .
CMD ["npm", "start"]

Best Practices

✅ Simpan session di lokasi persistent
✅ Backup auth folder secara berkala
✅ Monitor resource usage
✅ Setup proper error handling & logging
✅ Gunakan environment variables untuk secrets


🔒 Keamanan & Disclaimer

⚠️ Important:

  • Proyek ini tidak berafiliasi dengan WhatsApp/Meta
  • Penggunaan bot harus sesuai dengan WhatsApp Terms of Service
  • Jangan gunakan untuk spam atau aktivitas ilegal
  • Tanggung jawab penggunaan ada di tangan Anda
  • Selalu backup session file Anda

🤝 Kontribusi

Kami menerima kontribusi! Berikut cara berkontribusi:

  1. Fork repository ini
  2. Buat branch fitur: git checkout -b feat/amazing-feature
  3. Commit perubahan: git commit -m 'Add amazing feature'
  4. Push ke branch: git push origin feat/amazing-feature
  5. Buka Pull Request dengan deskripsi detail

Guidelines

  • Follow code style yang ada
  • Tambahkan comments untuk kode kompleks
  • Test di development sebelum push
  • Update dokumentasi jika diperlukan

📖 Dokumentasi Lengkap

Topik Link
Command API commands/
Chat Handlers chats/
Utilities lib/

📝 Lisensi

MIT License © 2026 rtwone

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...

Lihat file LICENSE untuk detail lengkap.


💬 Hubungi Kami

Platform Link
GitHub @rtwone
Issues Buka Issue
Discussions Mulai Diskusi
Instagram @irfvnny

Made with ❤️ by rtwone

Jika proyek ini membantu Anda, jangan lupa ⭐ star repository ini!

About

🤖 Professional WhatsApp Bot Starter Kit with Baileys. Modular, production-ready, and easy to extend with commands and AI integration.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors