> ## Documentation Index
> Fetch the complete documentation index at: https://iwrap.snkres.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quick Start

> Get up and running with iwrap in 5 minutes

***

## Powered by

<a href="https://snkres.com" target="_blank">
  <img src="https://mintcdn.com/snkres/rVnT6F-rk3N1YQ3N/logo/snkres.svg?fit=max&auto=format&n=rVnT6F-rk3N1YQ3N&q=85&s=3f8b091fc96b313a653e42c98e6bd50e" alt="SnkRes" width="120" data-path="logo/snkres.svg" />
</a>

*iwrap is developed and maintained by [SnkRes](https://snkres.com)*

# Quick Start

This guide will help you get started with iwrap and deploy your first infrastructure in just a few minutes.

## Prerequisites

Before you begin, ensure you have:

* **Node.js 18+** (if installing via npm)
* **Terraform 1.0+** installed and in your PATH
* **AWS CLI** configured with credentials
* **AWS account** with appropriate permissions

<Warning>
  Make sure Terraform is accessible from your terminal. You can verify by running `terraform version`.
</Warning>

## Installation

Choose your preferred installation method:

<Tabs>
  <Tab title="npm">
    ```bash theme={null}
    npm install -g iwrap
    ```

    Verify installation:

    ```bash theme={null}
    iwrap --version
    ```
  </Tab>

  <Tab title="Homebrew">
    ```bash theme={null}
    brew install iwrap
    ```

    Verify installation:

    ```bash theme={null}
    iwrap --version
    ```
  </Tab>

  <Tab title="Manual">
    Download the latest release from [GitHub Releases](https://github.com/snkres/iwrap/releases).

    Extract and add to your PATH:

    ```bash theme={null}
    # Example for macOS/Linux
    chmod +x iwrap
    sudo mv iwrap /usr/local/bin/

    # Verify
    iwrap --version
    ```
  </Tab>
</Tabs>

## Deploy Your First Infrastructure

Follow these steps to get your first deployment up and running:

<Steps>
  <Step title="Initialize Project">
    Create a new directory and initialize your iwrap project:

    ```bash theme={null}
    mkdir my-infrastructure
    cd my-infrastructure
    iwrap init
    ```

    This creates:

    * `config/` directory with example configuration files
    * `terraform/` directory structure
    * `templates/` directory with code templates

    <Info>
      The `iwrap init` command sets up a complete project structure with example configurations you can customize.
    </Info>
  </Step>

  <Step title="Configure AWS Account">
    Add your AWS account. You can use auto-detection (recommended) or add manually:

    <CodeGroup>
      ```bash Auto-Detection (Recommended) theme={null}
      # Detect accounts from your AWS CLI configuration
      iwrap account detect

      # Import the detected account
      iwrap account import production
      ```

      ```bash Manual theme={null}
      # Add account manually with specific profile and regions
      iwrap account add dev-account \
        --profile my-aws-profile \
        --region us-east-1 \
        --regions us-east-1,us-west-2
      ```
    </CodeGroup>

    Set the active account:

    ```bash theme={null}
    iwrap account set dev-account
    ```

    <Warning>
      Make sure your AWS credentials are configured correctly. Run `aws configure list` to verify.
    </Warning>
  </Step>

  <Step title="Define Services">
    Edit `config/services.yaml` to define your services. Here's an example for an ECS service:

    ```yaml config/services.yaml theme={null}
    services:
      - name: api-service
        type: ecs
        image: myapp/api:latest
        port: 8080
        cpu: 512
        memory: 1024
        count:
          min: 1
          max: 10
          desired: 2
        environment: dev
    ```

    For more service types and configuration options, see the [Service Configuration Guide](/guides/services).
  </Step>

  <Step title="Plan Deployment">
    Before deploying, review what will be created:

    ```bash theme={null}
    iwrap deploy plan --env dev
    ```

    This shows you a Terraform plan of all resources that will be created, modified, or destroyed.
  </Step>

  <Step title="Deploy">
    Deploy your infrastructure to the dev environment:

    ```bash theme={null}
    iwrap deploy --env dev
    ```

    The deployment will:

    * Validate your configuration
    * Generate Terraform files
    * Apply the Terraform plan
    * Display deployment status

    <Info>
      Use the `--auto-approve` flag to skip confirmation prompts in CI/CD pipelines.
    </Info>
  </Step>
</Steps>

## What's Next?

Now that you've deployed your first infrastructure, explore these resources:

<CardGroup cols={3}>
  <Card title="Account Management" icon="network" href="/guides/accounts">
    Learn how to manage multiple AWS accounts and regions
  </Card>

  <Card title="Service Configuration" icon="server" href="/guides/services">
    Deep dive into service configuration options
  </Card>

  <Card title="Deployment Strategies" icon="rocket" href="/guides/deployments">
    Explore Blue/Green, Canary, and Rolling deployments
  </Card>

  <Card title="Monitoring" icon="chart-line" href="/guides/monitoring">
    Set up monitoring and observability
  </Card>

  <Card title="Command Reference" icon="terminal" href="/reference/commands">
    Complete command reference
  </Card>

  <Card title="Advanced Topics" icon="cog" href="/guides/advanced">
    Advanced configuration and usage patterns
  </Card>
</CardGroup>
