Some checks failed
CI/CD Pipeline / Test Suite (push) Has been cancelled
CI/CD Pipeline / Security Audit (push) Has been cancelled
CI/CD Pipeline / Performance Benchmarks (push) Has been cancelled
Rust CI / Security Audit (push) Has been cancelled
Rust CI / Check + Test + Lint (nightly) (push) Has been cancelled
Rust CI / Check + Test + Lint (stable) (push) Has been cancelled
CI/CD Pipeline / Build Docker Image (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / Cleanup (push) Has been cancelled
529 lines
12 KiB
Markdown
529 lines
12 KiB
Markdown
# Quick Start Guide - Create Rustelo Implementation
|
|
|
|
## 🚀 Two Ways to Get Started
|
|
|
|
This guide shows you how to create a Rustelo implementation using two approaches:
|
|
1. **Command Line**: Interactive, step-by-step creation
|
|
2. **Config File**: Declarative, reproducible setup
|
|
|
|
Both approaches create the same result - choose what fits your workflow best!
|
|
|
|
---
|
|
|
|
## 📋 Prerequisites (2 minutes)
|
|
|
|
### Install Rustelo CLI
|
|
```bash
|
|
# Install latest Rustelo CLI
|
|
cargo install rustelo-cli
|
|
|
|
# Verify installation
|
|
cargo rustelo --version
|
|
# Output: rustelo-cli 0.1.0
|
|
|
|
# Check available commands
|
|
cargo rustelo --help
|
|
```
|
|
|
|
### System Requirements
|
|
- **Rust**: 1.70+ (install from [rustup.rs](https://rustup.rs))
|
|
- **Node.js**: 18+ (for CSS and tooling)
|
|
- **Git**: For version control
|
|
- **Database**: PostgreSQL or SQLite (optional, for database features)
|
|
|
|
---
|
|
|
|
## 🎯 Approach 1: Command Line Creation
|
|
|
|
### Step 1: Create New Project (Interactive)
|
|
```bash
|
|
# Start interactive project creation
|
|
cargo rustelo new
|
|
|
|
# Interactive prompts:
|
|
📋 Project name: my-webapp
|
|
📋 Description: My awesome web application
|
|
📋 Template type:
|
|
> webapp (Full-stack web application)
|
|
api (REST API server)
|
|
static (Static site generator)
|
|
desktop (Desktop application)
|
|
|
|
📋 Select features:
|
|
[x] analytics (Usage analytics and monitoring)
|
|
[x] auth (Authentication and authorization)
|
|
[ ] smart-build (Intelligent build caching)
|
|
[x] debugging-tools (Enhanced debugging capabilities)
|
|
[ ] email (Multi-provider email system)
|
|
[ ] tls (HTTPS/TLS support)
|
|
|
|
📋 Database:
|
|
> postgres (PostgreSQL - production ready)
|
|
sqlite (SQLite - development friendly)
|
|
none (No database)
|
|
|
|
📋 Styling:
|
|
[x] tailwind (Tailwind CSS via UnoCSS)
|
|
[ ] custom (Custom CSS setup)
|
|
|
|
📋 Additional options:
|
|
[x] github-actions (CI/CD workflows)
|
|
[x] docker (Docker configuration)
|
|
[x] docs (Documentation setup)
|
|
```
|
|
|
|
### Step 2: Project Generated
|
|
```bash
|
|
✅ Created my-webapp project with:
|
|
- Template: webapp
|
|
- Features: analytics, auth, debugging-tools
|
|
- Database: PostgreSQL
|
|
- Styling: Tailwind/UnoCSS
|
|
- CI/CD: GitHub Actions
|
|
- Containerization: Docker
|
|
|
|
📁 Project structure created at: ./my-webapp/
|
|
🔧 Configuration files generated
|
|
📦 Dependencies resolved
|
|
🚀 Ready for development!
|
|
|
|
Next steps:
|
|
cd my-webapp
|
|
just setup
|
|
just dev
|
|
```
|
|
|
|
### Step 3: Development Setup
|
|
```bash
|
|
cd my-webapp
|
|
|
|
# One-command setup (installs dependencies, sets up database, etc.)
|
|
just setup
|
|
|
|
# Setup process:
|
|
🔧 Installing Rust dependencies...
|
|
📦 Installing Node.js dependencies...
|
|
🗄️ Setting up PostgreSQL database...
|
|
🎨 Building initial CSS...
|
|
✅ Development environment ready!
|
|
|
|
# Start development server
|
|
just dev
|
|
|
|
# Development server started:
|
|
🚀 Server running at http://localhost:3000
|
|
📊 Analytics dashboard at http://localhost:3001
|
|
🔧 Debug tools enabled
|
|
🔄 Hot reload active
|
|
```
|
|
|
|
### Step 4: Explore Your Project
|
|
```bash
|
|
# See available commands
|
|
just --list
|
|
|
|
# Available recipes:
|
|
# dev Start development server
|
|
# dev-full Start all services (server, analytics, debugging)
|
|
# build Build for development
|
|
# build-prod Build for production
|
|
# test Run tests
|
|
# auth-setup Setup authentication
|
|
# analytics-report Generate analytics report
|
|
# db-migrate Run database migrations
|
|
# quality Run all quality checks
|
|
|
|
# Try some commands:
|
|
just auth-setup # Configure authentication
|
|
just db-migrate # Run database migrations
|
|
just quality # Check code quality
|
|
```
|
|
|
|
---
|
|
|
|
## ⚙️ Approach 2: Config File Creation
|
|
|
|
### Step 1: Create Project Config File
|
|
```bash
|
|
# Create project configuration
|
|
mkdir my-webapp
|
|
cd my-webapp
|
|
|
|
# Create rustelo.toml configuration
|
|
cat > rustelo.toml << 'EOF'
|
|
[project]
|
|
name = "my-webapp"
|
|
description = "My awesome web application"
|
|
version = "0.1.0"
|
|
authors = ["Your Name <your.email@example.com>"]
|
|
license = "MIT"
|
|
|
|
[template]
|
|
type = "webapp"
|
|
variant = "full-stack"
|
|
|
|
[features]
|
|
# Core features
|
|
analytics = { enabled = true, config = { retention_days = 30, dashboard_port = 3001 } }
|
|
auth = { enabled = true, config = { methods = ["jwt", "oauth2"], providers = ["google", "github"] } }
|
|
debugging-tools = { enabled = true, config = { browser_logs = true, performance_monitoring = true } }
|
|
|
|
# Optional features (disabled by default)
|
|
smart-build = { enabled = false }
|
|
email = { enabled = false }
|
|
tls = { enabled = false }
|
|
|
|
[database]
|
|
type = "postgres"
|
|
url = "postgresql://localhost:5432/my_webapp"
|
|
migrations = true
|
|
auto_setup = true
|
|
|
|
[styling]
|
|
framework = "tailwind"
|
|
processor = "unocss"
|
|
themes = ["light", "dark"]
|
|
custom_colors = { primary = "#3b82f6", secondary = "#10b981" }
|
|
|
|
[development]
|
|
hot_reload = true
|
|
debug_mode = true
|
|
log_level = "debug"
|
|
port = 3000
|
|
|
|
[build]
|
|
optimize = true
|
|
target_dir = "target"
|
|
features = ["analytics", "auth", "debugging-tools"]
|
|
|
|
[deployment]
|
|
docker = true
|
|
ci_cd = "github-actions"
|
|
environments = ["staging", "production"]
|
|
|
|
[tooling]
|
|
justfile = true
|
|
package_json = true
|
|
dockerfile = true
|
|
github_actions = true
|
|
documentation = true
|
|
|
|
[quality]
|
|
pre_commit_hooks = true
|
|
code_formatting = "rustfmt"
|
|
linting = "clippy"
|
|
testing = { unit = true, integration = true, e2e = false }
|
|
EOF
|
|
```
|
|
|
|
### Step 2: Generate Project from Config
|
|
```bash
|
|
# Create project from configuration file
|
|
cargo rustelo create --config rustelo.toml
|
|
|
|
# Output:
|
|
📋 Reading configuration from rustelo.toml...
|
|
✅ Configuration validated
|
|
🏗️ Creating project structure...
|
|
📦 Installing dependencies...
|
|
🔧 Configuring features...
|
|
🎨 Setting up styling system...
|
|
🗄️ Configuring database...
|
|
🚀 Setting up development environment...
|
|
|
|
✅ Project created successfully!
|
|
|
|
Project: my-webapp (v0.1.0)
|
|
Template: webapp (full-stack variant)
|
|
Features: analytics, auth, debugging-tools
|
|
Database: PostgreSQL
|
|
Styling: Tailwind/UnoCSS
|
|
|
|
Next steps:
|
|
just setup
|
|
just dev
|
|
```
|
|
|
|
### Step 3: Verify Configuration
|
|
```bash
|
|
# Check generated project matches config
|
|
cargo rustelo info
|
|
|
|
# Output:
|
|
📋 Project Information:
|
|
Name: my-webapp
|
|
Template: webapp (full-stack)
|
|
Generated by: cargo rustelo v0.1.0
|
|
Configuration: rustelo.toml
|
|
|
|
🎯 Enabled Features:
|
|
✅ analytics (retention: 30 days, port: 3001)
|
|
✅ auth (JWT + OAuth2: google, github)
|
|
✅ debugging-tools (browser logs, performance monitoring)
|
|
|
|
🗄️ Database:
|
|
Type: PostgreSQL
|
|
URL: postgresql://localhost:5432/my_webapp
|
|
Migrations: Enabled
|
|
|
|
🎨 Styling:
|
|
Framework: Tailwind CSS
|
|
Processor: UnoCSS
|
|
Themes: light, dark
|
|
Primary: #3b82f6, Secondary: #10b981
|
|
|
|
🔧 Development:
|
|
Port: 3000
|
|
Hot Reload: Enabled
|
|
Debug Mode: Enabled
|
|
Log Level: debug
|
|
```
|
|
|
|
### Step 4: Customize Configuration (Optional)
|
|
```bash
|
|
# Edit configuration for your needs
|
|
nano rustelo.toml
|
|
|
|
# Example customizations:
|
|
[features]
|
|
# Add more features
|
|
smart-build = { enabled = true, config = { cache_size = "2GB", parallel_jobs = 4 } }
|
|
email = { enabled = true, config = { provider = "sendgrid", templates = true } }
|
|
|
|
[styling.custom_colors]
|
|
# Update brand colors
|
|
primary = "#ff6b6b"
|
|
secondary = "#4ecdc4"
|
|
accent = "#45b7d1"
|
|
|
|
# Regenerate with new configuration
|
|
cargo rustelo update --config rustelo.toml
|
|
|
|
# Applies configuration changes:
|
|
✅ Added smart-build feature
|
|
✅ Added email feature
|
|
✅ Updated color theme
|
|
🔄 Rebuilding CSS with new colors...
|
|
✅ Configuration updated successfully!
|
|
```
|
|
|
|
---
|
|
|
|
## 🔄 Configuration File Templates
|
|
|
|
### Minimal Configuration (API Only)
|
|
```toml
|
|
# minimal-api.toml
|
|
[project]
|
|
name = "my-api"
|
|
description = "Simple REST API"
|
|
|
|
[template]
|
|
type = "api"
|
|
|
|
[features]
|
|
auth = { enabled = true }
|
|
|
|
[database]
|
|
type = "sqlite"
|
|
```
|
|
|
|
### Full-Featured Web App
|
|
```toml
|
|
# full-webapp.toml
|
|
[project]
|
|
name = "my-saas"
|
|
description = "Full SaaS application"
|
|
|
|
[template]
|
|
type = "webapp"
|
|
variant = "saas"
|
|
|
|
[features]
|
|
analytics = { enabled = true }
|
|
auth = { enabled = true, config = { methods = ["jwt", "oauth2", "2fa"] } }
|
|
smart-build = { enabled = true }
|
|
debugging-tools = { enabled = true }
|
|
email = { enabled = true }
|
|
tls = { enabled = true }
|
|
|
|
[database]
|
|
type = "postgres"
|
|
url = "$DATABASE_URL"
|
|
|
|
[styling]
|
|
framework = "tailwind"
|
|
themes = ["light", "dark", "system"]
|
|
|
|
[deployment]
|
|
docker = true
|
|
ci_cd = "github-actions"
|
|
environments = ["dev", "staging", "prod"]
|
|
```
|
|
|
|
### Static Site
|
|
```toml
|
|
# static-site.toml
|
|
[project]
|
|
name = "my-blog"
|
|
description = "Personal blog"
|
|
|
|
[template]
|
|
type = "static"
|
|
|
|
[features]
|
|
analytics = { enabled = true, config = { provider = "google" } }
|
|
|
|
[styling]
|
|
framework = "tailwind"
|
|
themes = ["minimal"]
|
|
|
|
[content]
|
|
type = "markdown"
|
|
source = "content/"
|
|
```
|
|
|
|
### Team/Organization Template
|
|
```toml
|
|
# team-template.toml
|
|
[project]
|
|
name = "team-project"
|
|
description = "Standardized team project"
|
|
|
|
[template]
|
|
type = "webapp"
|
|
|
|
[features]
|
|
analytics = { enabled = true }
|
|
auth = { enabled = true }
|
|
smart-build = { enabled = true }
|
|
debugging-tools = { enabled = true }
|
|
|
|
[team]
|
|
shared_config = true
|
|
code_style = "strict"
|
|
pre_commit_hooks = ["format", "lint", "test", "integrity"]
|
|
|
|
[quality]
|
|
coverage_threshold = 90.0
|
|
security_scan = true
|
|
performance_budget = { fcp = "1.5s", lcp = "2.5s" }
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 Next Steps After Creation
|
|
|
|
### Development Workflow
|
|
```bash
|
|
# Start development
|
|
just dev
|
|
|
|
# In separate terminal, try features:
|
|
just auth-setup # Setup authentication
|
|
just analytics-report # View analytics
|
|
just db-migrate # Run database migrations
|
|
|
|
# Check code quality
|
|
just quality
|
|
|
|
# Run tests
|
|
just test
|
|
```
|
|
|
|
### Customization
|
|
```bash
|
|
# Override templates locally
|
|
cargo rustelo override template justfile
|
|
# Edit config/local/justfile with your custom commands
|
|
|
|
# Override components
|
|
cargo rustelo override component NavBar
|
|
# Edit src/components/local/NavBar.rs
|
|
|
|
# Add local configuration
|
|
echo 'debug_toolbar = true' >> config/local/development.toml
|
|
```
|
|
|
|
### Feature Management
|
|
```bash
|
|
# Add more features
|
|
cargo rustelo add smart-build
|
|
cargo rustelo add email
|
|
|
|
# Check feature status
|
|
cargo rustelo features status
|
|
|
|
# Remove features
|
|
cargo rustelo remove debugging-tools
|
|
```
|
|
|
|
### Production Deployment
|
|
```bash
|
|
# Build for production
|
|
just build-prod
|
|
|
|
# Run deployment checks
|
|
just deploy-check
|
|
|
|
# Deploy (if configured)
|
|
just deploy-staging # Deploy to staging first
|
|
just deploy-prod # Deploy to production
|
|
```
|
|
|
|
---
|
|
|
|
## 🚨 Common Issues and Solutions
|
|
|
|
### Issue 1: Database Connection Failed
|
|
```bash
|
|
# Problem: PostgreSQL not running
|
|
# Solution:
|
|
just db-start # Start database
|
|
just db-setup # Setup database schema
|
|
just db-migrate # Run migrations
|
|
```
|
|
|
|
### Issue 2: Port Already in Use
|
|
```bash
|
|
# Problem: Port 3000 already in use
|
|
# Solution: Change port in config/local/development.toml
|
|
echo 'port = 3001' >> config/local/development.toml
|
|
just dev
|
|
```
|
|
|
|
### Issue 3: Node.js Dependencies Missing
|
|
```bash
|
|
# Problem: CSS build fails
|
|
# Solution:
|
|
npm install # Install Node.js dependencies
|
|
just css-build # Rebuild CSS
|
|
```
|
|
|
|
### Issue 4: Permission Denied
|
|
```bash
|
|
# Problem: Permission errors on Linux/Mac
|
|
# Solution:
|
|
chmod +x scripts/**/*.sh # Make scripts executable
|
|
sudo chown -R $USER target/ # Fix target directory ownership
|
|
```
|
|
|
|
---
|
|
|
|
## 📚 What's Next?
|
|
|
|
1. **Read the Migration Guide**: [MIGRATION_GUIDE.md](./MIGRATION_GUIDE.md)
|
|
2. **Explore New Workflows**: [NEW_WORKFLOWS.md](./NEW_WORKFLOWS.md)
|
|
3. **Understand Architecture**: [TEMPLATE_ARCHITECTURE.md](./TEMPLATE_ARCHITECTURE.md)
|
|
4. **Learn Layer System**: [LAYERED_OVERRIDE_SYSTEM.md](./LAYERED_OVERRIDE_SYSTEM.md)
|
|
5. **Check Integrity Protection**: [FRAMEWORK_INTEGRITY_PROTECTION.md](./FRAMEWORK_INTEGRITY_PROTECTION.md)
|
|
|
|
## 🆘 Getting Help
|
|
|
|
- **CLI Help**: `cargo rustelo help <command>`
|
|
- **Project Issues**: `cargo rustelo diagnose`
|
|
- **Community**: GitHub Discussions
|
|
- **Documentation**: `cargo rustelo docs`
|
|
|
|
**Happy coding with Rustelo! 🦀🚀**
|