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

# Deploy to Eliza Cloud

> Ship your agent with a single command - infrastructure and monitoring handled for you

## Why Eliza Cloud?

You built an agent. Now you need it running 24/7, accessible from anywhere, with proper monitoring.

The traditional path: write a Dockerfile, configure cloud infrastructure, set up load balancing, create CI/CD pipelines, manage SSL certificates, configure health checks...

**With Eliza Cloud: two commands.**

```bash theme={null}
elizaos login
elizaos deploy --project-name my-agent
```

That's not a simplified example. That's the entire deployment process.

<CardGroup cols={3}>
  <Card title="5 minutes" icon="clock">
    From code to production URL
  </Card>

  <Card title="Zero config" icon="wand-magic-sparkles">
    No infrastructure setup needed
  </Card>

  <Card title="Built for elizaOS" icon="microchip">
    Optimized for agent workloads
  </Card>
</CardGroup>

Beyond deployment: on-chain agent discovery (ERC-8004), crypto payments (X402), and a marketplace to publish and monetize your agents.

***

## Quick Start

<Steps>
  <Step title="Sign up">
    Create your account at [elizacloud.ai](https://elizacloud.ai)
  </Step>

  <Step title="Login from CLI">
    ```bash theme={null}
    elizaos login
    ```

    Opens your browser for auth. Your API key is saved automatically.
  </Step>

  <Step title="Deploy">
    ```bash theme={null}
    elizaos deploy --project-name my-agent
    ```

    First deploy: \~5 min. Updates: \~2 min.
  </Step>
</Steps>

<Tip>
  **That's it.** You now have a production agent at `https://{userId}-{project-name}.containers.elizacloud.ai`
</Tip>

***

## What You Get

Every deployment includes:

<CardGroup cols={2}>
  <Card title="Dedicated EC2 Instance" icon="server">
    Your own t4g.small ARM server, not shared resources
  </Card>

  <Card title="HTTPS by Default" icon="lock">
    SSL certificates handled automatically
  </Card>

  <Card title="Health Monitoring" icon="heart-pulse">
    24/7 checks with automatic alerting
  </Card>

  <Card title="Zero-Downtime Updates" icon="rotate">
    Push updates without interruption
  </Card>

  <Card title="Persistent URL" icon="link">
    Same URL across all deployments
  </Card>

  <Card title="Real-time Logs" icon="terminal">
    `elizaos containers logs --follow`
  </Card>
</CardGroup>

Under the hood, the CLI builds your Docker image, pushes it to AWS ECR, and deploys to a dedicated EC2 instance with load balancing configured.

## Customize Your Deployment

The defaults work for most agents. When you need more control:

### Add Environment Variables

```bash theme={null}
elizaos deploy \
  --project-name my-agent \
  --env "OPENAI_API_KEY=sk-xxx" \
  --env "DATABASE_URL=postgresql://..."
```

### Scale Resources

```bash theme={null}
elizaos deploy \
  --project-name my-agent \
  --cpu 512 \
  --memory 1024 \
  --desired-count 2  # Multiple instances
```

| Option            | Default | Description                    |
| ----------------- | ------- | ------------------------------ |
| `--cpu`           | 1792    | CPU units (1792 = 1.75 vCPU)   |
| `--memory`        | 1792    | Memory in MB (1792 = 1.75 GiB) |
| `--desired-count` | 1       | Number of container instances  |
| `--port`          | 3000    | Container port                 |

### Update Your Agent

Same command, zero downtime:

```bash theme={null}
elizaos deploy --project-name my-agent
```

The CLI detects it's an update and rolls out changes without interruption.

***

## Managing Deployments

### View Your Agents

```bash theme={null}
elizaos containers list
```

### Check Logs

```bash theme={null}
# Real-time logs
elizaos containers logs --follow

# Last 200 lines
elizaos containers logs --tail 200
```

### Remove a Deployment

```bash theme={null}
elizaos containers delete --project-name my-agent
```

## Troubleshooting

### Login Issues

**"Browser didn't open"**

```bash theme={null}
elizaos login --no-browser
```

**"Authentication timed out"**

```bash theme={null}
elizaos login --timeout 600
```

**"API key not found after login"**

* Ensure you ran `elizaos login` from your project directory
* Check `.env` for `ELIZAOS_CLOUD_API_KEY`
* Verify the key starts with `eliza_`

### Deployment Issues

**"Docker not running"**

Start Docker Desktop, then verify with `docker info`.

**"API key invalid"**

* Check you copied the full key (starts with `eliza_`)
* Verify: `echo $ELIZAOS_CLOUD_API_KEY`

**"Build failed"**

* Ensure your project has a `Dockerfile`
* Check Docker has enough resources (Settings → Resources)
* Try: `docker build .`

**"Deployment stuck"**

* Check logs: `elizaos containers logs --project-name my-agent`
* Verify you have credits in your account

## CLI Reference

### Authentication

| Command                       | Description                  |
| ----------------------------- | ---------------------------- |
| `elizaos login`               | Authenticate (opens browser) |
| `elizaos login --no-browser`  | Authenticate without browser |
| `elizaos login --timeout 600` | Custom timeout (seconds)     |

### Deployment

| Command                                | Description                        |
| -------------------------------------- | ---------------------------------- |
| `elizaos deploy --project-name <name>` | Deploy with project name           |
| `elizaos deploy --api-key <key>`       | Deploy with explicit API key       |
| `elizaos deploy --port <port>`         | Set container port (default: 3000) |
| `elizaos deploy --cpu <units>`         | Set CPU units (default: 1792)      |
| `elizaos deploy --memory <mb>`         | Set memory in MB (default: 1792)   |
| `elizaos deploy --desired-count <n>`   | Set instance count (default: 1)    |
| `elizaos deploy --env "KEY=VALUE"`     | Add environment variable           |
| `elizaos deploy --skip-build`          | Skip Docker build                  |
| `elizaos deploy --platform <arch>`     | Set Docker platform                |

### Container Management

| Command                              | Description                 |
| ------------------------------------ | --------------------------- |
| `elizaos containers list`            | List all deployments        |
| `elizaos containers list --json`     | List as JSON                |
| `elizaos containers logs`            | View logs                   |
| `elizaos containers logs --follow`   | Follow log output           |
| `elizaos containers logs --tail <n>` | Show last N lines           |
| `elizaos containers delete`          | Delete deployment           |
| `elizaos containers delete --force`  | Delete without confirmation |

## Environment Variables

The CLI looks for API keys in this order:

1. `--api-key` flag (if provided)
2. `ELIZAOS_API_KEY` environment variable
3. `ELIZAOS_CLOUD_API_KEY` environment variable
4. `ELIZAOS_CLOUD_API_KEY` in project `.env` file

The `elizaos login` command writes to `ELIZAOS_CLOUD_API_KEY` in your project's `.env` file.

## Next Steps

<CardGroup cols={2}>
  <Card title="TEE Integration" icon="shield-halved" href="/guides/tee-integration">
    Deploy with Trusted Execution Environment for enhanced security
  </Card>

  <Card title="Self-Hosted Options" icon="server" href="/guides/deploy-a-project#option-2-self-hosted">
    Full control with your own infrastructure
  </Card>
</CardGroup>
