Get up and running in 5 minutes! ⚡
Before starting, ensure you have:
# Check Node.js (need ≥18)
node --version
# Check Docker
docker --version
# Check Docker Compose
docker-compose --versionIf anything is missing, install from:
- Node.js: https://nodejs.org/
- Docker: https://www.docker.com/get-started
# Clone and install
git clone https://github.com/tbartel74/vigil-guard.git
cd vigil-guard
./install.shThat's it! The script will:
- ✓ Verify all prerequisites
- ✓ Install dependencies
- ✓ Build projects
- ✓ Start all services
- ✓ Run health checks
Time: ~5-10 minutes (depending on internet speed)
Once installation completes, open these URLs:
| Service | URL | Credentials |
|---|---|---|
| 🎨 Web UI | http://localhost/ui | admin/[generated by install.sh - check .env] |
| ⚙️ n8n | http://localhost/n8n | (create on first access) |
| 📊 Grafana | http://localhost/grafana | admin/[generated by install.sh - check .env] |
| 🔍 ClickHouse | http://localhost:8123 | admin/[generated by install.sh - check .env] |
Note: All services are accessed through Caddy reverse proxy on port 80 (except ClickHouse, which is backend-only).
After installation completes, you must perform these manual steps:
- Open http://localhost/n8n (accessed through Caddy reverse proxy)
- Create your n8n account (first-time setup)
- Login to n8n interface
- Click on "Workflows" in the left sidebar
- Click "Add Workflow" → "Import from File"
- Import the workflow file from:
services/workflow/workflows/Vigil Guard v2.1.0.json - The workflow will load with all 40 nodes
- In the imported workflow, locate the "Logging to ClickHouse" node
- Click on the node to open settings
- Click "Create New Credential" for ClickHouse
- Configure with these values:
- Host:
vigil-clickhouse - Port:
8123 - Database:
n8n_logs - Username:
admin - Password: [check
.envfile forCLICKHOUSE_PASSWORD]
- Host:
- Click "Save"
- Activate the workflow by clicking the toggle switch
- Rebuild Presidio and the language detector so the workflow picks up the new validators:
docker compose up -d --build presidio-pii-api language-detector n8n
- Verify
http://localhost:5001/healthandhttp://localhost:5002/healthreport healthy.
cd services/workflow✅ Your workflow is now ready to process requests!
- Open http://localhost/ui
- Login with admin and password from
.env(WEB_UI_ADMIN_PASSWORD) - Navigate to Monitoring dashboard
- View real-time statistics
- Open http://localhost/n8n
- Open the imported workflow
- Click "Test Workflow" or send a chat message trigger
- Watch it process through the pipeline
- Open http://localhost/grafana
- Login with admin and password from
.env(GF_SECURITY_ADMIN_PASSWORD) - Navigate to Vigil Guard Dashboard
- View real-time threat detection metrics
./install.sh and displayed ONCE during installation.
Where to find credentials:
- Displayed during installation - Terminal output from
./install.sh - Stored in
.envfile - Root directory (never committed to git)
Services requiring authentication:
- Web UI (
/ui): Usernameadmin, password in.envasWEB_UI_ADMIN_PASSWORD - Grafana (
/grafana): Usernameadmin, password in.envasGF_SECURITY_ADMIN_PASSWORD - ClickHouse: Username
admin, password in.envasCLICKHOUSE_PASSWORD - n8n (
/n8n): Create account on first access (your choice)
For Production Deployment:
- ✅ Passwords already unique (32+ characters, cryptographically secure)
- ✅ Change Web UI password: Settings → Change Password
- ✅ Rotate other secrets: Delete
.env, re-run./install.sh - ✅ Document passwords in secure password manager
- ✅ Never commit
.envto version control
📖 Complete security guide: docs/SECURITY.md
All services are accessed through Caddy on port 80:
| Service | Direct Port | Caddy URL | Purpose |
|---|---|---|---|
| Web UI | :5173 (dev), :80 (prod) | http://localhost/ui | Configuration interface |
| n8n | :5678 | http://localhost/n8n | Workflow editor |
| Grafana | :3001 | http://localhost/grafana | Analytics dashboard |
| ClickHouse | :8123 | (no proxy) | Database (backend only) |
Why Caddy?
- ✅ Single entry point (port 80)
- ✅ Automatic path routing (
/ui→ Web UI,/n8n→ n8n) - ✅ Production-ready (HTTPS support when configured)
- ✅ Clean URLs (no port numbers)
Development Mode:
./scripts/dev.sh # Frontend on :5173 (Vite), bypasses CaddyProduction Mode:
docker-compose up -d # All through Caddy on :80# Check if everything is running
./scripts/status.sh
# View logs
./scripts/logs.sh
# Restart a service
./scripts/restart.sh gui
# Stop everything
./scripts/stop.sh
# Development mode (hot reload)
./scripts/dev.sh# Check what's wrong
./scripts/status.sh
./scripts/logs.sh all
# Try restarting
./scripts/restart.sh all# Check which ports are in use
lsof -i :80 # Caddy reverse proxy (main entry point)
lsof -i :5173 # GUI Frontend (dev mode only)
lsof -i :8787 # GUI Backend
lsof -i :5678 # n8n (proxied via Caddy)
lsof -i :3001 # Grafana (proxied via Caddy)# Complete cleanup and reinstall
./scripts/uninstall.sh
./install.sh-
✅ Complete n8n Setup (REQUIRED - see Step 4 above)
- Create n8n account
- Import workflow from
services/workflow/workflows/Vigil Guard v2.1.0.json - Configure ClickHouse credentials (admin/[password from .env])
-
Configure Security Rules
- Open Web UI at http://localhost/ui
- Login with admin and password from
.env - Navigate to Configuration
- Adjust detection thresholds
-
Monitor System & New v1.8.1 Features
- View real-time stats in Web UI Monitoring dashboard
- Open Grafana at http://localhost/grafana for detailed analytics
- Check Investigation Panel for PII classification tracking
- Monitor browser fingerprinting (clientId + metadata)
- Monitor workflow execution in n8n
-
Read Documentation
- Documentation: docs/README.md
- Scripts Guide: scripts/README.md
- Architecture: docs/ARCHITECTURE.md
- Issues: GitHub Issues
For active development with hot reload:
./scripts/dev.shThis will:
- Start Docker services (monitoring, n8n, databases)
- Run frontend with Vite on :5173 (hot reload, bypasses Caddy)
- Run backend with tsx watch (auto-restart)
- Open in separate terminal windows
Note: In dev mode, access Web UI at http://localhost:5173/ui (direct Vite server)
In production: Access via http://localhost/ui (through Caddy proxy)
That's all you need to get started! 🚀
For detailed documentation, see README.md and docs/
Document Version: 2.1.0 Last Updated: 2025-12-14 Installation Script: install.sh v2.1.0