A modern web interface for OpenVox infrastructure management.
- PuppetDB Integration: Query and visualize node data, facts, reports, and resources
- Puppet CA Management: List CSRs, sign/reject/revoke node certificates, renew CA certificate
- Node Classification: Puppet Enterprise-style node groups with rule-based classification
- Facter Generation: Generate external facts based on node classification
- SAML 2.0 SSO: Enterprise Single Sign-On integration
- RBAC: Role-Based Access Control with custom roles and permissions
- Alerting: Configurable alerts with Webhook, Email, Slack, and Teams notifications
- Analytics: Infrastructure insights with visualizations and reports
- Code Deploy: Manage and deploy Puppet code to environments
- Dashboard: Real-time infrastructure monitoring with charts and statistics
- YAML Configuration: Store local configuration data in YAML files
- Backend: Rust with Axum web framework
- Frontend: React with TypeScript, Tailwind CSS, and Recharts
- Database: SQLite for local storage
- Testing: Cucumber BDD for behavior-driven tests
- Rust 1.75+
- Node.js 20+
- Docker and Docker Compose (optional, for PuppetDB)
# Clone the repository
git clone https://github.com/ffquintella/openvox-webui.git
cd openvox-webui
# Copy example configuration
cp config/config.example.yaml config/config.yaml
# Build and run the backend
cargo build
cargo run
# In another terminal, run the frontend
cd frontend
npm install
npm run dev# Start all services
docker-compose up -d
# View logs
docker-compose logs -f
# Stop services
docker-compose downmake build # Build both backend and frontend
make dev # Run development server
make test # Run all tests
make lint # Run linters
make format # Format codemake test-unit # Rust unit tests
make test-bdd # Cucumber BDD tests
make test-frontend # Frontend testsmake version # Show current version
make version-patch # Bump patch version
make version-minor # Bump minor version
make version-major # Bump major version./scripts/build-packages.sh # Build RPM/DEB packages
docker build -t openvox-webui:latest . # Build Docker imageopenvox-webui/
├── src/ # Rust backend source
│ ├── api/ # API route handlers
│ ├── config/ # Configuration management
│ ├── db/ # Database layer
│ ├── handlers/ # Request handlers
│ ├── models/ # Data models
│ ├── services/ # Business logic
│ └── utils/ # Utilities
├── frontend/ # React frontend
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── hooks/ # Custom hooks
│ │ ├── pages/ # Page components
│ │ ├── services/ # API client
│ │ ├── stores/ # State management
│ │ └── types/ # TypeScript types
│ └── tests/ # Frontend tests
├── tests/ # Backend tests
│ ├── features/ # Cucumber BDD features
│ ├── integration/ # Integration tests
│ └── unit/ # Unit tests
├── config/ # Configuration files
├── migrations/ # Database migrations
└── docs/ # Documentation
Configuration is stored in YAML files in the config/ directory:
config.yaml- Main application configurationgroups.yaml- Node group definitions (optional)facter_templates.yaml- Facter generation templates (optional)
See config/*.example.yaml for examples.
# Run all tests
cargo test
# Run BDD tests
cargo test --test cucumber
# Run frontend tests
cd frontend && npm test
# Run with coverage
cargo tarpaulinThe API follows RESTful conventions:
GET /api/v1/nodes- List all nodesGET /api/v1/nodes/:certname- Get node detailsGET /api/v1/groups- List node groupsPOST /api/v1/groups- Create node groupGET /api/v1/reports- Query reportsGET /api/v1/facts- Query factsGET /api/v1/ca/status- CA service statusGET /api/v1/ca/requests- List pending CSRsGET /api/v1/ca/certificates- List signed certificatesPOST /api/v1/ca/sign/:certname- Sign CSRPOST /api/v1/ca/reject/:certname- Reject CSRDELETE /api/v1/ca/certificates/:certname- Revoke certificatePOST /api/v1/ca/renew- Renew CA certificate
See docs/api/ for full API documentation.
- Complete User Guide - Comprehensive guide to all features
- Quick Start Guides - Step-by-step tutorials for common tasks
- Troubleshooting Guide - Solutions to common problems
- Installation Guide - Installation instructions
- Configuration Guide - Configuration reference
- Upgrade Guide - Upgrade procedures
- Backup & Recovery - Backup strategies
- Development Guide - Development setup and guidelines
- Architecture Overview - System architecture documentation
- API Documentation - REST API reference
- Contributing Guide - How to contribute
See CONTRIBUTING.md for guidelines.
Apache License 2.0 - See LICENSE for details.

