Back to Eliza

Deploy to Eliza Cloud

packages/docs/guides/deploy-to-cloud.mdx

1.7.27.0 KB
Original Source

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
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 elizaos login ``` Opens your browser for auth. Your API key is saved automatically. </Step> <Step title="Deploy"> ```bash 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
elizaos deploy \
  --project-name my-agent \
  --env "OPENAI_API_KEY=sk-xxx" \
  --env "DATABASE_URL=postgresql://..."

Scale Resources

bash
elizaos deploy \
  --project-name my-agent \
  --cpu 512 \
  --memory 1024 \
  --desired-count 2  # Multiple instances
OptionDefaultDescription
--cpu1792CPU units (1792 = 1.75 vCPU)
--memory1792Memory in MB (1792 = 1.75 GiB)
--desired-count1Number of container instances
--port3000Container port

Update Your Agent

Same command, zero downtime:

bash
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
elizaos containers list

Check Logs

bash
# Real-time logs
elizaos containers logs --follow

# Last 200 lines
elizaos containers logs --tail 200

Remove a Deployment

bash
elizaos containers delete --project-name my-agent

Troubleshooting

Login Issues

"Browser didn't open"

bash
elizaos login --no-browser

"Authentication timed out"

bash
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

CommandDescription
elizaos loginAuthenticate (opens browser)
elizaos login --no-browserAuthenticate without browser
elizaos login --timeout 600Custom timeout (seconds)

Deployment

CommandDescription
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-buildSkip Docker build
elizaos deploy --platform <arch>Set Docker platform

Container Management

CommandDescription
elizaos containers listList all deployments
elizaos containers list --jsonList as JSON
elizaos containers logsView logs
elizaos containers logs --followFollow log output
elizaos containers logs --tail <n>Show last N lines
elizaos containers deleteDelete deployment
elizaos containers delete --forceDelete 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>