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

# Migrate from Hetzner

> Move a workload off a Hetzner Cloud Server onto a persistent Orgo cloud computer: concept mapping, the clean way to transfer state, and the honest differences.

You run workloads on Hetzner Cloud as [**Servers**](https://docs.hetzner.com/cloud/servers/overview/): Linux VMs you provision, SSH into, and administer yourself. Orgo gives an AI agent a full, always-on **computer** (browser, shell, and files) that it drives over the HTTP API, the `orgo` CLI, or MCP. This page maps the two and shows the cleanest way to move.

<Info>
  **Doing this with an agent?** Paste this page into Claude Code or Codex as context. Every command is copy-paste and self-contained, so the agent can run the switch end to end.
</Info>

## How the platforms map

| Hetzner Cloud | Orgo |
| - | - |
| Server (Linux VM) | A **computer** (`POST /computers`) |
| `ssh root@<server-ip>` | `POST /computers/{id}/bash`, or `orgo ssh <name>` |
| Server disk | The computer's disk, persistent by default |
| [Snapshot](https://docs.hetzner.com/cloud/servers/getting-started/taking-snapshots/) | `POST /computers/{id}/clone` |
| [Primary/Floating IP](https://docs.hetzner.com/cloud/servers/primary-ips/overview/) + [Firewall](https://docs.hetzner.com/cloud/firewalls/overview/) | No public per-computer IP. Reach it via the authenticated proxy: `www.orgo.ai/api/desktops/{instance_id}/proxy/<path>` |

## Move your state

Orgo runs any shell command inside the computer via `POST /computers/{id}/bash`. The cleanest transfer is to **pull your data in from inside the computer**: no size limits, no laptop round-trip.

**Recommended: via a Git repo.** Push the state you want to keep to a private repo, then clone it inside the Orgo computer:

<CodeGroup>
  ```bash 1. Extract on the Hetzner server theme={null}
  ssh root@<server-ip> "tar czf /tmp/state.tgz -C /root ."
  scp root@<server-ip>:/tmp/state.tgz ./state.tgz
  # Commit state.tgz (or the raw dir) to a private repo.
  ```

  ```bash 2. Pull inside the Orgo computer theme={null}
  curl -X POST https://www.orgo.ai/api/computers/$COMPUTER_ID/bash \
    -H "Authorization: Bearer $ORGO_API_KEY" -H "Content-Type: application/json" \
    -d '{"command":"git clone https://TOKEN@github.com/you/your-state.git ~/state && tar xzf ~/state/state.tgz -C ~"}'
  ```
</CodeGroup>

**Alternatives**

* **Any URL.** Host the tarball anywhere reachable and `curl`/`wget` it from inside the computer the same way. A Git repo is the tidiest, versioned option.
* **Small files (\< 10 MB).** `POST /files/upload` drops a file straight onto the computer. It caps at **10 MB**. For larger state, use the Git or URL pull above, or split into \< 10 MB batches.

Reference: [Connecting to the server](https://docs.hetzner.com/cloud/servers/getting-started/connecting-to-the-server/), [Migrate data](https://docs.hetzner.com/cloud/servers/getting-started/migrate-data/) (Hetzner's own doc uses `scp`).

## Set up on Orgo

```bash theme={null}
curl -X POST https://www.orgo.ai/api/computers \
  -H "Authorization: Bearer $ORGO_API_KEY" -H "Content-Type: application/json" \
  -d "{\"workspace_id\":\"$WORKSPACE_ID\",\"name\":\"prod\",\"ram\":8}"
# → save the returned id as $COMPUTER_ID, then run your installer via /bash
```

See the [Quickstart](/quickstart) for the full control surface (`bash`, `exec`, `screenshot`, click/type).

## What's different

Neutral, both directions:

* **Hetzner does, Orgo doesn't:** a general-purpose Linux server you fully own, with arbitrary services and ports, managed networking ([primary/floating IPs](https://docs.hetzner.com/cloud/servers/primary-ips/overview/), [firewalls](https://docs.hetzner.com/cloud/firewalls/overview/), private networks), and built-in daily [backups + persistent snapshots](https://docs.hetzner.com/cloud/servers/backups-snapshots/overview/).
* **Orgo does, Hetzner doesn't out of the box:** a persistent GUI **computer** with a built-in agent-control API (screenshot / click / type), online in seconds, with nothing to administer. You manage no OS, no firewall, and no TLS. A Hetzner server has no public network interface until you assign a [Primary IP](https://docs.hetzner.com/cloud/servers/primary-ips/overview/). Orgo exposes its API through an authenticated proxy instead.

Rule of thumb: keep general server workloads and public-facing services on Hetzner. Move to Orgo when the job is an **agent operating a durable computer or browser**.

## Reference

<CardGroup cols={2}>
  <Card title="Hetzner Cloud Servers" icon="server" href="https://docs.hetzner.com/cloud/servers/overview/">Their VM</Card>
  <Card title="Migrate data" icon="terminal" href="https://docs.hetzner.com/cloud/servers/getting-started/migrate-data/">scp file transfer</Card>
  <Card title="Orgo Quickstart" icon="rocket" href="/quickstart">Control a computer over HTTP</Card>
  <Card title="Move an agent (Hermes/OpenClaw)" icon="robot" href="/guides/migrate">Full state-preserving playbook</Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.