> ## 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 Linux **desktop** (browser + shell + files) that it drives over an HTTP API. 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-VM 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`, so the cleanest transfer is to **pull your data in from inside the machine** - 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 VM the same way - a Git repo is just the tidiest, versioned option.
* **Small files (\< 10 MB).** `POST /files/upload` drops a file straight onto the desktop. 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,"cpu":4}'
# → 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 - arbitrary services and ports, CPU/RAM rescaling, 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 **desktop** with a built-in agent-control API (screenshot / click / type), sub-second boot, and nothing to administer - no OS, firewall, or TLS to manage. (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 desktop 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>
