> ## 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 DigitalOcean

> Move a workload off a DigitalOcean Droplet onto a persistent Orgo cloud computer - concept mapping, the clean way to transfer state, and the honest differences.

You run workloads on DigitalOcean as [**Droplets**](https://docs.digitalocean.com/products/droplets/) - 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

| DigitalOcean                                                                                                                                                                                                                    | Orgo                                                                                                              |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Droplet (Linux VM)                                                                                                                                                                                                              | A **computer** (`POST /computers`)                                                                                |
| `ssh root@<droplet-ip>` / `doctl compute ssh`                                                                                                                                                                                   | `POST /computers/{id}/bash`, or `orgo ssh <name>`                                                                 |
| Droplet disk                                                                                                                                                                                                                    | The computer's disk - persistent by default                                                                       |
| [Snapshot](https://docs.digitalocean.com/products/snapshots/)                                                                                                                                                                   | `POST /computers/{id}/clone`                                                                                      |
| [Reserved IP](https://docs.digitalocean.com/products/networking/reserved-ips/) + [Cloud Firewall](https://docs.digitalocean.com/products/networking/firewalls/) + [DNS](https://docs.digitalocean.com/products/networking/dns/) | 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. (DigitalOcean snapshots [can't be downloaded off-platform](https://docs.digitalocean.com/products/snapshots/), so pull the files over SSH rather than exporting an image.)

**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 Droplet theme={null}
  ssh root@<droplet-ip> "tar czf /tmp/state.tgz -C /root ."
  scp root@<droplet-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: [Connect via SSH](https://docs.digitalocean.com/products/droplets/how-to/connect-with-ssh/), [Transfer files](https://docs.digitalocean.com/products/droplets/how-to/transfer-files/) (`scp`/`rsync` are standard OpenSSH tools).

## 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:

* **DigitalOcean does, Orgo doesn't:** a general-purpose Linux server you fully own - arbitrary services and ports, many hardware tiers (incl. GPU), first-class public networking ([reserved IPs](https://docs.digitalocean.com/products/networking/reserved-ips/), [managed DNS](https://docs.digitalocean.com/products/networking/dns/), [firewalls](https://docs.digitalocean.com/products/networking/firewalls/), load balancers), and scheduled [backups](https://docs.digitalocean.com/products/backups/).
* **Orgo does, DigitalOcean 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 (Droplet firewalls are default-deny), or TLS to manage.

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

## Reference

<CardGroup cols={2}>
  <Card title="DigitalOcean Droplets" icon="droplet" href="https://docs.digitalocean.com/products/droplets/">Their VM</Card>
  <Card title="Transfer files" icon="terminal" href="https://docs.digitalocean.com/products/droplets/how-to/transfer-files/">scp / rsync / SFTP</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>
