Nexora is a security orchestration platform for web application traffic inspection, WAF rule management, IDS/IPS monitoring, compression/deduplication controls, and secure authenticated access.
This repository combines a React frontend, an Express/SQLite backend, and a Go-based security proxy with Suricata integration.
Modern security stacks often require multiple tools and siloed dashboards for firewall rules, IDS/IPS events, traffic monitoring, and policy enforcement. That makes it hard to manage attack surface, block malicious traffic reliably, and maintain a secure operations workflow.
Nexora brings these capabilities together with:
- centralized rule and policy management
- secure access control for administrators and users
- real-time request logging and analytics
- integration with a Go security proxy and Suricata for network-level detection and blocking
Nexora provides:
- User authentication, admin/user roles, and secure session handling
- Admin dashboards for firewall, IDS/IPS, proxy, compression, and deduplication management
- Detailed request logging and traffic analytics
- Integration with a Go security proxy for TLS termination, request filtering, and active blocking
- Support for Suricata alert ingestion and enrichment
- Configurable deployment through environment variables and secure internal service tokens
- Admin-managed firewall and WAF rule controls
- IDS/IPS event monitoring and rule status handling
- Compression and deduplication management for traffic optimization
- Proxy settings and secure request forwarding
- Real-time request log search, export, and analytics
- Signup / login flows with JWT authentication
- Role-based access for admin and standard users
- Admin user management and audit logging
- Protected routes across the React application
- React + Vite frontend served locally on port 3000 in development
- Node.js Express backend on port 3001
- SQLite database for user, audit, and log persistence
- Go security proxy in
security-proxy/for external traffic handling - Suricata integration under
services/suricata/for IDS/IPS event feeds
| Layer | Technology |
|---|---|
| Frontend | React 18, TypeScript, Vite |
| Backend | Node.js, Express, SQLite |
| Proxy | Go |
| Security | Helmet, express-rate-limit, JWT, CORS |
| Monitoring | Request logging, SSE / event streaming |
- Node.js 18+
- npm
- Go 1.20+ (for the security proxy)
- Optional: Suricata for IDS/IPS integration
git clone <repo-url>
cd nexoranpm installCopy the example production environment file and update the values for your deployment:
cp .env.production.example .envImportant settings:
JWT_SECRET— strong secret for signing tokensINTERNAL_API_TOKEN— shared token used between backend and proxySECURITY_PROXY_URL/BACKEND_URL— internal service URLsTLS_CERT/TLS_KEY— paths to proxy TLS certificates
npm run serverThis starts the Express backend on http://localhost:3001.
npm run devThis starts the Vite app on http://localhost:3000 and proxies /api to the backend.
Build and run the proxy from security-proxy/:
cd security-proxy
go run main.goIf you want a production-style build, use:
go build -o nexora-security-proxy ./main.gofrontend/— React application source code and static assetsserver/— Express backend, routes, middleware, SQLite database setupsecurity-proxy/— Go proxy and TLS termination codeservices/— supporting services, Suricata, firewall tooling, performance tools, and auxiliary utilitiesscripts/— repository helper scripts such as admin bootstrap and API toolingdocs/— deployment guides, architecture notes, and project documentation
Live demo: https://nexora-pied-chi.vercel.app/
- Open the app at
http://localhost:3000 - Register or log in
- Use admin dashboards to manage firewall, IDS/IPS, proxy, and traffic policies
- View request logs, analytics, and security events
- Do not expose the Node.js backend directly to the public internet in production.
- Keep
INTERNAL_API_TOKENandJWT_SECRETprivate. - Use proper TLS certificates for the Go security proxy.
- After bootstrap admin creation, disable or remove the bootstrap password variables.
This project is released under the MIT License. See LICENSE for details.