feat(isolir): generator script cloud sederhana
All checks were successful
CI / test (push) Successful in 1m38s

- tab Cloud di modal Script Isolir
- resolve semua A record, warn Cloudflare/CDN
- hook PPPoE, DNS redirect, NAT HTTP, filter allow/reject/drop
- API /admin/api/isolir-cloud-script
- versi 0.6.7
This commit is contained in:
oxpoe
2026-11-06 05:49:15 +07:00
parent 0f7affc498
commit 094c47c15d
7 changed files with 207 additions and 21 deletions

View File

@@ -7673,9 +7673,12 @@ router.post('/whatsapp/repair-keys', requireAdminSession, async (req, res) => {
// ─── ROUTERS (MULTI-ROUTER) ──────────────────────────────────────────────────
router.get('/routers', requireAdminSession, requireSidebarMenuAccess('mikrotik'), (req, res) => {
const _settings = getSettings();
const defaultPublicBase = String(_settings.public_base_url || _settings.app_url || ((req.headers['x-forwarded-proto'] || req.protocol) + '://' + req.get('host'))).replace(/\/+$/, '');
res.render('admin/routers', {
title: 'Manajemen Router', company: company(), activePage: 'mikrotik',
routers: mikrotikService.getAllRouters(), msg: flashMsg(req)
routers: mikrotikService.getAllRouters(), msg: flashMsg(req),
defaultPublicBase
});
});
@@ -7987,6 +7990,19 @@ router.post('/api/routers/:id/setup-firewall', requireAdmin, async (req, res) =>
}
});
router.get('/api/isolir-cloud-script', requireAdmin, async (req, res) => {
try {
const data = await mikrotikService.generateIsolirCloudScript({
host: req.query.host,
port: req.query.port,
profile: req.query.profile
});
res.json({ success: true, ...data });
} catch (e) {
res.json({ success: false, error: e.message });
}
});
router.get('/api/isolir-portal-script', requireAdmin, async (req, res) => {
try {
const data = await mikrotikService.generateIsolirPortalScript();