Bab 2 • Arsitektur Teknis • 5 mins baca

Hosting Bot Discord & Arsitektur Runtime

Detail arsitektur runtime Node.js dan Python dalam container sandbox terisolasi dengan auto-restart watchdog.

2.1 Model Eksekusi Container Sandbox & Keamanan Runtime

Setiap proses bot dieksekusi di dalam container sandbox terpisah menggunakan layer runtime Node.js (v18, v20, v22) atau Python (3.10, 3.11, 3.12). Sandbox runner menjalankan proses dengan UID non-root terisolasi, membatasi direktori kerja strictly pada root workspace yang divalidasi, serta menerapkan kebijakan fail-closed jika engine container tidak terverifikasi. Selain itu, seluruh koneksi keluar (egress) diarahkan melalui proxy internal terisolasi dengan verifikasi lookup DNS untuk mencegah akses ke IP privat internal, SSRF, dan serangan DNS rebinding.

Isolasi Egress & Proteksi Jaringan
Jaringan container menggunakan mode isolasi internal (lunex-egress-isolated) dengan filter proxy egress ketat yang memvalidasi target IP dan domain sebelum koneksi diizinkan.
bot.js
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });

client.once('ready', () => {
  console.log(`Bot aktif 24/7 sebagai ${client.user.tag} di Lunex Sandbox!`);
});

client.login(process.env.DISCORD_TOKEN);

2.2 Siklus Hidup & Pengawas Otomatis (Auto-Restart Watchdog)

Manajer proses Lunex memantau status heartbeat setiap instance secara terus menerus. Ketika terjadi crash atau uncaught exception pada kode bot, sistem watchdog otomatis memicu siklus restart untuk memulihkan bot kembali online tanpa memerlukan intervensi manual dari pemilik bot.

Pemantauan Heartbeat Real-Time
Status proses, log stdout/stderr, dan metrik penggunaan CPU/RAM dapat dipantau langsung melalui Web Console di dashboard.

2.3 Alur Deployment ZIP & Programmatic REST API v1

Pengembang dapat mengunggah source code langsung melalui file ZIP pada Web IDE atau menggunakan endpoint REST API v1 (POST /api/v1/bots/:id/upload). Validasi keamanan Zip-Slip dilakukan sebelum ekstraksi berkas ke workspace, dan sistem secara otomatis menginstal dependensi (npm install atau pip install -r requirements.txt) di lingkungan terisolasi.

Otomasi Tanpa Headless Browser
API v1 menyediakan kontrol penuh mulai dari pembuatan bot, upload berkas, manajemen env vars, hingga start/stop/restart untuk integrasi CI/CD atau AI Agent.