Billing Mikrotik API
898
Gembok Bill adalah sistem manajemen RTRWNet terintegrasi yang menggabungkan WhatsApp Gateway dengan portal admin web untuk mengelola layanan internet secara komprehensif. Aplikasi ini dirancang khusus untuk ISP (Internet Service Provider) yang membutuhkan solusi all-in-one untuk manajemen pelanggan, billing, monitoring, dan notifikasi.
# Install git jika belum ada
apt install git curl -y
# Clone repository
git clone https://github.com/alijayanet/gembok-bill
cd gembok-bill
# Install semua dependencies
npm install
Edit file settings.json dengan pengaturan yang sesuai:
{
"admins.0": "6281947215703",
"admin_enabled": "true",
"admin_username": "admin",
"admin_password": "admin",
"genieacs_url": "http://192.168.8.89:7557",
"genieacs_username": "admin",
"genieacs_password": "admin",
"mikrotik_host": "192.168.8.1",
"mikrotik_port": "8728",
"mikrotik_user": "admin",
"mikrotik_password": "admin",
"main_interface": "ether1-ISP",
"pppoe_monitor_enable": "true",
"technician_numbers.0": "6283807665111",
"technician_numbers.1": "6282218094111",
"technician_group_id": "[email protected]",
"whatsapp_session_path": "./whatsapp-session",
"whatsapp_keep_alive": "true",
"whatsapp_restart_on_error": "true",
"whatsapp_log_level": "silent",
"pppoe_monitor_interval": "60000",
"rx_power_warning": "-40",
"rx_power_critical": "-45",
"rx_power_notification_enable": "true",
"rx_power_notification_interval": "300000",
"company_header": "š¢ ALIJAYA DIGITAL NETWORK š¢",
"footer_info": "Juragan Pulsa Wifi Hotspot",
"customerPortalOtp": "false",
"otp_length": "4",
"otp_expiry_minutes": "5",
"server_port": "3003",
"server_host": "localhost",
"pppoe_notifications.enabled": "true",
"pppoe_notifications.loginNotifications": "true",
"pppoe_notifications.logoutNotifications": "true",
"pppoe_notifications.includeOfflineList": "true",
"pppoe_notifications.maxOfflineListCount": "20",
"pppoe_notifications.monitorInterval": "60000",
"secret_key": "alijaya-digital-network",
"reconnect_interval": "5000",
"log_level": "info",
"logo_filename": "logo.png",
"payment_gateway": {
"active": "midtrans",
"midtrans": {
"enabled": true,
"production": false,
"merchant_id": "G123456789",
"client_key": "SB-Mid-client-123456789",
"server_key": "SB-Mid-server-123456789"
},
"xendit": {
"enabled": false,
"production": false,
"api_key": "xnd_public_development_123456789",
"callback_token": "xnd_callback_token_123456789"
},
"tripay": {
"enabled": false,
"production": false,
"api_key": "DEV-123456789",
"private_key": "private_key_123456789",
"merchant_code": "T12345"
}
},
"payment_accounts": {
"bank_transfer": {
"bank_name": "Bank BRI",
"account_number": "1234-5678-9012-3456",
"account_name": "ALIJAYA DIGITAL NETWORK"
},
"cash": {
"office_address": "Jl. Contoh No. 123, Kota, Provinsi",
"office_hours": "08:00 - 17:00 WIB"
}
}
}
# Jalankan script untuk setup database billing
node scripts/add-payment-gateway-tables.js
Development Mode:
npm run dev
Production Mode:
npm start
Dengan PM2:
# Install PM2 jika belum ada
npm install -g pm2
# Start aplikasi
pm2 start app.js --name gembok-bill
# Monitor aplikasi
pm2 monit
# View logs
pm2 logs gembok-bill
Docker :
docker run -d -p 3003:3003 --name='GembokBill' --restart unless-stopped gerandonk/gembok-bill:latest
Siapkan 2 nomor WhatsApp:
Scan QR Code yang muncul di terminal untuk login WhatsApp bot
Test dengan perintah: status atau menu
http://ipserver:3003http://ipserver:3003/admin/loginsettings.jsonAplikasi mendukung 3 payment gateway populer di Indonesia:
Setup Payment Gateway:
/admin/billing/payment-settingsmenu - Menampilkan menu bantuanstatus - Cek status perangkatrefresh - Refresh data perangkatgantiwifi [nama] - Ganti nama WiFigantipass [password] - Ganti password WiFiinfo - Informasi layananspeedtest - Test kecepatan internetdevices - Daftar perangkatcekall - Cek semua perangkatcek [nomor] - Cek status ONUcekstatus [nomor] - Cek status pelangganadmincheck [nomor] - Cek perangkat admingantissid [nomor] [ssid] - Ubah SSIDgantipass [nomor] [pass] - Ubah passwordreboot [nomor] - Restart ONUfactory reset [nomor] - Reset factoryrefresh - Refresh data perangkattag [nomor] [tag] - Tambah tag pelangganuntag [nomor] [tag] - Hapus tagtags [nomor] - Lihat tagsaddtag [device_id] [nomor] - Tambah tag perangkataddppoe_tag [pppoe_id] [nomor] - Tambah tag dengan id pppoeadminssid [nomor] [ssid] - Admin ubah SSIDadminrestart [nomor] - Admin restart ONUadminfactory [nomor] - Admin factory resetconfirm admin factory reset [nomor] - Konfirmasi factory resetinterfaces - Daftar interfaceinterface [nama] - Detail interfaceenableif [nama] - Aktifkan interfacedisableif [nama] - Nonaktifkan interfaceipaddress - Alamat IProutes - Tabel routingdhcp - DHCP leasesping [ip] [count] - Test pinglogs [topics] [count] - Log Mikrotikfirewall [chain] - Status firewallusers - Daftar semua userprofiles [type] - Daftar profileidentity [nama] - Info routerclock - Waktu routerresource - Info resourcereboot - Restart routerconfirm restart - Konfirmasi restartvcr [user] [profile] [nomor] - Buat voucherhotspot - User hotspot aktifpppoe - User PPPoE aktifoffline - User PPPoE offlineaddhotspot [user] [pass] [profile] - Tambah useraddpppoe [user] [pass] [profile] [ip] - Tambah PPPoEsetprofile [user] [profile] - Ubah profiledelhotspot [username] - Hapus user hotspotdelpppoe [username] - Hapus user PPPoEaddpppoe_tag [user] [nomor] - Tambah tag PPPoEmember [username] [profile] [nomor] - Tambah memberlist - Daftar semua userremove [username] - Hapus user (generic)addadmin [nomor] - Tambah nomor adminremoveadmin [nomor] - Hapus nomor adminotp [nomor] - Kirim OTPstatus - Status sistemlogs - Log aplikasirestart - Restart aplikasidebug resource - Debug resourcecheckgroup - Cek status groupsetadmin [nomor] - Set nomor adminsettechnician [nomor] - Set nomor teknisisetheader [teks] - Set header pesansetfooter [teks] - Set footer pesansetgenieacs [url] [user] [pass] - Set GenieACSsetmikrotik [host] [port] [user] [pass] - Set Mikrotikadmin - Menu adminhelp - Bantuan perintahya/iya/yes - Konfirmasi yatidak/no/batal - Konfirmasi tidakaddwan [interface] - Tambah WANinfo wifi - Info WiFi pelangganinfo - Info layanangantiwifi [ssid] - Ganti nama WiFigantipass [password] - Ganti password WiFispeedtest - Test kecepatandiagnostic - Diagnostik perangkathistory - Riwayat perangkatmenu - Menu utamafactory reset - Reset factory (pelanggan)confirm factory reset - Konfirmasi factory resetJika ada error seperti:
Error sending message: Error: item-not-found
warn: Skipping invalid WhatsApp number: 6283807665111
Solusi:
Jalankan Script Perbaikan Otomatis:
node scripts/fix-technician-config.js
Cek Status Group:
checkgroupPerbaiki Manual:
628xxxxxxxxxx[email protected]628xxxxxxxxxx08xxxxxxxxxx+628xxxxxxxxxx[email protected]120363029715729111group-120363029715729111Invalid API Key:
/admin/billing/payment-settingsWebhook Error:
gembok-bill/
āāā app.js # File utama aplikasi
āāā package.json # Dependencies dan scripts
āāā settings.json # Konfigurasi aplikasi
āāā config/ # Modul konfigurasi
ā āāā whatsapp.js # WhatsApp bot handler
ā āāā genieacs.js # GenieACS API
ā āāā mikrotik.js # Mikrotik API
ā āāā billing.js # Billing system
ā āāā paymentGateway.js # Payment gateway manager
ā āāā logger.js # Logging system
ā āāā settingsManager.js # Settings management
āāā routes/ # Express routes
ā āāā adminAuth.js # Admin authentication
ā āāā adminDashboard.js # Dashboard routes
ā āāā adminBilling.js # Billing management
ā āāā adminGenieacs.js # GenieACS management
ā āāā adminMikrotik.js # Mikrotik management
ā āāā adminHotspot.js # Hotspot management
ā āāā adminSetting.js # Settings management
ā āāā customerPortal.js # Customer portal
ā āāā payment.js # Payment gateway routes
ā āāā troubleReport.js # Trouble ticket system
āāā views/ # EJS templates
ā āāā admin/ # Admin views
ā ā āāā billing/ # Billing pages
ā ā āāā ...
ā āāā customer/ # Customer views
ā āāā partials/ # Shared components
āāā public/ # Static files
ā āāā css/
ā āāā js/
ā āāā img/
āāā data/ # Database files
āāā logs/ # Log files
āāā scripts/ # Utility scripts
āāā whatsapp-session/ # WhatsApp session files
Untuk berkontribusi pada proyek ini:
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)Distributed under the ISC License. See LICENSE for more information.
Rekening Donasi Untuk Pembangunan Masjid:
Jangan lupa untuk mengkonfigurasi file settings.json terlebih dahulu sebelum menjalankan aplikasi!
Aplikasi ini dikembangkan untuk keperluan ISP dan membutuhkan konfigurasi yang tepat untuk berfungsi dengan baik. Pastikan semua kredensial API dan pengaturan sudah benar sebelum deployment ke production.
Made with ā¤ļø by Ali Jayaā
Dockerized with ā¤ļø by Gerandonk Modsā
Content type
Image
Digest
sha256:8edd61d77ā¦
Size
90.5 MB
Last updated
6 months ago
docker pull gerandonk/gembok-bill