This repository contains a unified Security Operations (SecOps) platform consisting of a Backend-For-Frontend (BFF) API gateway and a modern Web Dashboard (ZeroSec).
This setup is ideal for homelab environments that want a centralized view of security alerts (Wazuh), infrastructure (Proxmox), and local AI integrations (Ollama).
/bff: A Node.js Backend-For-Frontend API gateway layer. It provides a consolidated, secure ingress proxy for the dashboard (and mobile apps) to communicate with internal components (Wazuh API, Ollama, Proxmox API, Gotify)./dashboard: A Next.js Web Dashboard for visualizing and managing SecOps alerts and infrastructure state.
Before deploying, you must configure the endpoints to match your specific infrastructure.
Navigate to the bff directory and set up your environment variables:
cd bff
cp .env.example .envEdit the .env file and replace the placeholder example.com domains and 10.0.0.X IPs with the actual addresses of your Wazuh, Gitea, Gotify, and Ollama instances.
The dashboard needs to know where the BFF is located.
- Update the routing rewrite rules in
dashboard/next.config.tsto point to your deployed BFF instance. - Update any default configuration values in
dashboard/src/components/Settings.tsxto match your local network.
To run the services locally for development and testing:
Run the BFF:
cd bff
npm install
npm run devRun the Dashboard:
cd dashboard
npm install
npm run devIf you are deploying to a Kubernetes cluster (e.g., K3s) using GitOps (e.g., ArgoCD):
- Build and push the Docker images for both the
bffanddashboardusing the providedDockerfiles to your private registry. - Review the sample manifests in
dashboard/k8s/(argo-app.yamlandmanifests.yaml). - Update the
example.comhostnames, theyour-usernamepaths, and the container image locations to match your setup. - Apply the manifests to your cluster.
This project is licensed under the MIT License - see the LICENSE file for details.