# 🧠 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 ```bash npm install ``` > ⚠️ If using `node-fetch@3+`, it requires ESM. > ✅ This script handles it via dynamic import. --- ### 2. Start the server ```bash 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`