🧠 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 1. Install dependencies npm install ⚠️ If using node-fetch@3+, it requires ESM. The script handles this via dynamic import. 2. 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