How oxpoe/open-isp works
OPEN-ISP is a self-hosted ISP billing and network-management application backed by SQLite. Users enter through role-specific portals; admin, customer, technician and collector workflows reach billing, payments, support and network-management capabilities. Automation and integrations extend these workflows with scheduled billing and isolation, messaging, router/OLT/ACS management, RADIUS and operational monitoring. The README documents capabilities not fully represented in sampled source; arrows for those are limited to documented relationships or source-index references.
Main entry points: database.js SQLite database · billingService.js Billing · adminPortal.js Admin portal · customerPortal.js Customer portal
Components 27
Portals & Access
- Customer app
app-customer.js - Admin portal
routes/adminPortal.js - Customer portal
routes/customerPortal.js - Customer API
routes/customerAPI.js - Technician portal
routes/techPortal.js - Collector portal
routes/collectorPortal.js - ACS portal
routes/acsPortal.js
Customers & Billing
- Customer records
services/customerService.js - Billing
services/billingService.js - Payments
services/paymentService.js - QRIS utilities
utils/qrisUtil.js - Support tickets
services/ticketService.js
Network Operations
- MikroTik management
services/mikrotikService.js - OLT management
services/oltService.js - ACS devices
services/customerDeviceService.js - RADIUS server
services/radiusServerService.js
Messaging & Automation
- WhatsApp gateway
services/whatsappService.js - Notifications
services/waNotifyService.js - Telegram bot
services/telegramBot.js - Scheduled jobs
services/cronService.js
Shared Platform
- SQLite database
config/database.js - Settings manager
config/settingsManager.js - Session limits
services/sessionLimitService.js - Backup & restore
services/backupService.js - System monitoring
services/monitoringService.js
Other components
- ISP staff
- Customers
Connections 39
- ISP staff → Admin portal: uses
README.md - ISP staff → Technician portal: uses
README.md - ISP staff → Collector portal: uses
README.md - Customers → Customer app: uses
README.md - Customer app → Customer portal: serves
app-customer.js - Admin portal → Customer records: uses
routes/adminPortal.js - Admin portal → Billing: uses
routes/adminPortal.js - Admin portal → MikroTik management: uses
routes/adminPortal.js - Admin portal → OLT management: uses
routes/adminPortal.js - Admin portal → Backup & restore: uses
routes/adminPortal.js - Admin portal → System monitoring: uses
routes/adminPortal.js - Customer portal → Billing: uses
routes/customerPortal.js - Customer portal → Payments: uses
routes/customerPortal.js - Customer portal → Support tickets: uses
routes/customerPortal.js - Customer portal → MikroTik management: uses
routes/customerPortal.js - Customer API → Billing: uses
routes/customerAPI.js - Customer API → Payments: uses
routes/customerAPI.js - Technician portal → Customer records: uses
README.md - Collector portal → Billing: uses
README.md - ACS portal → ACS devices: manages
README.md - Payments → SQLite database: reads/writes
services/paymentService.js - Billing → SQLite database: reads/writes
services/billingService.js - Customer records → SQLite database: reads/writes
services/customerService.js - Support tickets → SQLite database: reads/writes
services/ticketService.js - MikroTik management → SQLite database: reads
services/mikrotikService.js - ACS devices → SQLite database: reads/writes
services/customerDeviceService.js - ACS devices → MikroTik management: uses
services/customerDeviceService.js - OLT management → ACS devices: provisions via
services/oltService.js - Customer API → QRIS utilities: uses
routes/customerAPI.js - Payments → SQLite database: records
services/paymentService.js - Billing → Customer records: uses
services/billingService.js - Billing → WhatsApp gateway: notifies via
services/billingService.js - Notifications → WhatsApp gateway: dispatches via
services/waNotifyService.js - Notifications → Telegram bot: notifies via
services/waNotifyService.js - WhatsApp gateway → SQLite database: reads/writes
services/whatsappService.js - Scheduled jobs → Billing: schedules
README.md - Scheduled jobs → MikroTik management: automates
README.md - Settings manager → SQLite database: configures
config/settingsManager.js - Session limits → SQLite database: tracks sessions
services/sessionLimitService.js