provisioning/docs/src/getting-started/setup-profiles.md

2 lines
19 KiB
Markdown
Raw Normal View History

# Setup Profiles Guide - Detailed Reference\n\nThis guide provides detailed information about each setup profile and when to use them.\n\n---\n\n## Profile Comparison Matrix\n\n| | Aspect | Developer | Production | CI/CD | |\n| | -------- | ----------- | ----------- | ------- | |\n| | **Duration** | 3-4 min | 10-15 min | <2 min | |\n| | **User Input** | Minimal (1 question) | Extensive (10+ questions) | None (env vars) | |\n| | **Config Type** | Nickel (auto-composed) | Nickel (interactive) | Nickel (auto-minimal) | |\n| | **Validation** | Nickel typecheck | Nickel typecheck | Nickel typecheck | |\n| | **Deployment** | Docker Compose | Kubernetes/SSH/Docker | Docker Compose | |\n| | **Services Started** | Auto-start locally | Manual (you deploy) | Auto-start ephemeral | |\n| | **Storage** | Home dir (persistent) | Home dir (persistent) | /tmp (ephemeral) | |\n| | **Security** | Local defaults | MFA+Audit+Policies | Env vars + CI secrets | |\n| | **Intended User** | Developer, learner | Production operator | CI/CD automation | |\n| | **Best For** | Local testing, prototyping | Team deployments, HA | Automated testing | |\n\n---\n\n## Developer Profile: Fast Local Setup\n\n### When to Use\n\n- **First-time users**: Get provisioning working quickly\n- **Local development**: Test infrastructure on your machine\n- **Learning**: Understand provisioning concepts\n- **Prototyping**: Rapid iteration on configurations\n- **Single-user setup**: Personal workstation only\n\n### What Gets Created\n\n**Config Files** (all Nickel, type-safe):\n- `system.ncl` - System detection (auto-detected, read-only)\n- `user_preferences.ncl` - User settings (recommended defaults)\n- `platform/deployment.ncl` - Local Docker Compose setup\n- `providers/local.ncl` - Local provider (no credentials)\n\n**Services** (Docker Compose):\n- Orchestrator (port 9090)\n- Control Center (port 3000)\n- KMS service (port 3001)\n\n**Storage Location**:\n- macOS: `~/Library/Application Support/provisioning/`\n- Linux: `~/.config/provisioning/`\n\n### System Requirements\n\n**Minimum**:\n- OS: macOS (10.14+) or Linux\n- CPU: 2 cores\n- Memory: 4 GB RAM\n- Disk: 2 GB free\n\n**Recommended**:\n- CPU: 4+ cores\n- Memory: 8+ GB RAM\n- Disk: 10 GB free\n\n**Dependencies**:\n- Nushell (0.109.0+)\n- Nickel (1.5.0+)\n- Docker (latest)\n\n### Step-by-Step Walkthrough\n\n#### Step 1: Run Setup\n\n```\nprovisioning setup profile --profile developer\n```\n\nOutput:\n```\n╔═══════════════════════════════════════════════════════╗\n║ PROVISIONING SYSTEM SETUP - DEVELOPER PROFILE ║\n╚═══════════════════════════════════════════════════════╝\n\nEnvironment Detection\n OS: macOS (15.2.0)\n Architecture: aarch64\n CPU Count: 8\n Memory: 16 GB\n Disk: 500 GB\n\n✓ Detected capabilities: Docker\n✓ Configuration location: ~/Library/Application Support/provisioning/\n\nSetup Profile: DEVELOPER\n```\n\n#### Step 2: Auto-Detection\n\nSystem automatically detects:\n- Operating system (macOS/Linux)\n- Architecture (aarch64/x86_64)\n- CPU and memory\n- Available deployment tools (Docker, Kubernetes, etc.)\n\n**You see**: Detection summary, no prompts\n\n#### Step 3: Configuration Generation\n\nCreates three Nickel configs:\n\n**system.ncl** - System info (read-only):\n```\n{\n version = "1.0.0",\n config_base_path = "/Users/user/Library/Application Support/provisioning",\n os_name = 'macos,\n os_version = "15.2.0",\n system_architecture = 'aarch64,\n cpu_count = 8,\n memory_total_gb = 16,\n disk_total_gb = 500,\n setup_date = "2026-01-13T12:34:56Z"\n}\n| SystemConfig\n```\n\n**platform/deployment.ncl** - Deployment config (can edit):\n```\n{\n deployment = {\n mode = 'docker_compose,\n location_type = 'local,\n },\n services = {\n orchestrator = {\n endpoint = "http://localhost:9090/health",\n tim