Documentation

# From payment confirmed to first token.

What arrives in your delivery message, what is already installed, and the exact commands for the first hour. Everything below is run as root on a freshly delivered machine.

- under 5 minutes from payment to the message below
- 10 images you can have written for you
- root no sudo, no jump host, no console
- 22 the only port open on delivery

## What arrives

One message, under 5 minutes after the payment confirms. It contains everything you need and nothing you have to click through.

SSH Address, port 22, and your root password The password is the one **you** set in the configurator. We never generate it, we never see it in the clear afterwards, and we cannot reset it for you.

Network IPv4 address, gateway, and your IPv6 /64 Already configured on the machine. The block is listed so you can plan additional addresses on it.

IPMI A separate address and its own credentials On a management VLAN. Remote power, serial console and virtual media, reachable when the operating system is not.

Hardware The exact CPU, cards and disks in your node Model and serial of every card, so the machine you verify is provably the machine you were sold.

**We cannot recover your root password.** It is set by you and stored only long enough to write it into the image. If you lose it, the way back is IPMI: boot the rescue image from virtual media and reset it yourself. That is a feature of not holding your credentials, and it is also a genuine inconvenience — put it in a password manager now.

## First connection

Nothing to accept, no agent to install. If you gave us a public key in the configurator it is already in `/root/.ssh/authorized_keys`.

Your machine, first login

```
$ ssh root@203.0.113.42
# Then, before anything else — the fingerprint in the delivery message
# must match the one printed here:
$ ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
```

If you sent a key, turn the password off. It costs one command and removes the only credential that can be guessed.

Key-only access

```
# Confirm your key works FIRST — in a second terminal, still logged in here.
$ sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
$ systemctl reload ssh
```

## Verify the hardware

Do this in the first ten minutes. You have a machine you have not seen, and the SLA clock on a hardware fault starts when you tell us.

Cards, memory, and the link between them

```
$ nvidia-smi --query-gpu=index,name,serial,memory.total,pcie.link.gen.current --format=csv
index, name, serial, memory.total [MiB], pcie.link.gen.current
0, NVIDIA H100 80GB HBM3, 1650123456789, 81559 MiB, 5
1, NVIDIA H100 80GB HBM3, 1650123456790, 81559 MiB, 5

# On a multi-GPU node, check the topology matches what you paid for.
# NV# means NVLink; PIX/PHB/SYS mean the traffic goes over PCIe.
$ nvidia-smi topo -m
```

Sustained throughput, not a boost number

```
# Hold every card at load for two minutes and watch the clock it settles at.
$ nvidia-smi -q -d PERFORMANCE,TEMPERATURE,CLOCK | grep -E 'Slowdown|SW Power|Graphics *:'

# Disks: confirm the count and the model against the delivery message.
$ lsblk -d -o NAME,MODEL,SIZE,ROTA
$ nvme list
```

**If any of it does not match, say so immediately.** A wrong card, a missing disk, a link running at Gen3 instead of Gen5 — tell us within the first day and we swap the node or refund the term, no argument. After a month of use the same report is a support case rather than a delivery dispute, and it is slower for both of us.

## What is preinstalled

Pick an operating system in the configurator, and optionally one stack on top of it. Everything below is written before delivery, not downloaded on first boot.

**Preinstalled images, what they contain and the minimum card they need**

| Image | What it is for | Minimum VRAM | OS |
|---|---|---|---|
| vLLM 0.11 OpenAI-compatible server, continuous batching | Serving large language models | 24 GB | Linux |
| SGLang 0.5 Structured decoding, RadixAttention cache | Serving large language models | 24 GB | Linux |
| Text Generation Inference Hugging Face serving stack | Serving large language models | 24 GB | Linux |
| Ollama 0.12 One command, quantised models included | Serving large language models | 8 GB | Linux |
| Axolotl 0.8 LoRA and QLoRA fine-tuning | Training and fine-tuning | 24 GB | Linux |
| PyTorch 2.9 · CUDA 12.8 Bare framework, cuDNN 9, NCCL | Training and fine-tuning | 8 GB | Linux |
| ComfyUI SDXL, Flux, SD 3.5, video nodes | Image and video generation | 12 GB | Linux |
| JupyterLab · CUDA Notebooks on a bare CUDA stack | Training and fine-tuning | 8 GB | Linux |
| Blender 4.5 Cycles GPU rendering, headless | 3D rendering | 8 GB | Linux or Windows |
| Your own Docker image Any public or private registry | Anything you bring | Any | Linux |

Every Linux image, whichever stack you pick, already has a working NVIDIA driver, CUDA, cuDNN and NCCL. You are free to replace all of it — it is your root, and reinstalling costs nothing and is not rate-limited.

## Containers and CUDA

Docker and the NVIDIA container toolkit are installed and configured. The check below is worth thirty seconds, because a container that cannot see the cards fails in a confusing way much later.

Does a container see the cards?

```
$ docker run --rm --gpus all nvidia/cuda:12.8.0-base-ubuntu24.04 nvidia-smi

# Multi-GPU jobs also need shared memory and IPC, which the default limits break.
# These three flags are the usual cause of a silent NCCL hang:
$ docker run --rm --gpus all --ipc=host --shm-size=16g --ulimit memlock=-1 …
```

## Serving a model

The shortest useful path from a delivered machine to an OpenAI-compatible endpoint. Substitute your own model; the flags are what matter.

vLLM on a single card

```
$ docker run -d --name vllm --gpus all --ipc=host -p 8000:8000 \
    vllm/vllm-openai:latest \
    --model meta-llama/Llama-3.3-70B-Instruct \
    --max-model-len 8192 \
    --gpu-memory-utilization 0.92

# On a multi-GPU node, shard across every card in the box:
$ … --tensor-parallel-size 4

# Then, from your own machine:
$ curl http://203.0.113.42:8000/v1/models
```

**That endpoint has no authentication.** Published on a public address it is an open inference server, and it will be found within hours. Bind it to localhost and reach it over an SSH tunnel, or put it behind the firewall rules in the next section, before you leave it running.

Whether a given model fits on a given machine is arithmetic, not opinion — weights, plus a KV cache that grows with context length. The configurator does that arithmetic for every configuration before you pay, and the [VRAM sizing guide](https://gpuserver.io/guides/vram-sizing) shows the formula so you can check ours.

## Disks and storage

Disks are handed over raw beyond the system volume. We impose no RAID level, because the right one depends on whether you are holding checkpoints you cannot lose or a dataset you can re-download in an hour.

A striped scratch volume across the spare NVMe devices

```
# Check what is unused first — this destroys data on the named devices.
$ lsblk

$ mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/nvme1n1 /dev/nvme2n1
$ mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/md0
$ mkdir -p /scratch && mount /dev/md0 /scratch
$ echo '/dev/md0 /scratch ext4 defaults,noatime 0 2' >> /etc/fstab
```

Additional NVMe, archive HDD and off-machine snapshots are monthly options, added in the configurator or afterwards. Local disks are not backed up by us and never will be — see [snapshots](https://gpuserver.io/docs#snapshots) below.

## Firewall and ports

Everything is open inbound except what your own machine blocks: there is no network filter in front of you, which is deliberate and puts the responsibility here. Outbound port 25 is the single exception, closed upstream until you ask.

A minimal ruleset: SSH from anywhere, one service from one address

```
$ ufw default deny incoming
$ ufw default allow outgoing
$ ufw allow 22/tcp
$ ufw allow from 198.51.100.7 to any port 8000 proto tcp
$ ufw --force enable

# Safer than opening a port at all: keep the service on localhost
# and tunnel to it from your own machine.
$ ssh -N -L 8000:127.0.0.1:8000 root@203.0.113.42
```

## IPMI and reinstalling

Out-of-band access is on every machine, on its own address. It is how you recover a box you have locked yourself out of, at three in the morning, without asking anyone.

### Power

Hard power cycle, graceful shutdown, and the chassis power state — independent of whether the operating system is responding.

### Serial and KVM console

The screen the machine would show on a monitor, including the bootloader and a kernel panic. This is where you fix a broken `fstab`.

### Virtual media

Mount any ISO over the network and boot it. That includes a rescue image, and it includes an operating system we do not offer.

A clean reinstall to any image we offer is requested from us and takes about the same time as the original delivery. It costs nothing, there is no limit on how often, and the machine keeps its addresses. Everything on the disks is destroyed by it — that is the point of a reinstall, and there is no undo.

## Snapshots

Optional, monthly, off the machine. If you do not buy them, no copy of your data exists anywhere but your own disks — which is the correct default for most of what runs on a GPU, and a disaster for the rest.

What is captured Block-level, nightly The whole system volume, taken while the machine runs. Scratch arrays you created yourself are included only if you say so.

Where it lives Another building, same country Never on the machine it protects. A failed chassis does not take its own snapshots with it.

Retention 30 days, rolling Then overwritten. There is no long-term archive and no way to ask for one after the fact.

At the end of the term Deleted with the machine Snapshots do not outlive the server they belong to. Take what you need off before the term closes.

## Ending the term

A monthly term stops at the end of the paid month, with no notice period and no cancellation fee. What happens next is not reversible, so it is spelled out here rather than in a footnote.

1. **Nothing renews by itself.** There is no card on file and no direct debit — a term continues only because you paid for the next one.
2. **The public port is cut at the moment the term ends.** The machine stops being reachable immediately, not at the end of a grace day.
3. **Disks are erased within the hour.** Cryptographic erase, then a full overwrite. There is no window during which your data still exists somewhere.
4. **Snapshots go with it.** If you bought them, they are deleted in the same pass.
5. **The address returns to the pool.** After a hold, and only once it is clean.

**Copy your data off before the last day, not on it.** We cannot restore anything afterwards — not for a fee, not as a favour. The erase has already run, and the reason we can promise a clean machine to the next tenant is that it runs without anyone approving it.

## Everything above works on every machine in the catalogue.

There is no tier where IPMI, reinstalls or unmetered bandwidth cost extra. Pick a card, pick a site, and the rest of this page applies.

[Browse the catalogue](https://gpuserver.io/#catalog) [Read the guides](https://gpuserver.io/guides)

## Related pages

- [Guides Eight practical guides: VRAM sizing, NVLink versus PCIe, image and video models, monthly versus hourly, self-hosting versus an API, serving Llama 70B, and QLoRA.](https://gpuserver.io/guides)
- [Hardware policy The twelve NVIDIA GPUs we operate, the 72-hour burn-in before a node is sold, the four-hour replacement target, and how disks are erased between tenants.](https://gpuserver.io/hardware)
- [Network Unmetered ports up to 25 Gbit/s, two carriers and an IX per site, always-on DDoS filtering, routed IPv6 — and the four things we do not offer, stated up front.](https://gpuserver.io/network)
- [About us Who runs gpuserver.io, why we buy the hardware instead of reselling it, and the four rules we do not bend — including the ones that cost us sales.](https://gpuserver.io/about)

---

Source: https://gpuserver.io/docs/. This file is generated from the same data as the website; if a figure here differs from a page, the page is authoritative and this file is stale — the canonical source is https://gpuserver.io/.
