# Getting Started

Your journey to infrastructure automation starts here. This section guides you from zero to your first successful deployment in minutes.

## Overview

Getting started with Provisioning involves:

- **Verifying prerequisites** - System requirements, tools, cloud accounts
- **Installing platform** - Binary or container installation
- **Initial configuration** - Environment setup, credentials, workspaces
- **First deployment** - Deploy actual infrastructure in 5 minutes
- **Verification** - Validate everything is working correctly

By the end of this section, you'll have a running Provisioning installation and have deployed your first infrastructure.

## Quick Start Guides

### Starting from Scratch

- **[Prerequisites](./prerequisites.md)** - System requirements (Nushell 0.109.1+, Docker/Podman optional), cloud account setup, tool installation.

- **[Installation](./installation.md)** - Step-by-step installation: binary download, container, or source build with platform verification.

- **[Quick Start](./quick-start.md)** - 5-minute guide: install → configure → deploy infrastructure (requires 5 minutes and your AWS/UpCloud credentials).

- **[First Deployment](./first-deployment.md)** - Deploy your first infrastructure: create workspace, configure provider, deploy resources, verify success.

- **[Verification](./verification.md)** - Validate installation: check system health, test CLI commands, verify cloud integration, confirm resource creation.

## What You'll Learn

By completing this section, you'll know how to:

1. ✅ Install and configure Provisioning
2. ✅ Create your first workspace
3. ✅ Configure cloud providers (AWS, UpCloud, Hetzner, etc.)
4. ✅ Write simple Nickel infrastructure definitions
5. ✅ Deploy infrastructure using Provisioning
6. ✅ Verify and manage deployed resources

## Prerequisites Checklist

Before starting, verify you have:

- [ ] Linux, macOS, or Windows with WSL2
- [ ] Nushell 0.109.1 or newer (`nu --version`)
- [ ] 2GB+ RAM and 100MB disk space
- [ ] Internet connectivity
- [ ] Cloud account (AWS, UpCloud, Hetzner, or local demo mode)
- [ ] Access credentials or API tokens for cloud provider

Missing something? See [Prerequisites](./prerequisites.md) for detailed instructions.

## 5-Minute Quick Start

If you're impatient, here's the ultra-quick path:

```bash
# 1. Install (2 minutes)
curl -fsSL  [https://provisioning.io/install.sh](https://provisioning.io/install.sh) | sh

# 2. Verify installation (30 seconds)
provisioning --version
provisioning status

# 3. Create workspace (30 seconds)
provisioning workspace create --name demo

# 4. Add cloud provider (1 minute)
provisioning config set --workspace demo \
  providers.aws.region us-east-1 \
  providers.aws.credentials_source aws_iam

# 5. Deploy infrastructure (1 minute)
provisioning deploy --workspace demo \
  --config examples/simple-instance.ncl

# 6. Verify (30 seconds)
provisioning resource list --workspace demo
```

For detailed walkthrough, see [Quick Start](./quick-start.md).

## Installation Methods

### Option 1: Binary (Recommended)
```bash
# Download and extract
curl -fsSL  [https://provisioning.io/provisioning-latest-linux.tar.gz](https://provisioning.io/provisioning-latest-linux.tar.gz) | tar xz
sudo mv provisioning /usr/local/bin/
provisioning --version
```

### Option 2: Container
```bash
docker run -it provisioning/provisioning:latest \
  provisioning --version
```

### Option 3: Build from Source
```bash
git clone  [https://github.com/provisioning/provisioning.git](https://github.com/provisioning/provisioning.git)
cd provisioning
cargo build --release
./target/release/provisioning --version
```

See [Installation](./installation.md) for detailed instructions.

## Next Steps After Installation

1. **Read [Quick Start](./quick-start.md)** - 5-minute walkthrough
2. **Complete [First Deployment](./first-deployment.md)** - Deploy real infrastructure
3. **Run [Verification](./verification.md)** - Validate system health
4. **Move to [Guides](../guides/)** - Learn advanced features
5. **Explore [Examples](../examples/)** - Real-world scenarios

## Common Questions

**Q: How long does installation take?**
A: 5-10 minutes including cloud credential setup.

**Q: What if I don't have a cloud account?**
A: Try our demo provider in local mode - no cloud account needed.

**Q: Can I use Provisioning offline?**
A: Yes, with local provider. Cloud operations require internet.

**Q: What's the learning curve?**
A: 30 minutes for basics, days to master advanced features.

**Q: Where do I get help?**
A: See [Getting Help](../guides/getting-help.md) or [Troubleshooting](../troubleshooting/).

## Architecture Overview

Provisioning works in these steps:

```text
1. Install Platform
   ↓
2. Create Workspace
   ↓
3. Add Cloud Provider Credentials
   ↓
4. Write Nickel Configuration
   ↓
5. Deploy Infrastructure
   ↓
6. Monitor & Manage
```

## What's Next

After getting started:

- **Learn features** → See [Features](../features/)
- **Build infrastructure** → See [Examples](../examples/)
- **Write guides** → See [Guides](../guides/)
- **Understand architecture** → See [Architecture](../architecture/)
- **Develop extensions** → See [Development](../development/)

## Getting Help

If you get stuck:

1. Check [Troubleshooting](../troubleshooting/common-issues.md)
2. Review [Guides](../guides/) for similar scenarios
3. Search [Examples](../examples/) for your use case
4. Ask in community forums or open a GitHub issue

## Related Documentation

- **Full Guides** → See `provisioning/docs/src/guides/`
- **Examples** → See `provisioning/docs/src/examples/`
- **Architecture** → See `provisioning/docs/src/architecture/`
- **Features** → See `provisioning/docs/src/features/`
- **API Reference** → See `provisioning/docs/src/api-reference/`
