NODEBOI is a comprehensive Ethereum staking infrastructure management system that provides automated deployment, monitoring, and lifecycle management for Ethereum nodes, validators, and supporting services. The system abstracts the complexity of running multiple Ethereum clients, providing a unified interface for operators to manage their staking infrastructure.
One-line installation:
wget -qO- https://raw.githubusercontent.com/Cryptizer69/nodeboi/main/install.sh | bash
# Run NODEBOI from any directory
nodeboinodeboi
# Select: "Install new service" β "Install new ethnode"
# Choose your execution client (Nethermind, Besu, Reth)
# Choose your consensus client (Lodestar, Teku, Grandine)
# Follow the guided setupnodeboi
# Select: "Install new service" β "Install monitoring"
# Access Grafana at http://localhost:3000 (admin/admin)nodeboi
# Select: "Install new service" β "Install validator"
# Choose validator client (Vero, Teku Validator)
# Import your validator keys- Service-Oriented Architecture: Each component (ethnode, validator, monitoring) is a self-contained service
- Containerized Deployment: All services run in Docker containers for isolation and portability
- Universal Lifecycle Management: Centralized ULCS orchestrates all service operations
- Network Isolation: Each service runs in isolated Docker networks for security
- Configuration-Driven: Declarative configuration defines desired state
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β NODEBOI CLI β
β (nodeboi.sh) β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ
β Universal Lifecycle System (ULCS) β
β (lib/ulcs.sh) β
βββββββ¬ββββββββββββββ¬ββββββββββββββ¬ββββββββββββββ¬ββββββββββββββββββ
β β β β
βββββββΌββββββ βββββββΌββββββ βββββββΌββββββ βββββββΌββββββ
β Ethnode β βValidators β βMonitoring β βWeb3signer β
β Services β β Services β β Stack β β Service β
βββββββββββββ βββββββββββββ βββββββββββββ βββββββββββββ
β β β β
βββββββΌββββββββββββββΌββββββββββββββΌββββββββββββββΌββββββ
β Docker Engine β
β (Isolated Networks) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Purpose: Primary user interface
- Size: ~1,000 lines
- Functions:
- Menu-driven service management
- Installation workflows
- Status monitoring
- System administration
- Purpose: Complete service lifecycle management across multiple specialized modules
- Core Module:
lib/ulcs.sh(~120k lines) - Main orchestration system - Supporting Modules: lifecycle-hooks, service-operations, monitoring-lifecycle, etc.
- Sections:
- Section 1: Core logging & utilities (unified log functions, service flows)
- Section 2: Service orchestration (install/remove/start/stop/update operations)
- Section 3: Resource operations (containers, volumes, networks, filesystems)
- Section 4: Monitoring integration (prometheus, grafana, dashboards)
Key ULCS Functions:
- β
Universal service operations (
remove_service_universal,start_service_universal, etc.) - β Resource management (container, volume, network operations)
- β Native monitoring integration (prometheus config, grafana dashboards)
- β Cross-service dependency management
- β Client-specific optimizations (graceful Nethermind/Besu shutdown)
- Purpose: Ethereum node deployment and management
- Size: ~68,000 lines
- Supported Clients:
- Execution: Nethermind, Besu, Reth
- Consensus: Lodestar, Teku, Grandine
- Functions:
- Multi-client support and installation workflows
- Automatic client detection and configuration
- Network synchronization and performance optimization
- Integration with ULCS for lifecycle management
- Purpose: Validator client management
- Size: ~75,000 lines
- Supported Validators: Vero, Teku Validator
- Functions:
- Key management integration
- Beacon node configuration and discovery
- Fee recipient management
- Slashing protection
- Integration with ULCS for lifecycle operations
- Network Manager (
network-manager.sh): Docker network orchestration and isolation - Service Operations (
service-operations.sh): Core service management utilities - UI Framework (
ui.sh): Consistent user interface components
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β monitoring-net β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β Prometheus β β Grafana β βNode Exporterβ β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ
β validator-net β
β βββββββββββββββ βββββββββββββββ β
β β Vero β βTeku Validatorβ β
β βββββββββββββββ βββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
ββββββββββΌβββββ ββββββββββΌβββββ
β ethnode1-netβ β ethnode2-netβ
βββββββββββββββ βββββββββββββββ
ββNethermind ββ ββ Besu ββ
ββββββββββββββ€β ββββββββββββββ€β
ββ Lodestar ββ ββ Teku ββ
ββββββββββββββ€β ββββββββββββββ€β
ββ MEV-Boost ββ ββββββββββββββ€β
βββββββββββββββ ββ MEV-Boost ββ
βββββββββββββββ βββββββββββββββ
βββββββββββββββ
- Security: Services cannot access each other unless explicitly connected
- Scalability: New services can be added without affecting existing ones
- Maintenance: Individual networks can be updated independently
- Monitoring: Network traffic is traceable and monitorable
Each service type has a defined lifecycle with specific steps:
{
"ethnode": {
"lifecycle": {
"install": ["create_directories", "copy_configs", "setup_networking", "start_services", "integrate"],
"remove": ["stop_services", "cleanup_integrations", "remove_containers", "remove_volumes", "remove_networks", "remove_directories"],
"update": ["pull_images", "recreate_services", "health_check"]
},
"integrations": ["monitoring", "validators"]
}
}Ethnode Services (ethnode1, ethnode2, etc.)
- Resources: Isolated Docker containers, networks (
ethnode-net), data directories - Integrations: Monitoring (Prometheus scraping, Grafana dashboards), validator beacon endpoints
- Dependencies: None
- Dependents: Validators that use this ethnode as a beacon node
Validator Services (vero, teku-validator)
- Resources: Validator containers, shared validator network, validator data directories
- Integrations: Monitoring dashboards, ethnode beacon endpoints, web3signer configuration
- Dependencies: Ethnode services (for beacon nodes)
- Dependents: None
Web3signer Service (web3signer)
- Resources: Web3signer containers, PostgreSQL database, dedicated network
- Integrations: Validator configurations, monitoring
- Dependencies: None
- Dependents: Validators that use remote signing
Monitoring Service (monitoring)
- Resources: Prometheus, Grafana, Node Exporter containers, monitoring network
- Integrations: All other services (collects metrics from all)
- Dependencies: None
- Dependents: All services (provides observability)
The monitoring system is centralized through ULCS Native Monitoring:
- Single Source of Truth: One function generates all Prometheus configurations
- Automatic Discovery: Detects all running services and their client types
- Self-Validating: Built-in YAML validation and configuration checks
- Atomic Updates: Configurations updated atomically with rollback on failure
- API Integration: Both file-based and API-based Grafana dashboard management
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Grafana β
β (Visualization) β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β Queries
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ
β Prometheus β
β (Metrics Store) β
βββββββ¬ββββββββββ¬ββββββββββ¬ββββββββββ¬ββββββββββ¬ββββββββββ¬ββββββββββ
β β β β β β
βββββββΌββ βββββββΌββ βββββββΌββ βββββββΌββ βββββββΌββ βββββββΌββ
βNode β βNether-β βLode- β βTeku β βVero β βSystem β
βExport.β βmind β βstar β βValid. β βValid. β βMetricsβ
βββββββββ βββββββββ βββββββββ βββββββββ βββββββββ βββββββββ
-
Ethereum Node Metrics:
- Sync status and block height
- Peer connections and network health
- Memory and CPU usage
- Disk I/O and storage utilization
-
Validator Metrics:
- Attestation performance and success rate
- Proposal success rate and rewards
- Balance changes and earnings
- Slashing incidents and penalties
-
System Metrics:
- Container health and resource usage
- Network throughput and latency
- Service availability and uptime
$HOME/.nodeboi/ # NODEBOI Installation
βββ nodeboi.sh # Main CLI
βββ lib/
β βββ ulcs.sh # Universal Lifecycle & Configuration System (CONSOLIDATED)
β βββ ethnode-manager.sh # Ethereum node management
β βββ validator-manager.sh # Validator management
β βββ ... # Supporting modules
βββ README.md # User documentation
$HOME/ethnode1/ # Ethnode Instance
βββ .env # Service Configuration
βββ compose.yml # Docker Compose
βββ nethermind.yml # Client Configuration
βββ data/ # Blockchain Data
$HOME/monitoring/ # Monitoring Stack
βββ .env
βββ compose.yml
βββ prometheus.yml # Generated by ULCS
βββ grafana/
βββ dashboards/ # Auto-generated
- Service Definition: ULCS service flows define capabilities and dependencies
- Template Processing: Configuration templates customized per service
- Environment Generation:
.envfiles created with service-specific parameters - Docker Compose: Service definitions translated to container specifications
- Runtime Configuration: Dynamic configuration updates through ULCS
- Network Isolation: Docker networks prevent unauthorized service communication
- Container Isolation: Each service runs in isolated containers with restricted privileges
- File System Isolation: Dedicated directories with proper permissions
- JWT Authentication: Secure communication between Ethereum clients
- Key Management: Web3signer provides secure key storage and signing
- Principle of Least Privilege: Services only access required resources
- Defense in Depth: Multiple security layers prevent single points of failure
- Secure Defaults: Safe configuration out-of-the-box
- Audit Trails: All operations logged for security analysis
- Horizontal Scaling: Multiple ethnodes supported (ethnode1, ethnode2, ...)
- Resource Efficiency: Optimized Docker configurations reduce overhead
- Network Performance: Isolated networks reduce interference
- Storage Optimization: Configurable pruning and data management
- Client Selection: Support for high-performance clients (Nethermind, Reth)
- Resource Allocation: Automatic memory and CPU configuration
- Network Optimization: Efficient peer discovery and connection management
- Monitoring Overhead: Lightweight metrics collection with minimal impact
All services support these universal operations through ULCS:
# Universal operations work on any service type
remove_service_universal ethnode1 # Remove ethnode with cleanup
start_service_universal monitoring # Start monitoring stack
stop_service_universal vero # Stop validator service- Stop Services: Gracefully stop all containers using
docker compose down - Update Dependents: Remove references from dependent services (e.g., beacon endpoints from validators)
- Cleanup Integrations: Remove monitoring targets, dashboards, and cross-service configurations
- Remove Containers: Remove all Docker containers matching service patterns
- Remove Volumes: Clean up all Docker volumes associated with the service
- Remove Networks: Remove isolated networks, handling shared network cleanup intelligently
- Remove Directories: Remove filesystem directories and configuration files
- Unregister: Remove service from the service registry
- Monitoring Integration: Automatically updates Prometheus scrape configurations and removes Grafana dashboards
- Validator Integration: Updates beacon node endpoints in validator configurations when ethnodes are removed
- Network Management: Handles both isolated networks (per-ethnode) and shared networks (validator-net)
- Service Registry: Maintains consistent state tracking across all operations
- Multi-node Management: Run multiple Ethereum nodes simultaneously with different client combinations
- Client Diversity: Supports Reth, Besu, Nethermind (execution) and Lodestar, Teku, Grandine (consensus)
- Automated Setup: Handles JWT secrets, port allocation, and configuration automatically
- Built-in Monitoring: Includes MEV-boost support and monitoring capabilities
- Universal Lifecycle Management: Unified service orchestration for all components
# Universal operations work on any service
nodeboi start ethnode1
nodeboi stop vero
nodeboi remove monitoring- Auto-discovery: Automatically detects running services
- Dynamic Configuration: Updates Prometheus targets and Grafana dashboards
- Client-Specific Dashboards: Tailored dashboards for each Ethereum client
- Health Monitoring: Container and service health checks
- Graceful Shutdowns: Client-specific shutdown procedures (Nethermind, Besu)
- Rolling Updates: Update clients without affecting other services
- Network Management: Smart shared network cleanup
- Network Segmentation: Each service in isolated networks
- Resource Isolation: Separate data directories and volumes
- JWT Security: Secure client communication
- Key Management: Web3signer for remote validator key signing
# List all services
nodeboi status
# Add second ethereum node
nodeboi
# Select "Install new service" β "Install new ethnode" β ethnode2
# Remove an ethnode (with confirmation)
nodeboi remove ethnode1# Add validator
nodeboi
# Select "Install new service" β "Install validator" β vero
# Import validator keys
# Keys placed in ~/vero/validator_keys/
# Validator automatically connects to available ethnodes# Install monitoring
nodeboi
# Select "Install new service" β "Install monitoring"
# Access dashboards
# Grafana: http://localhost:3000 (admin/admin)
# Prometheus: http://localhost:9090
# Monitoring auto-detects all services- One responsibility per module
- Clear module boundaries with minimal dependencies
- Consistent error handling using ULCS logging
- Comprehensive logging at multiple levels
- Define ULCS service flow in service flows section
- Implement lifecycle hooks for all operations
- Add monitoring integration using ULCS native functions
- Create configuration templates following existing patterns
- Write integration tests for critical paths
- Use ULCS native functions only (consolidated in
lib/ulcs.sh) - Avoid legacy functions that have been consolidated
- Follow lifecycle patterns defined in service flows
- Implement client-specific optimizations when necessary
- Use ULCS native monitoring functions (
ulcs_generate_prometheus_config,ulcs_sync_dashboards) - Implement service-specific metrics following existing patterns
- Create custom Grafana dashboards using template system
- Ensure auto-discovery compatibility for new services
- Network isolation by default for all new services
- Secure credential management using established patterns
- Input validation everywhere to prevent injection attacks
- Audit trail logging for all critical operations
- Previous Issue: Prometheus configuration scattered across 5 files with conflicting functions
- Resolution:
- ULCS consolidation provides single source of truth
- Prometheus configuration centralized (
ulcs_generate_prometheus_config) - Dashboard naming standardized and duplicates eliminated
- Network connectivity automated (
ulcs_integrate_monitoring)
- Previous Issue: ULCS functionality spread across 3 separate files (3,242 lines total)
- Resolution:
- Consolidated into single
lib/ulcs.shfile (2,906 lines) - Unified logging system (
log_ulcs_*functions) - All imports updated across 6 files
- Maintains all functionality while improving maintainability
- Consolidated into single
- Issue: Nethermind sometimes exceeds 60s graceful shutdown timeout during database flush
- Impact: Users see "force exiting" message during removal (cosmetic issue)
- Current Behavior: System appropriately falls back to force shutdown after timeout
- Recommendation: Consider increasing timeout to 120s for slower systems/large databases
- π Centralized templates - Single source of truth for all service configurations (
lib/templates.sh) - π― Enhanced monitoring integration - Improved Prometheus and Grafana management
- β‘ Faster dashboard refresh - Optimized health checks with reduced timeouts
- π§Ή Clean codebase - Removed duplicate code and consolidated documentation
- π Unified documentation - Single comprehensive README with user guide + technical reference
- π§ Performance improvements - Better GitHub API rate limiting and caching
- ULCS Consolidation: Single unified service management module
- Enhanced Monitoring: Native ULCS monitoring with auto-discovery
- Improved Architecture: Cleaner separation of concerns
- Better Error Handling: Graceful failure handling and recovery
- Performance Optimization: Reduced code duplication and faster operations
- Help: Use
nodeboimenu system - Issues: Report bugs and feature requests on the project repository
- Code Style: Follow existing patterns and ULCS integration guidelines
- Testing: Ensure all new features integrate properly with ULCS
- Documentation: Update both user guides and technical documentation
NODEBOI is a sophisticated infrastructure management system that successfully abstracts the complexity of Ethereum staking operations. The Universal Lifecycle System (ULCS) provides a robust foundation for service orchestration, while the consolidated architecture enables easier maintenance and development.
- Comprehensive Coverage: Handles all aspects of Ethereum staking infrastructure
- User-Friendly: Complex operations simplified through intuitive interfaces
- Robust Monitoring: Complete observability with automatic service discovery
- Scalable Design: Supports multiple nodes and validators
- Security-First: Multiple layers of isolation and protection
- Consolidated Architecture: Single ULCS module for all lifecycle operations
- 22+ service modules working in harmony
- ~150,000+ lines of well-structured code
- Multiple client support (Nethermind, Besu, Reth, Lodestar, Teku, Grandine)
- Zero-downtime service management
- Automatic monitoring integration
- Single comprehensive ULCS (2,900 lines) replacing 3 separate modules
NODEBOI successfully bridges the gap between Ethereum's technical complexity and operator accessibility, providing a mature, production-ready system for Ethereum staking infrastructure management.
Document Version: 2.1
Last Updated: September 22, 2025
Comprehensive Documentation - User Guide + Technical Reference