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

# Deploy your first Pod

> Run code on a remote GPU in minutes.

export const PyTorchTooltip = () => {
  return <Tooltip headline="PyTorch" tip="An open-source machine learning framework for building and training neural networks, widely used for deep learning research and production deployments." cta="Read the PyTorch documentation" href="https://pytorch.org/projects/pytorch/">PyTorch</Tooltip>;
};

export const TemplateTooltip = () => {
  return <Tooltip headline="Template" tip="A pre-configured Pod setup that bundles a Docker image with hardware specs, network settings, and environment variables for quick deployment." cta="Learn more about templates" href="/pods/templates/overview">template</Tooltip>;
};

export const NetworkVolumeTooltip = () => {
  return <Tooltip headline="Network volume" tip="Persistent storage that exists independently of your other compute resources. Can be attached to multiple Pods or Serverless endpoints to share data between machines." cta="Learn more about network volumes" href="/storage/network-volumes">network volume</Tooltip>;
};

export const PodTooltip = () => {
  return <Tooltip headline="Pod" tip="A dedicated GPU or CPU instance for containerized AI/ML workloads." cta="Learn more about Pods" href="/pods/overview">Pod</Tooltip>;
};

Follow this guide to learn how to create an account, deploy your first GPU <PodTooltip />, and use it to execute code remotely.

## Step 1: Create an account

Start by creating a Runpod account:

1. [Sign up here](https://www.console.runpod.io/signup).
2. Verify your email address.
3. Set up two-factor authentication (recommended for security).

## Step 2: Deploy a Pod

Now that you've created your account, you're ready to deploy your first Pod:

<Tabs>
  <Tab title="Web">
    1. Open the [Pods page](https://www.console.runpod.io/pods) in the web interface.
    2. Click the **Deploy** button.
    3. Select **A40** from the list of graphics cards (or any other GPU that's available).
    4. In the field under **Pod Name**, enter the name **quickstart-pod**.
    5. Keep all other fields (Pod Template, GPU Count, and Instance Pricing) on their default settings.
    6. Click **Deploy On-Demand** to deploy and start your Pod. You'll be redirected back to the Pods page after a few seconds.

    <Note>
      If you haven't set up payments yet, you'll be prompted to add a payment method and purchase credits for your account.
    </Note>
  </Tab>

  <Tab title="Terminal">
    First, install the [Runpod CLI](/runpodctl/overview) on your local machine and configure it with your API key:

    ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
    # Install runpodctl
    bash <(wget -qO- cli.runpod.io)

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

    Then deploy your Pod:

    ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
    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:

    ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      "id": "uv9wy55tyv30lo",
      "name": "quickstart-pod",
      "desiredStatus": "RUNNING",
      ...
    }
    ```

    Save it for later:

    ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
    export RUNPOD_POD_ID="uv9wy55tyv30lo"
    ```
  </Tab>
</Tabs>

## Step 3: Execute code on your Pod

Once your Pod finishes initializing, connect and run some code:

<Tabs>
  <Tab title="Web">
    1. On the [Pods page](https://www.console.runpod.io/pods), click your Pod to open the detail pane.
    2. Under **HTTP Services**, click **Jupyter Lab** to open a JupyterLab workspace.
    3. Under **Notebook**, select **Python 3 (ipykernel)**.
    4. Type `print("Hello, world!")` in the first cell and click the play button.
  </Tab>

  <Tab title="Terminal">
    <Note>
      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 the SSH command for your Pod:

    ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
    runpodctl ssh info $RUNPOD_POD_ID
    ```

    The output includes the SSH command to connect:

    ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      "sshCommand": "ssh root@194.68.245.207 -p 22100 -i ~/.ssh/id_ed25519"
    }
    ```

    Use this command to connect and run code:

    ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
    ssh root@194.68.245.207 -p 22100
    python3 -c "print('Hello, world!')"
    ```
  </Tab>
</Tabs>

<Check>
  Congratulations! You just ran your first line of code on Runpod.
</Check>

## Step 4: Clean up

To avoid incurring unnecessary charges, clean up your Pod resources.

<Danger>
  Terminating a Pod permanently deletes all data that isn't stored in a <NetworkVolumeTooltip />. Be sure that you've saved any data you might need to access again.
</Danger>

<Tabs>
  <Tab title="Web">
    To stop your Pod:

    1. Return to the [Pods page](https://www.console.runpod.io/pods) and click your running Pod.
    2. Click the **Stop** button (pause icon) to stop your Pod.
    3. Click **Stop Pod** in the modal that opens to confirm.

    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, you should terminate it completely.

    To terminate your Pod:

    1. Click the **Terminate** button (trash icon).
    2. Click **Terminate Pod** to confirm.
  </Tab>

  <Tab title="Terminal">
    Stop your Pod:

    ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
    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 theme={"theme":{"light":"github-light","dark":"github-dark"}}
    runpodctl pod delete $RUNPOD_POD_ID
    ```
  </Tab>
</Tabs>

## Next steps

<CardGroup cols={2}>
  <Card title="Generate API keys" href="/get-started/api-keys" icon="key" horizontal>
    Create API keys for programmatic resource management.
  </Card>

  <Card title="Manage your account" href="/get-started/manage-accounts" icon="users" horizontal>
    Create teams and invite collaborators.
  </Card>

  <Card title="Choose the right Pod" href="/pods/choose-a-pod" icon="server" horizontal>
    Learn how to select the best Pod for your workload.
  </Card>

  <Card title="Pod pricing" href="/pods/pricing" icon="dollar-sign" horizontal>
    Review pricing options for Pods.
  </Card>

  <Card title="Explore tutorials" href="/tutorials/introduction/overview" icon="book" horizontal>
    Follow step-by-step guides for specific AI/ML use cases.
  </Card>

  <Card title="Runpod Serverless" href="/serverless/overview" icon="cloud" horizontal>
    Start building production-ready applications.
  </Card>
</CardGroup>

## Need help?

* Join the Runpod community [on Discord](https://discord.gg/cUpRmau42V).
* Submit a support request using our [contact page](https://contact.runpod.io/hc/requests/new).
* Reach out to us via [email](mailto:help@runpod.io).
