Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .claude/commands/test.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Run a test from the testing framework to validate documentation quality.

| Category | Tests | Description |
|----------|-------|-------------|
| `smoke` | 12 | Fast tests, no GPU deploys |
| `smoke` | 13 | Fast tests, no GPU deploys |
| `flash` | 13 | Flash SDK tests |
| `serverless` | 20 | Serverless endpoint tests |
| `vllm` | 6 | vLLM deployment tests |
Expand All @@ -32,7 +32,7 @@ Run a test from the testing framework to validate documentation quality.
| `templates` | 6 | Template tests |
| `clusters` | 4 | Instant Cluster tests |
| `sdk` | 8 | SDK and API tests |
| `cli` | 6 | runpodctl tests |
| `cli` | 16 | runpodctl tests |
| `integrations` | 4 | Third-party integrations |
| `public` | 3 | Public endpoint tests |
| `tutorials` | 9 | End-to-end tutorials |
Expand Down
64 changes: 53 additions & 11 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -404,19 +404,21 @@
"group": "Runpod CLI",
"pages": [
"runpodctl/overview",
"runpodctl/reference/runpodctl-doctor",
"runpodctl/reference/runpodctl-pod",
"runpodctl/reference/runpodctl-serverless",
"runpodctl/reference/runpodctl-template",
"runpodctl/reference/runpodctl-hub",
"runpodctl/reference/runpodctl-network-volume",
"runpodctl/reference/runpodctl-registry",
"runpodctl/reference/runpodctl-gpu",
"runpodctl/reference/runpodctl-datacenter",
"runpodctl/reference/runpodctl-billing",
"runpodctl/reference/runpodctl-user",
"runpodctl/reference/runpodctl-ssh",
"runpodctl/reference/runpodctl-config",
"runpodctl/reference/runpodctl-create-pod",
"runpodctl/reference/runpodctl-create-pods",
"runpodctl/reference/runpodctl-get-cloud",
"runpodctl/reference/runpodctl-get-pod",
"runpodctl/reference/runpodctl-receive",
"runpodctl/reference/runpodctl-remove-pod",
"runpodctl/reference/runpodctl-remove-pods",
"runpodctl/reference/runpodctl-send",
"runpodctl/reference/runpodctl-ssh-add-key",
"runpodctl/reference/runpodctl-ssh-list-keys",
"runpodctl/reference/runpodctl-start-pod",
"runpodctl/reference/runpodctl-stop-pod",
"runpodctl/reference/runpodctl-receive",
"runpodctl/reference/runpodctl-update",
"runpodctl/reference/runpodctl-version"
]
Expand Down Expand Up @@ -869,6 +871,46 @@
"source": "/runpodctl/reference/runpodctl",
"destination": "/runpodctl/overview"
},
{
"source": "/runpodctl/reference/runpodctl-create-pod",
"destination": "/runpodctl/reference/runpodctl-pod"
},
{
"source": "/runpodctl/reference/runpodctl-create-pods",
"destination": "/runpodctl/reference/runpodctl-pod"
},
{
"source": "/runpodctl/reference/runpodctl-get-pod",
"destination": "/runpodctl/reference/runpodctl-pod"
},
{
"source": "/runpodctl/reference/runpodctl-get-cloud",
"destination": "/runpodctl/reference/runpodctl-datacenter"
},
{
"source": "/runpodctl/reference/runpodctl-remove-pod",
"destination": "/runpodctl/reference/runpodctl-pod"
},
{
"source": "/runpodctl/reference/runpodctl-remove-pods",
"destination": "/runpodctl/reference/runpodctl-pod"
},
{
"source": "/runpodctl/reference/runpodctl-start-pod",
"destination": "/runpodctl/reference/runpodctl-pod"
},
{
"source": "/runpodctl/reference/runpodctl-stop-pod",
"destination": "/runpodctl/reference/runpodctl-pod"
},
{
"source": "/runpodctl/reference/runpodctl-ssh-add-key",
"destination": "/runpodctl/reference/runpodctl-ssh"
},
{
"source": "/runpodctl/reference/runpodctl-ssh-list-keys",
"destination": "/runpodctl/reference/runpodctl-ssh"
},
{
"source": "/get-started/manage-accounts",
"destination": "/accounts-billing/manage-accounts"
Expand Down
49 changes: 18 additions & 31 deletions get-started.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -38,25 +38,23 @@ If you haven't set up payments yet, you'll be prompted to add a payment method a

<Tab title="Terminal">

First, [create an API key](/get-started/api-keys) if you haven't already. Export it as an environment variable:
First, install the [Runpod CLI](/runpodctl/overview) on your local machine and configure it with your API key:

```bash
export RUNPOD_API_KEY="your-api-key"
# Install runpodctl
bash <(wget -qO- cli.runpod.io)

# Configure your API key
runpodctl config --apiKey "your-api-key"
```

Then deploy your Pod:

```bash
curl --request POST \
--url https://rest.runpod.io/v1/pods \
--header "Authorization: Bearer $RUNPOD_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"name": "quickstart-pod",
"imageName": "runpod/pytorch:2.1.0-py3.10-cuda11.8.0-devel-ubuntu22.04",
"gpuTypeIds": ["NVIDIA A40"],
"gpuCount": 1
}'
runpodctl pod create \
--name "quickstart-pod" \
--gpu-id "NVIDIA A40" \
--image "runpod/pytorch:2.1.0-py3.10-cuda11.8.0-devel-ubuntu22.04"
```

The response includes your Pod ID:
Expand Down Expand Up @@ -96,31 +94,24 @@ Once your Pod finishes initializing, connect and run some code:
<Tab title="Terminal">

<Note>
You'll need an [SSH key added to your account](/pods/configuration/use-ssh) for this to work.
You'll need an [SSH key added to your account](/pods/configuration/use-ssh) for this to work. You can run `runpodctl doctor` to set this up automatically.
</Note>

Get your Pod's SSH connection details:
Get the SSH command for your Pod:

```bash
curl --request GET \
--url "https://rest.runpod.io/v1/pods/$RUNPOD_POD_ID" \
--header "Authorization: Bearer $RUNPOD_API_KEY"
runpodctl ssh info $RUNPOD_POD_ID
```

The response includes `publicIp` and `portMappings`:
The output includes the SSH command to connect:

```json
{
"id": "uv9wy55tyv30lo",
"publicIp": "194.68.245.207",
"portMappings": {
"22": 22100
},
...
"sshCommand": "ssh root@194.68.245.207 -p 22100 -i ~/.ssh/id_ed25519"
}
```

Use these values to connect via SSH:
Use this command to connect and run code:

```bash
ssh root@194.68.245.207 -p 22100
Expand Down Expand Up @@ -165,17 +156,13 @@ To terminate your Pod:
Stop your Pod:

```bash
curl --request POST \
--url "https://rest.runpod.io/v1/pods/$RUNPOD_POD_ID/stop" \
--header "Authorization: Bearer $RUNPOD_API_KEY"
runpodctl pod stop $RUNPOD_POD_ID
```

You'll still be charged a small amount for storage on stopped Pods (\$0.20 per GB per month). If you don't need to retain any data on your Pod, terminate it completely:

```bash
curl --request DELETE \
--url "https://rest.runpod.io/v1/pods/$RUNPOD_POD_ID" \
--header "Authorization: Bearer $RUNPOD_API_KEY"
runpodctl pod delete $RUNPOD_POD_ID
```

</Tab>
Expand Down
12 changes: 6 additions & 6 deletions pods/connect-to-a-pod.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,14 @@ Interactive web environment for code, files, and data analysis. Available on tem
Create a Pod with JupyterLab access using the CLI:

```bash
runpodctl create pod \
runpodctl pod create \
--name my-jupyter-pod \
--gpuType "NVIDIA GeForce RTX 4090" \
--imageName "runpod/pytorch:2.1.0-py3.10-cuda11.8.0-devel-ubuntu22.04" \
--containerDiskSize 20 \
--volumeSize 50 \
--gpu-id "NVIDIA GeForce RTX 4090" \
--image "runpod/pytorch:2.1.0-py3.10-cuda11.8.0-devel-ubuntu22.04" \
--container-disk-in-gb 20 \
--volume-in-gb 50 \
--ports "8888/http" \
--env "JUPYTER_PASSWORD=your_secure_password"
--env '{"JUPYTER_PASSWORD":"your_secure_password"}'
```

After the Pod starts, access JupyterLab at `https://[POD_ID]-8888.proxy.runpod.net`.
Expand Down
34 changes: 15 additions & 19 deletions pods/manage-pods.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ runpodctl config --apiKey RUNPOD_API_KEY

| Action | Web UI | CLI |
|--------|-----|-----|
| **Deploy** | [Pods page](https://www.console.runpod.io/pods) → Deploy | `runpodctl create pods --name NAME --gpuType "GPU" --imageName "IMAGE"` |
| **Start** | Expand Pod → Play icon | `runpodctl start pod POD_ID` |
| **Stop** | Expand Pod → Stop icon | `runpodctl stop pod POD_ID` |
| **Update** | Three-dot menu → Edit Pod | |
| **Terminate** | Expand Pod → Trash icon | `runpodctl remove pod POD_ID` |
| **List** | [Pods page](https://www.console.runpod.io/pods) | `runpodctl get pod` |
| **Deploy** | [Pods page](https://www.console.runpod.io/pods) → Deploy | `runpodctl pod create --name NAME --gpu-id "GPU" --image "IMAGE"` |
| **Start** | Expand Pod → Play icon | `runpodctl pod start POD_ID` |
| **Stop** | Expand Pod → Stop icon | `runpodctl pod stop POD_ID` |
| **Update** | Three-dot menu → Edit Pod | `runpodctl pod update POD_ID` |
| **Terminate** | Expand Pod → Trash icon | `runpodctl pod delete POD_ID` |
| **List** | [Pods page](https://www.console.runpod.io/pods) | `runpodctl pod list` |

## Deploy a Pod

Expand Down Expand Up @@ -48,12 +48,12 @@ Deploy preconfigured Pods from the [Runpod Hub](/hub/overview#deploy-as-a-pod) f
<Tab title="CLI">

```sh
runpodctl create pods \
runpodctl pod create \
--name hello-world \
--gpuType "NVIDIA A40" \
--imageName "runpod/pytorch:3.10-2.0.0-117" \
--containerDiskSize 10 \
--volumeSize 100
--gpu-id "NVIDIA A40" \
--image "runpod/pytorch:3.10-2.0.0-117" \
--container-disk-in-gb 10 \
--volume-in-gb 100
```

</Tab>
Expand Down Expand Up @@ -118,12 +118,12 @@ Pods with [network volumes](/storage/network-volumes) attached cannot be stopped
<Tab title="CLI">

```sh
runpodctl stop pod $RUNPOD_POD_ID
runpodctl pod stop $RUNPOD_POD_ID
```

**Schedule a stop** (e.g., after 2 hours):
```sh
sleep 2h; runpodctl stop pod $RUNPOD_POD_ID &
sleep 2h; runpodctl pod stop $RUNPOD_POD_ID &
```

</Tab>
Expand Down Expand Up @@ -154,7 +154,7 @@ Resume a stopped Pod. Note: You may be allocated [zero GPUs](/references/trouble
<Tab title="CLI">

```sh
runpodctl start pod $RUNPOD_POD_ID
runpodctl pod start $RUNPOD_POD_ID
```

</Tab>
Expand Down Expand Up @@ -224,11 +224,7 @@ Terminating permanently deletes all data not stored in a [network volume](/stora
<Tab title="CLI">

```sh
# Single Pod
runpodctl remove pod $RUNPOD_POD_ID

# Bulk remove by name
runpodctl remove pods my-bulk-task --podCount 40
runpodctl pod delete $RUNPOD_POD_ID
```

</Tab>
Expand Down
Empty file removed runpodctl/manage-pods.mdx
Empty file.
Loading
Loading