# First Deployment

This guide walks you through deploying your first server on TeraSwitch. We'll cover both bare metal and cloud options.

### Prerequisites

Before deploying, make sure you have:

1. A TeraSwitch account - Sign up at [console.tsw.io](https://console.tsw.io)
2. An SSH key added to your project (recommended) - See [SSH Keys](/account/ssh-keys.md)
3. Payment method configured in your account settings

### Option 1: Deploy a Metal Server

Bare metal servers provide dedicated hardware with no virtualization overhead. Perfect for high-performance workloads.

#### Step 1: Start the Deployment

1. From the Dashboard, click **Create Services** > **Metal**
2. Or navigate to **Metal** > **Services** and click **+ Create Metal**

#### Step 2: Choose Your Path

You can deploy by **Tier** (hardware specifications) or **Region** (location first):

* **Tier Path** - Choose hardware specs first, then see available regions
* **Region Path** - Choose location first, then see available hardware

#### Step 3: Select Hardware

Choose from available CPU tiers:

| Tier              | Example CPUs               | Use Case                            |
| ----------------- | -------------------------- | ----------------------------------- |
| EPYC Gen5 (Turin) | AMD EPYC 9254, 9354P, 9454 | Latest generation, best performance |
| EPYC Gen4 (Genoa) | AMD EPYC 9254 v2, 9474F    | High core count, excellent value    |
| EPYC Gen3 (Milan) | AMD EPYC 7443P, 7543P      | Proven reliability                  |
| Ryzen             | AMD Ryzen 9 9950X          | Cost-effective                      |
| Intel Xeon        | Various                    | Legacy workloads                    |

#### Step 4: Configure Your Server

1. **Operating System** - Choose Ubuntu, or use iPXE for custom installations
2. **RAID Configuration** - Select None, RAID 0, RAID 1, or Custom
3. **Authentication** - Add SSH keys (recommended) or set a root password
4. **Cloud-Init** - Optionally add user-data scripts for first-boot configuration
5. **Hostname & Tags** - Name your server and add tags for organization

#### Step 5: Review and Deploy

1. Review the configuration summary showing specs and pricing
2. Click **Proceed to Metal Order Summary**
3. Confirm and submit your order

Deployment typically takes 5-15 minutes. You'll see the progress through stages:

* Machine Allocated
* Deployment Started
* Installing OS
* Configuring System
* Deployment Complete

### Option 2: Deploy a Cloud Instance

Cloud instances are virtual machines that spin up in seconds. Great for flexible, scalable workloads.

#### Step 1: Start the Deployment

1. Navigate to **Cloud** > **Compute**
2. Click **+ Create Instance**

#### Step 2: Choose Region and Datacenter

Select from available regions. Pittsburgh (PIT1) offers the most instance types.

#### Step 3: Select Machine Size

Choose from available configurations:

| vCPUs | RAM     | Bandwidth | Best For                |
| ----- | ------- | --------- | ----------------------- |
| 1     | 1 GB    | 10 Gbps   | Development, testing    |
| 2     | 4 GB    | 20 Gbps   | Small applications      |
| 4     | 8-16 GB | 40 Gbps   | Medium workloads        |
| 8+    | 32+ GB  | 80 Gbps   | Production applications |

#### Step 4: Configure Storage

Use the slider to select NVME storage size (20 GB minimum). You can add more volumes later.

#### Step 5: Set Up Access

1. Choose **Ubuntu** as your distribution
2. Select **SSH Keys** for authentication
3. Choose the keys to install

#### Step 6: Deploy

Click **Proceed to Instance Order Summary** and confirm. Cloud instances typically deploy in under a minute.

### Accessing Your Server

Once deployed, you can access your server via:

#### SSH Access

```bash
ssh ubuntu@<your-server-ip>
```

The default username is `ubuntu` for Ubuntu installations. Use the SSH key you configured during deployment.

#### Virtual Console (Metal Only)

For bare metal servers, you can access the server console directly from the browser:

1. Go to your server's detail page
2. Click the **Virtual Console** tab
3. Click **Launch Virtual Console**

This opens a VNC session to your server - useful for troubleshooting boot issues or when SSH isn't available.

### Next Steps

* [Managing Metal Services](/compute/metal/managing-services.md) - Learn to manage your metal servers
* [SSH Keys](/account/ssh-keys.md) - Add more SSH keys
* [IP Blocks](/compute/metal/ip-blocks.md) - Request additional IP addresses


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.teraswitch.com/getting-started/first-deployment.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
