Development
Run ExfilGuardian in development mode
Nx Monorepo
The project uses Nx for monorepo orchestration. All dev, build, test, and lint commands go through Nx, which handles task dependencies and caching.
Start Everything
bun run devThis starts desktop, docs-site, and server in parallel via nx run-many.
Start Individual Services
bun run dev:desktop # Next.js + Electron dashboard
bun run dev:docs # Fumadocs site (localhost:3001)
bun run dev:server # Rust gRPC + REST serverDependency Graph
Visualize project relationships:
bun run graphManual Setup
If you prefer running services manually:
Desktop App
The full desktop application combines Electron with Next.js for a native dashboard with real-time alert monitoring.
cd desktop && bun run dev:electronThis starts:
- Next.js dev server on
http://localhost:3000 - Electron window with hot reload
Web Only
For frontend development without Electron, run the Next.js dev server standalone.
cd desktop && bun run devAccess the web interface at http://localhost:3000.
Documentation Site
The documentation site is built with Fumadocs and lives in the docs-site directory.
cd docs-site
bun install
bun run devVisit http://localhost:3001 to preview documentation changes.
Rust Backend
Server
The gRPC server receives telemetry from agents and runs the analysis pipeline (DPI, signatures, behavioral, correlation). It loads configuration from config.yaml at startup.
cargo run -p exfil-serverAgent
The Windows agent connects to the server via gRPC and streams flow data. Requires a running driver and Windows environment.
cargo run -p exfil-agentAnalysis Crate
The shared analysis library can be built and tested on any platform.
cargo build -p exfil-analysis
cargo test -p exfil-analysisCertificate Generation
Generate mTLS certificates for agent-server authentication.
cargo run -p exfil-certs-gen