
Rustelo Scripts Directory
This directory contains all the utility scripts for the Rustelo framework, organized by category for easy management and maintenance.
📁 Directory Structure
scripts/
├── databases/ # Database management scripts
├── setup/ # Project setup and installation scripts
├── tools/ # Advanced tooling scripts
├── utils/ # General utility scripts
├── deploy.sh # Main deployment script
├── install.sh # Main installation script
└── README.md # This file
🚀 Quick Start
Using Just (Recommended)
The easiest way to use these scripts is through the justfile
commands:
# Development
just dev # Start development server
just build # Build project
just test # Run tests
# Database
just db-setup # Setup database
just db-migrate # Run migrations
just db-backup # Create backup
# Tools
just perf-benchmark # Run performance tests
just security-audit # Run security audit
just monitor-health # Monitor application health
just ci-pipeline # Run CI/CD pipeline
Direct Script Usage
You can also run scripts directly:
# Database operations
./scripts/databases/db.sh setup create
./scripts/databases/db.sh migrate run
# Performance testing
./scripts/tools/performance.sh benchmark load
./scripts/tools/performance.sh monitor live
# Security scanning
./scripts/tools/security.sh audit full
./scripts/tools/security.sh analyze report
# Monitoring
./scripts/tools/monitoring.sh monitor health
./scripts/tools/monitoring.sh reports generate
📂 Script Categories
🗄️ Database Scripts (databases/
)
Comprehensive database management and operations:
db.sh
- Master database management hubdb-setup.sh
- Database setup and initializationdb-migrate.sh
- Migration managementdb-backup.sh
- Backup and restore operationsdb-monitor.sh
- Database monitoring and health checksdb-utils.sh
- Database utilities and maintenance
Key Features:
- PostgreSQL and SQLite support
- Automated migrations
- Backup/restore with compression
- Performance monitoring
- Health checks and alerts
- Data export/import
- Schema management
Usage Examples:
# Full database setup
./scripts/databases/db.sh setup setup
# Create backup
./scripts/databases/db.sh backup create
# Monitor database health
./scripts/databases/db.sh monitor health
# Run migrations
./scripts/databases/db.sh migrate run
🔧 Setup Scripts (setup/
)
Project initialization and configuration:
install.sh
- Main installation scriptinstall-dev.sh
- Development environment setupsetup_dev.sh
- Development configurationsetup-config.sh
- Configuration managementsetup_encryption.sh
- Encryption setup
Key Features:
- Multi-mode installation (dev/prod/custom)
- Dependency management
- Environment configuration
- Encryption setup
- Feature selection
- Cross-platform support
Usage Examples:
# Basic development setup
./scripts/setup/install.sh
# Production setup with TLS
./scripts/setup/install.sh -m prod --enable-tls
# Custom interactive setup
./scripts/setup/install.sh -m custom
🛠️ Tool Scripts (tools/
)
Advanced tooling and automation:
performance.sh
- Performance testing and monitoringsecurity.sh
- Security scanning and auditingci.sh
- CI/CD pipeline managementmonitoring.sh
- Application monitoring and observability
Performance Tools (performance.sh
)
Commands:
benchmark load
- Load testingbenchmark stress
- Stress testingmonitor live
- Real-time monitoringanalyze report
- Performance analysisoptimize build
- Build optimization
Features:
- Load and stress testing
- Real-time performance monitoring
- Response time analysis
- Resource usage tracking
- Performance reporting
- Build optimization
Usage:
# Run load test
./scripts/tools/performance.sh benchmark load -d 60 -c 100
# Live monitoring
./scripts/tools/performance.sh monitor live
# Generate report
./scripts/tools/performance.sh analyze report
Security Tools (security.sh
)
Commands:
audit full
- Complete security auditaudit dependencies
- Dependency vulnerability scanaudit secrets
- Secret scanninganalyze report
- Security reporting
Features:
- Dependency vulnerability scanning
- Secret detection
- Permission auditing
- Security header analysis
- Configuration security checks
- Automated fixes
Usage:
# Full security audit
./scripts/tools/security.sh audit full
# Scan for secrets
./scripts/tools/security.sh audit secrets
# Fix security issues
./scripts/tools/security.sh audit dependencies --fix
CI/CD Tools (ci.sh
)
Commands:
pipeline run
- Full CI/CD pipelinebuild docker
- Docker image buildingtest all
- Complete test suitedeploy staging
- Staging deployment
Features:
- Complete CI/CD pipeline
- Docker image building
- Multi-stage testing
- Quality checks
- Automated deployment
- Build reporting
Usage:
# Run full pipeline
./scripts/tools/ci.sh pipeline run
# Build Docker image
./scripts/tools/ci.sh build docker -t v1.0.0
# Deploy to staging
./scripts/tools/ci.sh deploy staging
Monitoring Tools (monitoring.sh
)
Commands:
monitor health
- Health monitoringmonitor metrics
- Metrics collectionmonitor logs
- Log analysisreports generate
- Monitoring reports
Features:
- Real-time health monitoring
- Metrics collection and analysis
- Log monitoring and analysis
- System resource monitoring
- Alert management
- Dashboard generation
Usage:
# Monitor health
./scripts/tools/monitoring.sh monitor health -d 300
# Monitor all metrics
./scripts/tools/monitoring.sh monitor all
# Generate report
./scripts/tools/monitoring.sh reports generate
🔧 Utility Scripts (utils/
)
General-purpose utilities:
configure-features.sh
- Feature configurationbuild-examples.sh
- Example buildinggenerate_certs.sh
- TLS certificate generationtest_encryption.sh
- Encryption testingdemo_root_path.sh
- Demo path generation
🚀 Common Workflows
Development Workflow
# 1. Initial setup
just setup
# 2. Database setup
just db-setup
# 3. Start development
just dev-full
# 4. Run tests
just test
# 5. Quality checks
just quality
Production Deployment
# 1. Build and test
just ci-pipeline
# 2. Security audit
just security-audit
# 3. Performance testing
just perf-benchmark
# 4. Deploy to staging
just ci-deploy-staging
# 5. Deploy to production
just ci-deploy-prod
Monitoring and Maintenance
# 1. Setup monitoring
just monitor-setup
# 2. Health monitoring
just monitor-health
# 3. Performance monitoring
just perf-monitor
# 4. Security monitoring
just security-audit
# 5. Generate reports
just monitor-report
📋 Script Conventions
Common Options
Most scripts support these common options:
--help
- Show help message--verbose
- Enable verbose output--quiet
- Suppress output--dry-run
- Show what would be done--force
- Skip confirmations--env ENV
- Specify environment
Exit Codes
Scripts use standard exit codes:
0
- Success1
- General error2
- Misuse of shell builtins126
- Command invoked cannot execute127
- Command not found128
- Invalid argument to exit
Logging
Scripts use consistent logging:
[INFO]
- General information[WARN]
- Warnings[ERROR]
- Errors[SUCCESS]
- Success messages[CRITICAL]
- Critical issues
🔧 Configuration
Environment Variables
Scripts respect these environment variables:
# General
PROJECT_NAME=rustelo
ENVIRONMENT=dev
LOG_LEVEL=info
# Database
DATABASE_URL=postgresql://user:pass@localhost/db
# Docker
DOCKER_REGISTRY=docker.io
DOCKER_IMAGE=rustelo
DOCKER_TAG=latest
# Monitoring
METRICS_PORT=3030
GRAFANA_PORT=3000
PROMETHEUS_PORT=9090
Configuration Files
Scripts may use these configuration files:
.env
- Environment variablesCargo.toml
- Rust project configurationpackage.json
- Node.js dependenciesdocker-compose.yml
- Docker services
🛠️ Development
Adding New Scripts
- Create script in appropriate category directory
- Make executable:
chmod +x script.sh
- Add to
justfile
if needed - Update this README
- Add tests if applicable
Script Template
#!/bin/bash
# Script Description
# Detailed description of what the script does
set -e
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
# Logging functions
log() { echo -e "${GREEN}[INFO]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
# Your script logic here
main() {
log "Starting script..."
# Implementation
log "Script completed"
}
# Run main function
main "$@"
📚 References
- Just Command Runner - Task runner
- Bash Style Guide - Shell scripting standards
- Rustelo Documentation - Main project documentation
- Docker Documentation - Container management
- PostgreSQL Documentation - Database management
🆘 Troubleshooting
Common Issues
-
Permission Denied
chmod +x scripts/path/to/script.sh
-
Missing Dependencies
just setup-deps
-
Environment Variables Not Set
cp .env.example .env # Edit .env with your values
-
Database Connection Issues
just db-status just db-setup
-
Docker Issues
docker system prune -f just docker-build
Getting Help
- Run any script with
--help
for usage information - Check the
justfile
for available commands - Review logs in the output directories
- Consult the main project documentation
🤝 Contributing
- Follow the established conventions
- Add appropriate error handling
- Include help documentation
- Test thoroughly
- Update this README
For questions or issues, please consult the project documentation or create an issue.