Pendahuluan

Rocky Linux 10 merupakan sistem operasi server berbasis RHEL yang stabil dan cocok untuk menjalankan berbagai jenis bot, seperti bot Telegram, bot WhatsApp, maupun bot otomatisasi berbasis Python atau Node.js. Tulisan ini membahas cara menjalankan bot di Rocky Linux 10 dengan benar, aman, dan siap digunakan di lingkungan produksi.

Persiapan

  • Server sudah terinstal Rocky Linux 10
  • Akses SSH tersedia
  • User non-root direkomendasikan untuk menjalankan bot
  • Metode bot adalah polling

Langkah-langkah instalasi

1. Periksa dan pasang pembaruan sistem Rocky Linux 10:

sudo dnf update -y

2. Lakukan reboot:

sudo reboot

3. Instal curl:

sudo dnf install curl -y

4. Download nodejs:

curl -fsSL https://rpm.nodesource.com/setup_22.x | sudo bash -

5. Instal nodejs:

sudo dnf install nodejs -y

6. Perbarui npm:

sudo npm install -g npm@latest

7. Instal pm2:

sudo npm install -g pm2

8. Instal pip:

sudo dnf install python3-pip -y

9. Buat folder baru, misalnya bot:

mkdir -p ~/bot

10. Buka folder bot:

cd ~/bot

11. Buat virtual environment (venv) agar dependensi terisolasi:

python3 -m venv venv

12. Aktifkan venv:

source venv/bin/activate

13. Perbarui pip:

pip install --upgrade pip

14. Instal semua library yang dibutuhkan oleh bot Anda:

pip install pyTelegramBotAPI flask gunicorn cryptography openpyxl pandas speedtest-cli

15. Nonaktifkan venv:

deactivate

16. Tambahkan folder baru untuk menempatkan file bot Anda. Jika bot Anda lebih dari satu, pisahkan dengan folder-folder agar mudah dikelola:

mkdir quran hadis

17. Contoh gambaran struktur yang rapi dan mudah dikelola:

bot
├── venv
├── quran
│   ├── quran.py
│   └── quran.db
└── hadis
    ├── hadis.py
    └── hadis.db

18. Buat file baru dengan nama quran.py, lalu tuliskan kode berikut:

from telebot import TeleBot, types

# Ganti dengan token bot Anda
TOKEN = "ISI_TOKEN_BOT_ANDA"
bot = TeleBot(TOKEN)

# Handler untuk /start
@bot.message_handler(commands=['start'])
def send_welcome(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=False)
    markup.add('Daftar Surah', 'Jadwal Salat')
    markup.add('Bantuan Kami', 'Hubungi Kami')
    markup.add('Donasi', 'Hadis')
    bot.send_message(message.chat.id, f'Assalamu Alaikum, {message.from_user.first_name}')
    bot.send_message(message.chat.id, f"Selamat datang di bot Al-Qur'an Indonesia", reply_markup=markup)

# Webhook
app = Flask(__name__)

@app.route('/quran', methods=['POST'])
def webhook():
    json_str = request.get_data().decode('UTF-8')
    update = telebot.types.Update.de_json(json_str)
    bot.process_new_updates([update])
    return 'OK', 200

@app.route('/quran', methods=['GET'])
def index():
    return 'Bot Masyarakat sudah aktif', 200

if __name__ == '__main__':
    bot.remove_webhook()
    bot.set_webhook(url='https://bot.masyarakat.id/quran')

19. Kembali ke folder utama:

cd

20. Buat file baru dengan nama ecosystem.config.js. Nama harus sama persis agar pm2 mengenali file ini:

sudo nano ecosystem.config.cjs

21. Sesuaikan kode dibawah ini, sesuaikan dengan nama bot Anda dan juga lokasinya:

const ROOT_PATH = "/home/namauser/bot"; 

module.exports = {
  apps: [
    {
      name: "quran",
      script: `${ROOT_PATH}/venv/bin/python3`,
      args: "-m gunicorn -w 2 -b 127.0.0.1:8000 quran:app",
      cwd: `${ROOT_PATH}/quran`,
      exec_mode: "fork",
      autorestart: true,
      env: {
        PYTHONPATH: `${ROOT_PATH}/quran`
      }
    },
    {
      name: "hadis",
      script: `${ROOT_PATH}/venv/bin/python3`,
      args: "-m gunicorn -w 2 -b 127.0.0.1:8001 hadis:app",
      cwd: `${ROOT_PATH}/hadis`,
      exec_mode: "fork",
      autorestart: true,
      env: {
        PYTHONPATH: `${ROOT_PATH}/hadis`
      }
    }
  ]
}

22. Simpan file ecosystem.config.cjs:

ctrl + o
enter
ctrl + x

23. Jalankan pm2:

pm2 start ecosystem.config.cjs

24. Simpan konfigurasi pm2 agar bot akan aktif kembali setelah server reboot atau restart:

pm2 save

25. Salin dan tempelkan lagi ke terminal teks yang ditampilkan lalu enter, seperti ini contoh teksnya:

sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u namauser --hp /home/namauser

27. Siapkan TOKEN Bot Telegram

28. Buka browser, lakukan deletewebhook terlebih dahulu dengan mengetik:

https://api.telegram.org/botTOKEN_ANDA/deletewebhook

28. Lakukan setwebhook dengan mengetik:

https://api.telegram.org/botTOKEN_ANDA/setwebhook?url=https://DOMAIN_ANDA.com/quran

29. Buka terminal, lalu reload ecosystem.config.js:

pm2 reload ecosystem.config.cjs

30. Cobalah buka bot Telegram Anda dan mulailah mengetik /start. Lalu, silakan ditunggu, dikarenakan metode webhook untuk pertama kali membutuhkan waktu agak lama.

Kesimpulan

Menjalankan bot di Rocky Linux 10 relatif mudah. Untuk penggunaan produksi, sangat disarankan menggunakan process manager seperti PM2 agar bot tetap stabil, aman, dan berjalan 24/7. Dengan konfigurasi yang tepat, Rocky Linux 10 menjadi platform server yang handal untuk berbagai kebutuhan bot dan otomasi.




Baca Juga




masyarakat

Mari Berbagi

Alamat

Jl. Rompok Raya
Palembang
Indonesia