Go to file
joseph 8997c55123 Update README.md 2025-07-17 14:40:31 +10:00
public first commit 2025-07-17 11:37:15 +07:00
.gitignore first commit 2025-07-17 11:37:15 +07:00
README.md Update README.md 2025-07-17 14:40:31 +10:00
listApp.txt first commit 2025-07-17 11:37:15 +07:00
package-lock.json first commit 2025-07-17 11:37:15 +07:00
package.json first commit 2025-07-17 11:37:15 +07:00
server.js first commit 2025-07-17 11:37:15 +07:00

README.md

🧠 System Overview

Frontend (HTML/JS/CSS)

  └── `/api/getListApp`  reads `listApp.txt` and fetches init data from OPNsense  
  └── `/update`  applies `app_controls` to Zenarmor via `fetch`

Backend (Node.js + Express)

  └── Uses Puppeteer for headless login  
  └── Session auto-refresh every 5 minutes  
  └── API forwarding with CSRF token + cookie

📁 Project Structure

├── public/
│   └── index.html           ← Frontend UI
├── listApp.txt              ← Line-separated JSON data of apps
├── server.js                ← Express backend + OPNsense bridge
└── README.md                ← This file

🛠️ Setup & Run

1. Install dependencies

npm install

⚠️ If using node-fetch@3+, it requires ESM. This script handles it via dynamic import.


2. Start the server

node server.js
  • Login will be performed immediately.
  • Session will auto-refresh every 5 minutes.

🔐 Config

  • Change SERVER_DOMAIN in public/index.html
  • Change OPENSENSE_DOMAIN in server.js