|
|
||
|---|---|---|
| public | ||
| .gitignore | ||
| README.md | ||
| listApp.txt | ||
| package-lock.json | ||
| package.json | ||
| server.js | ||
README.md
🧠 System Overview Frontend (HTML/JS/CSS) | --> /api/getListApp (reads listApp.txt + fetches init from OPNsense) --> /update (applies app_controls to Zenarmor via fetch)
Backend (Node.js + Express) | --> 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
-
Install dependencies npm install ⚠️ If using node-fetch@3+, it requires ESM. The script handles this via dynamic import.
-
Start the server node server.js Login will be performed immediately, then auto-refresh every 5 minutes.
🔐 Config
- Change "SERVER_DOMAIN" in public/index.html
- Change "OPENSENCE_DOMAIN" in server.js