diff --git a/docs.json b/docs.json index acf42bcf..e4bbde04 100644 --- a/docs.json +++ b/docs.json @@ -159,7 +159,7 @@ "group": "Teams", "icon": "users", "pages": [ - "guides/teams/overview", + "guides/teams/teams-overview", "guides/teams/managing-teams", "guides/teams/teams-roles", "guides/teams/legacy-teams" @@ -588,26 +588,68 @@ "tab": "Host", "groups": [ { - "group": "Concepts", - "icon": "lightbulb", + "group": "Before You Host", + "icon": "compass", "pages": [ "host/hosting-overview", - "host/understanding-verification", - "host/earning" + "host/supported-hardware", + "host/persona-decision-guide", + "host/earning", + "host/guide-to-taxes" + ] + }, + { + "group": "Set Up", + "icon": "wrench", + "pages": [ + "host/quickstart", + "host/account-hosting-agreement", + "host/hardware-prep", + "host/storage-setup", + "host/network-ports", + "host/installing-host-software", + "host/headless-install", + "host/vms" ] }, { - "group": "Guides", - "icon": "warehouse", + "group": "Verify & List", + "icon": "badge-check", "pages": [ "host/optimization-guide", "host/verification-stages", + "host/understanding-verification", "host/how-to-self-test", "host/market-metrics", + "host/self-test-reference", + "host/pricing-your-listing", + "host/not-in-search" + ] + }, + { + "group": "Operate", + "icon": "gauge", + "pages": [ + "host/first-24-hours", + "host/reliability-uptime", + "host/maintenance-windows", + "host/removing-recreating-machines", + "host/fleet-operations", + "host/common-errors-diagnostics", + "host/machine-errors", "host/datacenter-status", "host/payment", - "host/guide-to-taxes", - "host/vms" + "host/workload-policy" + ] + }, + { + "group": "Reference", + "icon": "book-open", + "pages": [ + "host/common-host-questions", + "host/glossary", + "host/hosting-agreement", + "host/community" ] }, { @@ -808,7 +850,7 @@ "links": [ { "label": "FAQ", - "href": "/guides/reference/faq" + "href": "https://docs.vast.ai/guides/reference/faq" }, { "label": "Discord", diff --git a/host/account-hosting-agreement.mdx b/host/account-hosting-agreement.mdx new file mode 100644 index 00000000..52304469 --- /dev/null +++ b/host/account-hosting-agreement.mdx @@ -0,0 +1,50 @@ +--- +title: "Account & Hosting Agreement" +sidebarTitle: "Account & Agreement" +description: "Host account conversion and agreement flow." +"canonical": "/host/account-hosting-agreement" +personas: + - pro-operator + - headless-operator + - business-owner + - hobbyist +--- + +
)` | The secrets service returned a 5xx server error. |
+| `Secrets fetch failed: unexpected HTTP ` | The secrets service returned another non-success status. |
+| `Secrets fetch JSON parse error` | The secrets response was not valid JSON. |
+
+If one of these repeats across rentals, collect the exact message, timestamp, instance details, and host logs before asking for help.
+
+
+## What To Collect
+
+Before asking for help, collect:
+
+- Exact error string and screenshot.
+- The affected machine record in the console and whether you are using the host account.
+- Timestamp with timezone.
+- Recent changes: reboot, driver, kernel, Docker, BIOS, storage, router, ISP, or GPU swap.
+- `nvidia-smi -L`, Docker GPU container test output, and relevant kernel logs.
+- Host daemon logs and installer logs if this started during install.
+- Self-test support bundle if the error came from self-test.
+
+Review bundles before sharing them. Share sensitive account or machine details only in the appropriate support channel.
+
+## Related Pages
+
+| Topic | Read next |
+| --- | --- |
+| General diagnostics and logs | [Errors & Diagnostics](/host/common-errors-diagnostics) |
+| Self-test failures | [Self-Test Reference](/host/self-test-reference) |
+| Port forwarding | [Network & Ports](/host/network-ports) |
+| Docker storage | [Storage Setup](/host/storage-setup) |
+| Search and visibility | [Not in Search](/host/not-in-search) |
diff --git a/host/maintenance-windows.mdx b/host/maintenance-windows.mdx
new file mode 100644
index 00000000..d667373c
--- /dev/null
+++ b/host/maintenance-windows.mdx
@@ -0,0 +1,100 @@
+---
+title: "Maintenance Windows"
+sidebarTitle: "Maintenance Windows"
+description: "How hosts plan maintenance without disrupting active contracts."
+"canonical": "/host/maintenance-windows"
+personas:
+ - pro-operator
+ - headless-operator
+---
+
+Pro OperatorHeadless / DC
+
+Use maintenance windows to plan host work without surprising active renters.
+
+
+## Before Maintenance
+
+Wait until active rental contracts have ended, or until the machine has no running instances, before planned maintenance. Unlisting prevents new rental contracts, but it does not end existing contracts.
+
+Check the machine before you change its listing state:
+
+```bash
+vastai show machines
+vastai show machine
+```
+
+
+ A single machine can have multiple active rental contracts from different clients. Do not take the machine offline until every active rental contract has ended.
+
+
+
+## Planned Maintenance
+
+For planned work, set the offer end date to the maintenance date so new rentals do not run past your planned downtime. Existing contracts keep their accepted end date, so choose a date that still honors the latest active rental.
+
+```bash
+vastai list machine --end_date MM/DD/YYYY
+```
+
+For multiple machines, use the fleet command:
+
+```bash
+vastai list machines --end_date MM/DD/YYYY --retry 6
+```
+
+When the active contracts have ended, unlist the machine before taking it down:
+
+```bash
+vastai unlist machine
+```
+
+See [vastai list machine](/host/cli/list-machine), [vastai list machines](/host/cli/list-machines), and [vastai unlist machine](/host/cli/unlist-machine).
+
+
+## Schedule An Unplanned Window
+
+If you must take the machine down unexpectedly, schedule a maintenance window so clients are notified and can save their work. The start date is Unix epoch seconds in UTC, and the duration is in hours.
+
+```bash
+vastai schedule maint --sdate --duration --maintenance_category software
+```
+
+Example:
+
+```bash
+vastai schedule maint 8207 --sdate 1782950400 --duration 2 --maintenance_category power
+```
+
+Maintenance categories are `power`, `internet`, `disk`, `gpu`, `software`, or `other`. See [vastai schedule maint](/host/cli/schedule-maint).
+
+
+## Check Or Cancel Maintenance
+
+Check scheduled maintenance for one or more machines:
+
+```bash
+vastai show maints --ids
+vastai show maints --ids ,
+```
+
+Cancel scheduled maintenance for a machine:
+
+```bash
+vastai cancel maint
+```
+
+See [vastai show maints](/host/cli/show-maints) and [vastai cancel maint](/host/cli/cancel-maint).
+
+
+## Should I disable automatic updates?
+
+Avoid unattended kernel or GPU driver changes during active rentals. Driver and kernel updates can break running jobs or leave the host in a driver/library mismatch state until rebooted. Plan updates during maintenance windows, then verify `nvidia-smi`, Docker GPU access, and self-test behavior before accepting new rentals.
+
+## Related pages
+
+| Topic | Read next |
+| --- | --- |
+| Contract and offer end dates | [Hosting Overview](/host/hosting-overview#offer-end-date) |
+| Reliability impact of downtime | [Reliability & Uptime](/host/reliability-uptime) |
+| Removing a machine entirely | [Removing or Recreating Machines](/host/removing-recreating-machines) |
diff --git a/host/market-metrics.mdx b/host/market-metrics.mdx
index 12db6a15..d6de7571 100644
--- a/host/market-metrics.mdx
+++ b/host/market-metrics.mdx
@@ -2,119 +2,139 @@
title: "GPU Market Metrics"
sidebarTitle: "Market Metrics"
description: "Track GPU supply, demand, pricing, and locations across the Vast marketplace"
+personas:
+ - business-owner
+ - pro-operator
---
-Vast provides real-time and historical data on GPU supply, demand, pricing, and geographic distribution across the marketplace. You can use this data to make informed decisions about pricing your machines and understanding demand for specific GPU types.
+BusinessPro Operator
-## Accessing the data
+Use market metrics to compare GPU supply, demand, pricing, and geography before setting host prices.
-There are three ways to access market metrics:
+## Access
-1. **Dashboards** at [cloud.vast.ai/host/market/](https://cloud.vast.ai/host/market/)
-2. **CLI** via `vastai metrics` subcommands (requires `pip install vastai`, v1.0.4+)
-3. **REST API** endpoints (see [API reference](#api-endpoints) below)
+All Vast market metric methods require a host-enabled account. Some views also require the account to have at least one registered machine.
-All three require a **host API key**. Regular client keys will receive a `401` error.
+| Method | Where |
+| --- | --- |
+| Dashboard | [cloud.vast.ai/host/market](https://cloud.vast.ai/host/market/) |
+| CLI | `vastai metrics ...` |
+| REST API | `/api/v0/metrics/gpu/...` |
+
+Accounts not enabled for hosting can receive `401` errors. If the dashboard says "Register a machine to view market stats" or "Market stats are available once you have at least one registered machine," register a host machine first, then return to the page.
+
+If you are evaluating hardware before registering a machine, public third-party dashboards can help with rough comparison, but Vast's dashboard, CLI, and API are the source of truth for host market metrics.
+
+## Dashboard Views
-## Dashboards
+- **Availability & Pricing**: historical supply/demand and P10/median/P90 prices.
+- **GPU Overview**: current supply/demand, 30-day rental rate, and median price by GPU type.
+- **GPU Locations**: geographic distribution.
+- If the page is blocked by the registered-machine requirement, use the Vast hosting calculator or public market dashboards for preliminary planning until the host account has a registered machine.
-Three views are available at [cloud.vast.ai/host/market/](https://cloud.vast.ai/host/market/):
+## GPU Overview Income Estimate
-- **Availability & Pricing** — Historical supply/demand counts and P10/median/P90 pricing over time
-- **GPU Overview** — Current supply/demand counts, pricing, and stats for each GPU type
-- **GPU Locations** — Geographic distribution of GPUs across the platform
+In [Host Market](https://cloud.vast.ai/host/market/), open **GPU Overview** to compare demand and pricing by GPU model.
-## CLI commands
+For a quick compute-only estimate, combine:
-Install or upgrade the CLI:
+| Column | Use |
+| --- | --- |
+| `% Rented (30D Avg)` | Approximate utilization for that GPU type over the last 30 days. |
+| `$/HR MED` | Median hourly GPU price for that GPU type. |
+
+```text
+average compute revenue per GPU-hour =
+ $/HR MED x (% Rented (30D Avg) / 100)
+
+monthly compute estimate =
+ GPUs x $/HR MED x 720 x (% Rented (30D Avg) / 100)
+```
+
+Example: if `RTX 5090` shows `% Rented (30D Avg)` of `65.0%` and `$/HR MED` of `$0.361/hr`:
+
+```text
+0.361 x 0.65 = $0.23465 average gross compute revenue per hour per GPU
+0.361 x 720 x 0.65 = $168.95 gross compute revenue per month per GPU
+```
+
+This is a better starting point than price alone because utilization matters. A GPU with a higher hourly price can still earn less if it is rented less often. Treat this as a rough gross compute estimate; it does not include storage, bandwidth, volume revenue, power, cooling, hardware cost, taxes, payout timing, or downtime.
+
+## CLI
+
+Install or upgrade:
```bash
pip install --upgrade vastai
```
-### Current snapshot — `vastai metrics gpu`
-
-Returns current supply, demand, and pricing for all GPU types.
+Current snapshot:
```bash
-vastai metrics gpu # all GPU types
+vastai metrics gpu
vastai metrics gpu --verified true --datacenter true
-vastai metrics gpu --raw # JSON output
+vastai metrics gpu --raw
```
-See [full reference](/host/cli/metrics-gpu).
+Historical trends:
-### Historical trends — `vastai metrics gpu-trends`
+```bash
+vastai metrics gpu-trends
+vastai metrics gpu-trends "RTX 4090"
+vastai metrics gpu-trends "RTX 4090, H100_SXM"
+vastai metrics gpu-trends all
+vastai metrics gpu-trends "RTX 4090" --full
+vastai metrics gpu-trends "RTX 4090" --raw
+vastai metrics gpu-trends "RTX 4090" --start 1773298800 --end 1773817200 --step 3600
+```
-Returns time-series data for supply, demand, and pricing. Defaults to RTX 5090, 4090, and 3090 over the last 24 hours.
+Locations:
```bash
-vastai metrics gpu-trends # defaults
-vastai metrics gpu-trends "RTX 4090" # single GPU
-vastai metrics gpu-trends "RTX 4090, H100_SXM" # multiple GPUs
-vastai metrics gpu-trends all # all GPU types
-vastai metrics gpu-trends "RTX 4090" --full # all data points (vs sampled ~20)
-vastai metrics gpu-trends "RTX 4090" --raw # JSON output
-vastai metrics gpu-trends "RTX 4090" --start 1773298800 --end 1773817200 --step 3600
+vastai metrics gpu-locations
+vastai metrics gpu-locations --verified true --datacenter true
+vastai metrics gpu-locations --gpu "RTX 4090, H100_SXM"
+vastai metrics gpu-locations --rented false
+vastai metrics gpu-locations --raw
```
-See [full reference](/host/cli/metrics-gpu-trends).
+References: [metrics gpu](/host/cli/metrics-gpu), [metrics gpu-trends](/host/cli/metrics-gpu-trends), [metrics gpu-locations](/host/cli/metrics-gpu-locations).
-### Location data — `vastai metrics gpu-locations`
+## Public Comparison Sources
-Returns geographic distribution of GPUs.
+For planning before you have dashboard access, compare multiple sources:
-```bash
-vastai metrics gpu-locations # unfiltered
-vastai metrics gpu-locations --verified true --datacenter true # datacenter-verified only
-vastai metrics gpu-locations --gpu "RTX 4090, H100_SXM" # specific GPU types
-vastai metrics gpu-locations --rented false # only unrented
-vastai metrics gpu-locations --raw # JSON output
-```
+- [Vast GPU market prices](https://vast.ai/pricing)
+- [Vast hosting earnings calculator](https://vast.ai/hosting/calculator)
+- [500.farm Vast charts](https://500.farm/vastai/charts/)
-See [full reference](/host/cli/metrics-gpu-locations).
+Third-party dashboards are useful for trend checks, but they can be delayed, filtered differently, or incomplete compared with Vast's own host market data.
-## API endpoints
+## API
-You can also query the data directly via the REST API. Pass your host API key as a Bearer token.
+Pass your host API key as a Bearer token.
| Endpoint | Description |
| --- | --- |
-| `GET /api/v0/metrics/gpu/current/` | Current snapshot of all GPU types |
-| `GET /api/v0/metrics/gpu/history/` | Time-series supply/demand and pricing |
-| `GET /api/v0/metrics/gpu/locations/` | Geographic distribution |
-
-### Query parameters
+| `GET /api/v0/metrics/gpu/current/` | Current GPU snapshot |
+| `GET /api/v0/metrics/gpu/history/` | Historical supply, demand, and pricing |
+| `GET /api/v0/metrics/gpu/locations/` | GPU geography |
-| Parameter | Applies to | Description |
-| --- | --- | --- |
-| `verified` | current, history | `yes`, `no`, or `all` |
-| `hosting_type` | current, history | `secure_cloud`, `community`, or `all` |
-| `gpu_name` | history | GPU name (e.g. `RTX 4090`) |
-| `start` | history | Unix timestamp for range start |
-| `end` | history | Unix timestamp for range end |
-| `step` | history | Seconds between data points (e.g. `3600` for hourly) |
+Common parameters:
-### Examples
+| Parameter | Values |
+| --- | --- |
+| `verified` | `yes`, `no`, `all` |
+| `hosting_type` | `secure_cloud`, `community`, `all` |
+| `gpu_name` | GPU name, such as `RTX 4090` |
+| `start`, `end` | Unix timestamps |
+| `step` | Seconds between history points |
```bash
-# Current snapshot — verified datacenter GPUs
curl -H "Authorization: Bearer $API_KEY" \
"https://console.vast.ai/api/v0/metrics/gpu/current/?verified=yes&hosting_type=secure_cloud"
-
-# Historical trends — RTX 4090, hourly steps
-curl -H "Authorization: Bearer $API_KEY" \
- "https://console.vast.ai/api/v0/metrics/gpu/history/?gpu_name=RTX+4090&verified=yes&start=1773298800&end=1773817200&step=3600"
-
-# Locations
-curl -H "Authorization: Bearer $API_KEY" \
- "https://console.vast.ai/api/v0/metrics/gpu/locations/"
```
-## Data freshness
-
-Market metrics data is updated every 5 minutes. Location data is cached for up to 2 hours since it changes less frequently.
-
-### Rate limits
+## Freshness And Limits
-Each endpoint allows up to **5 requests per second** per user. For large historical queries, the backend automatically adjusts the resolution to keep response sizes reasonable.
+Market metrics update every 5 minutes. Location data can be cached for up to 2 hours. Each endpoint allows up to 5 requests per second per user.
diff --git a/host/network-ports.mdx b/host/network-ports.mdx
new file mode 100644
index 00000000..74b7fd72
--- /dev/null
+++ b/host/network-ports.mdx
@@ -0,0 +1,123 @@
+---
+title: "Network & Ports"
+sidebarTitle: "Network & Ports"
+description: "Port forwarding, CGNAT, public IP, IPv6, and host connectivity guidance."
+"canonical": "/host/network-ports"
+personas:
+ - pro-operator
+ - headless-operator
+---
+
+Pro OperatorHeadless / DC
+
+Configure public inbound networking before verification. Vast hosts need direct ports reachable from outside the host LAN.
+
+
+## Ports Per GPU
+
+Self-test requires at least 3 direct ports per listed GPU. For production hosting, plan for about 100 direct ports per listed GPU. One instance can map up to 64 ports, and a larger range gives headroom while old mappings are being released and new instances are starting.
+
+| Listed GPUs | Minimum | Practical example |
+| --- | ---: | --- |
+| 1 | 3 | `40000-40099` |
+| 4 | 12 | `40000-40399` |
+| 8 | 24 | `40000-40799` |
+
+The forwarded router/firewall range must match the range configured in the host software. The 100-port guidance is practical headroom, not a self-test minimum.
+
+
+## TCP And UDP
+
+Forward both TCP and UDP for the configured direct port range. TCP-only forwarding can pass some checks while still failing renter workloads that need UDP.
+
+## Set The Host Port Range
+
+In the Host Installer Wizard, enter the same range you forwarded.
+
+For the raw installer:
+
+```bash
+sudo python3 ./install "$VAST_HOST_KEY" --ports 40000 40799
+```
+
+For an installed host:
+
+```bash
+echo -n "40000-40799" | sudo tee /var/lib/vastai_kaalia/host_port_range
+sudo systemctl restart vastai.service
+sudo tail -n 50 /var/lib/vastai_kaalia/kaalia.log | grep host_port_range
+```
+
+The log should show `host_port_range: 40000 40799`.
+
+
+## CGNAT, Starlink, IPv6-Only, Or No Public IP
+
+Vast instances need public inbound TCP and UDP reachability. CGNAT, double NAT without a real public forwarding path, many residential Starlink setups, incompatible IPv6-only service, blocked inbound ports, or no public inbound IP are not supported for hosting because renters and self-test must be able to reach the machine directly.
+
+Compare your router WAN IP with your public IP and test from outside the LAN. If the router does not have a public inbound address or cannot forward the configured ports to the host, use a network connection that provides public inbound connectivity before listing the machine.
+
+
+## Test Ports From Outside The LAN
+
+Same-LAN tests can be misleading because of NAT hairpinning. Test from a different network, such as mobile data, a cloud VM, or another external machine.
+
+On the host, start a temporary TCP listener and confirm it is listening:
+
+```bash
+sudo python3 -m http.server 40000 --bind 0.0.0.0
+sudo ss -ltnp | grep ':40000'
+```
+
+From macOS or Linux outside the LAN:
+
+```bash
+curl -v http://PUBLIC_IP:40000/
+nc -vz PUBLIC_IP 40000
+```
+
+From Windows PowerShell outside the LAN:
+
+```powershell
+Test-NetConnection PUBLIC_IP -Port 40000
+curl.exe http://PUBLIC_IP:40000/
+```
+
+You can also use a public TCP checker such as [portchecker.co](https://portchecker.co/) for a quick outside-LAN TCP check.
+
+For UDP, watch for packets on the host:
+
+```bash
+sudo tcpdump -ni any udp port 40000
+```
+
+Then send a UDP packet from macOS or Linux outside the LAN:
+
+```bash
+printf 'vast-port-test\n' | nc -u -w2 PUBLIC_IP 40000
+```
+
+From Windows PowerShell outside the LAN:
+
+```powershell
+$udp = New-Object System.Net.Sockets.UdpClient
+$bytes = [Text.Encoding]::ASCII.GetBytes("vast-port-test")
+$udp.Send($bytes, $bytes.Length, "PUBLIC_IP", 40000)
+$udp.Close()
+```
+
+Stop temporary listeners before running the installer.
+
+During self-test, troubleshoot the exact public IP and port reported by the CLI, such as `https://PUBLIC_IP:PORT/progress`.
+
+## Connectivity Failures
+
+Self-test timeouts and `Port Networking Issues` usually mean a network-path problem. [`vericode=8`](/host/glossary#vericode) means a host-facing machine error is present; use the exact visible message to confirm whether it is the port-networking case. See [Self-Test Reference: vericode=8](/host/self-test-reference#vericode-8) and [no response for 120s](/host/self-test-reference#no-response-120s).
+
+## Related Pages
+
+| Topic | Read next |
+| --- | --- |
+| Hardware/network fit | [Supported Hardware](/host/supported-hardware) |
+| Self-test | [How to Self-Test](/host/how-to-self-test) |
+| Failure reference | [Self-Test Reference](/host/self-test-reference) |
diff --git a/host/not-in-search.mdx b/host/not-in-search.mdx
new file mode 100644
index 00000000..907badf8
--- /dev/null
+++ b/host/not-in-search.mdx
@@ -0,0 +1,69 @@
+---
+title: "Why Isn't My Machine in Search?"
+sidebarTitle: "Not in Search"
+description: "Troubleshooting machine visibility in marketplace search."
+"canonical": "/host/not-in-search"
+personas:
+ - pro-operator
+ - headless-operator
+ - business-owner
+ - hobbyist
+---
+
+All host personas
+
+Use this page when a machine is listed but does not appear where you expect in marketplace search.
+
+## Listed and visible are different things
+
+Separate "listed" from "visible in a normal broad search." Marketplace search is not a complete inventory dump. It limits result sets, ranks and groups similar offers, tries to avoid race conditions, and usually shows the best matches first. Search can be affected by ranking, grouping, filters, verification state, offer state, rental state, reliability, price, supply and demand, or machine errors.
+
+
+## Check the machine directly
+
+Start in the Machines page for the host account. Confirm that the machine is online, listed, has active offers, has no red machine errors, and is not currently rented in a way that hides the offer you expect to see. Also confirm required details such as direct ports, RAM, upload speed, and download speed are populated, and that reliability is above the relevant gate.
+
+Confirm the CLI is authenticated to the same host-enabled account:
+
+```bash
+vastai show user
+```
+
+Then search directly by machine ID:
+
+```bash
+vastai search offers 'machine_id=' --limit 200
+```
+
+If you need to ignore the CLI's default search filters while troubleshooting, add `-n`:
+
+```bash
+vastai search offers -n 'machine_id=' --limit 200
+```
+
+You can also keep the normal command form but explicitly include the offer states that commonly hide a machine:
+
+```bash
+vastai search offers 'machine_id= rentable=any rented=any verified=any external=any' --limit 200
+```
+
+If the machine looks healthy there but is hard to find in marketplace search, narrow the search by GPU model, region, verification state, price range, and rentable/rented state. The machine can be listed correctly but still not appear in a broad search because other machines rank higher, similar offers are grouped, or your filters exclude it.
+
+## Comparing your ranking
+
+To understand which machines rank above yours, use narrow filters that match your hardware, for example:
+
+```bash
+vastai search offers 'gpu_name=RTX_4090 cpu_ram>257 cpu_ram<258'
+```
+
+The default Auto Sort combines ranking factors with an element of randomness, so position varies between searches.
+
+## Related pages
+
+| Topic | Read next |
+| --- | --- |
+| Common question index | [Common Host Questions](/host/common-host-questions) |
+| Verification state | [Verification Stages](/host/verification-stages) |
+| Pricing competitiveness | [Pricing Your Listing](/host/pricing-your-listing) |
+| Self-test rentability errors | [Self-Test Failures](/host/self-test-reference#machine-not-rentable) |
diff --git a/host/optimization-guide.mdx b/host/optimization-guide.mdx
index 3df96417..88a6f39a 100644
--- a/host/optimization-guide.mdx
+++ b/host/optimization-guide.mdx
@@ -1,156 +1,94 @@
---
title: "Optimize Your Earnings"
-description: "A guide to the key settings, tradeoffs, and strategies that determine how much your machines earn. Your hardware is only half the equation; how you configure your listings is the other."
+description: "Key listing settings that affect occupancy and revenue."
"canonical": "/host/optimization-guide"
+personas:
+ - business-owner
+ - pro-operator
---
-
-**Who this is for:** Hosts who have already completed the technical setup process and have machines ready to list. This guide covers the *economic* decisions; that is, the settings and strategies that affect your ranking, occupancy, and revenue.
-
+BusinessPro Operator
-## Understanding Your Market Position
+Use this page after your machine is ready to list. Hardware matters, but listing settings decide who can find and rent it.
-Before tuning any individual setting, it helps to understand where your supply sits relative to demand. Your listing competes with others for customer attention, and your goal is to find the combination of price, availability, and configuration that maximizes your total revenue over time.
+## Core Rule
-Revenue isn't just about price. It's the product of your **price per hour** and your **occupancy rate** (the percentage of time your machines are rented). A high price with low occupancy can easily earn less than a moderate price with strong utilization. Every setting in this guide affects that balance.
+Revenue is price multiplied by utilization. A high price with low occupancy can earn less than a moderate price with steady rentals.
-Customers filter and sort listings by a variety of criteria, most commonly by **verification status**, **duration**, and **disk space**. If your listing doesn't pass these filters, it won't appear in search results regardless of how competitive your price is.
-
-
-Think of your listing as a product on a shelf. Price is only one factor; other factors like availability, duration terms, and configuration determine whether customers even see it.
-
+Before changing settings, compare similar machines by GPU model, GPU count, verification state, region, reliability, storage, bandwidth, and listing duration.
## Duration
-Duration controls how long a rental contract can last. It's one of the most impactful settings because it affects both the type of customer you attract and the stability of your revenue.
-
-**The core tradeoff:** Longer durations tend to increase expected earnings because customers value the guaranteed availability. However, you are locked into your pricing terms for the full contract length. For example, if market rates rise, you can't adjust mid-contract.
-
-| Short duration | → | Long duration |
-| :-- | :-: | --: |
-| *Flexibility, lower commitment* | | *Higher expected value, price lock-in* |
-
-### Customer Segments by Duration
-
-Different customer types have very different duration preferences. Understanding this helps you target the right segment for your hardware:
-
-| Customer Type | Typical Duration Need | Notes |
-| :-- | :-- | :-- |
-| Serverless / automated inference | Short (hours to days) | These workloads are transient. Use short-term instances for this segment. |
-| Experimentation & fine-tuning | Medium (days to weeks) | Researchers and developers testing models before committing to long runs. |
-| Training runs | Long (weeks to months+) | Customers often prefer very long durations or no maximum. Stable, high-value contracts. |
-
-
-Consider enabling the **auto-extend** feature. This allows rentals to automatically continue beyond their initial term. It reduces churn without requiring you to commit to a longer maximum duration.
-
-
-
-**Data center hosts:** Do not set a duration longer than you can reliably honor. Breaking a contract early carries a serious penalty. Only commit to what you can guarantee.
-
-
-## Pricing
-
-Pricing is the most direct lever for your earnings, but the optimal price isn't simply "as high as possible." Rather, it's the rate that maximizes total revenue given your hardware, competition, and current market conditions.
-
-**The core tradeoff:** Higher prices increase revenue per rental hour, but reduce occupancy. Lower prices fill your machines faster, but each hour earns less. The optimum sits somewhere in the middle and shifts with supply and demand.
-
-| Lower price | → | Higher price |
-| :-- | :-: | --: |
-| *Higher occupancy* | | *Higher per-hour revenue* |
-
-### On-Demand Pricing
-
-Your primary listing price. Use market data and your competitors' pricing as a reference point. Consider your hardware's relative performance, your verification status, and your reliability track record, as these all affect how customers evaluate your listing against alternatives.
+Longer durations can attract renters who value guaranteed availability, but they also lock you into the accepted price and end date.
-### Interruptible Pricing (Min Bid Price)
+| Shorter duration | Longer duration |
+| --- | --- |
+| More flexibility | Better fit for long jobs |
+| Easier to reprice | Longer price lock-in |
+| Less commitment | Stronger availability promise |
-This is one of the most commonly misconfigured settings. The Min Bid Price is a **floor** for the bidding system, *not* an on-demand price. Customers bid above this floor, and competition among bidders will drive the actual price higher.
+Only offer durations you can honor. Breaking an active rental contract harms renters and can hurt reliability.
-Many hosts set their interruptible floor too high because they treat it like their on-demand rate. This is a mistake. When your machines are idle, you earn nothing. A well-set interruptible floor ensures your GPUs are working even during low-demand periods.
+## Price
-**Recommended strategy:** Set your Min Bid Price close to your **cost of power when the GPU is under load**. At this floor, you're at least covering your electricity costs during idle periods. Bidders will typically pay above this floor, so your actual interruptible revenue will be higher. If no one bids, consider running your own background jobs on the otherwise-idle hardware.
+Use comparable listings and [market metrics](/host/market-metrics). Adjust from actual utilization, not from the highest visible price.
-
-Your floor price should **not** be close to your expected actual rental price. The bidding mechanism will bring the price up, so you set the minimum you'd accept, not the price you hope to get.
-
+| If this happens | Consider |
+| --- | --- |
+| Machine is healthy but idle | Lowering price or improving listing terms |
+| Machine is always rented | Testing a modest price increase |
+| Similar machines are cheaper | Matching the market until reliability/history improves |
+| Demand spikes | Rechecking price after existing contracts end |
-### Disk Pricing
+Price changes affect future rentals only. Existing rental contracts keep the terms accepted at rental time.
-Disk pricing depends on how much storage you have relative to what clients need:
+## Interruptible Minimum Bid
-| Situation | Approach |
-| :-- | :-- |
-| You have **excess disk** capacity | Set disk pricing closer to your amortized cost. Storage is not your bottleneck. |
-| You are **under-provisioned** on disk | Set disk pricing higher than you might expect. This prevents stopped instances from consuming all your storage and starving active rentals. |
+The minimum bid is a floor, not your expected on-demand price. Set it near the lowest price you are willing to accept, often close to loaded power cost.
-### Internet Bandwidth Pricing
+If the floor is too high, GPUs may sit idle. If it is too low, interruptible work may not cover operating cost.
-This depends entirely on your network setup. If you have fast, unmetered upstream internet, you can price bandwidth low or even at zero, as this is a strong competitive advantage. If your network has QoS controls or internal metering, set a reasonable bandwidth price to prevent any single client from saturating your connection and degrading service for others.
+## Disk And Bandwidth
-## Min GPU Configuration
+| Setting | Guidance |
+| --- | --- |
+| Disk price | Price lower if storage is abundant; price higher if disk is scarce. |
+| Bandwidth price | Price lower for fast, unmetered links; price higher if bandwidth is metered or capacity-limited. |
-The Min GPU setting controls the smallest GPU partition you offer. For an 8-GPU machine, this determines whether customers can rent 1, 2, 4, or 8 GPUs at a time. It's a critical lever for balancing demand capture against utilization efficiency.
+Do not let stopped instances, cached images, or rented volumes consume the disk needed for active rentals.
-**The core tradeoff:** Smaller minimums (e.g., 1x) let you serve more customers and fill individual GPU slots, but create fragmentation. Partial rentals can leave awkward, hard-to-fill gaps, leading to underutilization. Larger minimums (e.g., 8x) eliminate fragmentation but limit your audience to customers who need a full node.
+## Min GPU
-| Min GPU = 1 | → | Min GPU = 8 |
-| :-- | :-: | --: |
-| *More renters, more fragmentation* | | *Fewer renters, cleaner utilization* |
+`min_gpu` controls the smallest GPU slice renters can choose.
-### How It Works
+| Smaller `min_gpu` | Larger `min_gpu` |
+| --- | --- |
+| More renters can use the machine | Better fit for full-node workloads |
+| Higher fragmentation risk | Lower fragmentation |
+| Can improve occupancy | Can miss small-job demand |
-When you set a Min GPU value, the platform creates listings at all powers of two from your minimum up to the total GPUs in the machine. For example, on an 8-GPU machine with Min GPU set to 2, listings are created for 2x, 4x, and 8x configurations.
+For fleets, mix `min_gpu` values across machines instead of setting every host the same way.
-### Recommended Approach
+## Keep The Listing Competitive
-If you operate multiple machines, distribute your Min GPU settings across them rather than using the same value everywhere. A healthy mix might look like this:
+Basics that affect revenue:
-| Machine | Min GPU | Available Listings |
-| :-- | :-- | :-- |
-| Machine A | 1 | 1x, 2x, 4x, 8x |
-| Machine B | 2 | 2x, 4x, 8x |
-| Machine C | 4 | 4x, 8x |
-| Machine D | 8 | 8x only |
+- Keep drivers current before listing.
+- Run self-test after setup and major changes.
+- Maintain reliability above the verification gate.
+- Avoid unplanned reboots, disconnects, and overheating.
+- Highlight datacenter status only when it is real and approved.
-This approach lets you capture demand across all configuration sizes while keeping fragmentation in check. Market data suggests there is meaningful demand for both 1x and 8x configurations, with approximately twice as much search volume for 8x rentals as for 1x.
+## Quick Reference
-
-Avoid setting *all* machines to 1x, as this leads to severe fragmentation and reduced overall utilization. Conversely, all-8x can work if competitors in your GPU class are highly fragmented and there's strong demand for full nodes, but it's generally not the default recommendation.
-
-
-The optimal mix depends on current market conditions, so be sure to consider what your competitors are offering and where unmet demand exists. Review your utilization patterns and adjust periodically.
-
-## Keeping Your Machines Competitive
-
-Settings alone won't help if your machines aren't reliable and up to date. A few operational basics make a significant difference in your listing's performance.
-
-### Driver Updates
-
-Ensure you have the latest NVIDIA drivers installed at the time of listing. Outdated drivers can cause compatibility issues with customer workloads and result in failed rentals.
-
-### Testing
-
-Test your machines before listing and after any configuration changes. A machine that appears available but fails when rented wastes a customer's time and yours, so you lose the rental and risk a negative reliability signal.
-
-### Verification
-
-Verification is one of the most common filters customers apply when searching. Ensuring your machines are verified significantly increases your visibility in search results.
-
-### Data Center Hosts
-
-If you operate out of a data center, consider highlighting any certifications you hold (e.g., Tier 4 data center, HIPAA compliance) as differentiators. These can be meaningful selling points for enterprise and compliance-sensitive customers.
-
----
+| Setting | Main question |
+| --- | --- |
+| Duration | How long can you reliably commit? |
+| On-demand price | What price balances occupancy and hourly revenue? |
+| Min bid | What is your acceptable floor? |
+| Disk price | Is storage abundant or scarce? |
+| Bandwidth price | Is bandwidth unmetered or constrained? |
+| `min_gpu` | Do you want more small renters or cleaner full-node utilization? |
+| Auto-extend | Should same-price or lower-price rentals continue automatically? |
-## Quick Reference: Settings at a Glance
-
-| Setting | Key Question | Watch Out For |
-| :-- | :-- | :-- |
-| **Duration** | How long can you reliably commit? | Over-committing (especially data centers); price lock-in on long contracts |
-| **On-Demand Price** | What rate balances occupancy and revenue? | Pricing in a vacuum without checking competitors |
-| **Min Bid Price** | What's your absolute floor (cost of power)? | Setting it like an on-demand price; leaving GPUs idle instead |
-| **Disk Price** | Are you over- or under-provisioned on storage? | Under-pricing when disk-constrained, causing starvation |
-| **Bandwidth Price** | Is your network metered or unmetered? | Zero pricing on a metered connection |
-| **Min GPU** | What's the right fragmentation vs. demand balance? | All machines at 1x (fragmentation) or all at 8x (missed demand) |
-| **NVIDIA Drivers** | Are drivers current at time of listing? | Outdated drivers causing failed rentals |
-| **Auto-Extend** | Is it enabled? | Forgetting to turn it on |
+For detailed pricing examples, see [Pricing Your Listing](/host/pricing-your-listing) and [Earnings & Pricing Model](/host/earning).
diff --git a/host/payment.mdx b/host/payment.mdx
index 3a231854..c7376f6a 100644
--- a/host/payment.mdx
+++ b/host/payment.mdx
@@ -1,178 +1,118 @@
---
-title: "Host Payouts"
+title: Host Payouts
+sidebarTitle: "Host Payouts"
createdAt: "Mon Jan 13 2025 21:20:40 GMT+0000 (Coordinated Universal Time)"
updatedAt: "Mon Jan 13 2025 21:31:15 GMT+0000 (Coordinated Universal Time)"
canonical: "/host/payment"
+personas:
+ - business-owner
---
-This guide explains how Vast.ai host payouts work, when invoices are generated, when payments are sent, and what to do if you experience a payout issue.
+Business
-## Available Payout Methods
+Manage payouts from **Earnings** in the console. For tax forms and withholding, see the [Tax Guide for Hosts](/host/guide-to-taxes).
-Vast.ai currently supports payouts through:
+## Earnings Page
-- Wise
-- PayPal
-- Stripe
-
-Hosts are responsible for ensuring they can receive business-to-business (B2B) payments through their selected payout provider in their country or region.
-
-Before selecting a payout method, verify that:
-
-- The service is available in your country.
-- Your account is fully verified.
-- Your account can receive business payments.
-- Any required identity, tax, or business verification has been completed.
-- There are no restrictions, limitations, or compliance holds on your account.
-
-Please refer to your payout provider's documentation for regional availability, account requirements, and verification requirements.
-
-**Note:** Vast.ai is not responsible for delays, restrictions, compliance reviews, account limitations, or rejected payments imposed by Wise, PayPal, Stripe, or any other financial institution.
-
----
-
-## Payout Schedule
-
-### Minimum Payout Threshold
-
-Your account must accumulate at least **\$20 USD** before an invoice can be generated.
-
-Balances below \$20 USD will automatically roll forward until the minimum threshold is reached.
-
-### Invoice Generation
-
-Invoices are generated weekly on **Fridays**.
-
-To generate an invoice:
-
-- You must have a valid payout method connected to your Vast.ai account.
-- Your account balance must meet the \$20 minimum payout threshold.
-
-### Payment Timeline
-
-It typically takes up to **two weeks to receive your first payout**.
-
-Example:
+
-- Week 1: Earnings accrue.
-- Friday: Invoice is generated and marked as **Pending**.
-- Week 2 Friday: Payment is submitted to your selected payout provider.
-- Funds are then processed by Wise, PayPal, or Stripe and may take additional time to appear in your account depending on the provider and your region.
+The Earnings page shows:
-### Invoice Statuses
+- **Current Balance**: earned but not yet paid.
+- **Total Earnings**: lifetime host, referral, and template earnings.
+- **Total Rental Earnings**: lifetime machine-rental earnings.
+- **Total Referral Earnings**: lifetime referral earnings.
+- **Payout History**: generated payout records and invoices.
-#### Pending
+## Payout Methods
-A Pending invoice has been generated and is scheduled for payment during the next payout cycle.
+Vast currently supports:
-Invoices generated on Friday are generally scheduled to be paid on the following Friday.
-
-#### Paid
-
-An invoice is marked as Paid once Vast.ai has submitted the payout to your selected payout provider.
-
-The Paid status reflects the status of the payout within Vast.ai's billing system only. It does not indicate whether the funds have completed processing within Wise, PayPal, or Stripe.
-
-After a payout has been submitted, your payout provider may require additional processing time before funds appear in your account.
-
----
-
-# Frequently Asked Questions
-
-## When will I get paid?
-
-It typically takes up to two weeks to receive your first payout.
-
-Invoices are generated weekly on Fridays. Once an invoice is generated, it enters a pending state and is scheduled for payment during the following Friday payout cycle.
-
-After the payout is submitted, your payout provider may require additional processing time before funds appear in your account.
-
-## Why does my invoice show "Paid" when I haven't received the funds yet?
-
-The Paid status indicates that Vast.ai has submitted the payout to your selected payout provider.
-
-The Paid status only reflects the payout status within Vast.ai's billing system. It does not indicate whether the funds have completed processing within Wise, PayPal, or Stripe.
+- Wise
+- PayPal
+- Stripe
-Before contacting support, please verify:
+Before selecting a method, confirm that the provider works in your region, your account is verified, and it can receive business payments.
-- Your payout account is active and fully verified.
-- Your payout provider is not requesting additional documentation.
-- There are no account limitations, restrictions, compliance reviews, or holds.
-- Your account can receive business payments for services provided.
+## Payout Account
-If you have confirmed your payout account is in good standing and still have not received your funds after a reasonable processing period, please contact support for further review.
+Use **Earnings > Payout Account** to connect, view, remove, or switch payout providers.
-## I see my invoice is marked as Pending. What does this mean?
+Only one payout account can be active at a time. To switch accounts, first deactivate the current account, then activate the new one.
-A Pending invoice has been generated but has not yet entered the payment phase.
+
+Vast is not responsible for payout delays, account holds, compliance reviews, or rejected payments from Wise, PayPal, Stripe, or other financial institutions.
+
-Invoices are generated every Friday and are generally scheduled to be paid on the following Friday.
+## Payout Schedule
-Once Vast.ai submits the payout to your selected payout provider, the invoice status will change to Paid.
+| Item | Rule |
+| --- | --- |
+| Minimum payout | $20 USD |
+| Invoice generation | Fridays around 12:00 PM Pacific time |
+| Payment timing | Usually 2 to 4 weeks from earnings being posted, depending on region and payout method |
+| Paid status | Vast submitted the payout; the provider may still be processing it |
-## Can Vast.ai send my payout via direct bank transfer (ACH, SWIFT, wire transfer, etc.)?
+Your balance rolls forward until it reaches the $20 minimum and a valid payout account is active.
-No.
+
+## Payout History And Invoices
-Vast.ai only supports payouts through:
+Start from **Account > Earnings**.
-- Wise
-- PayPal
-- Stripe
+Use the **Earnings Chart** controls to download CSV or PDF earnings data when available.
-Direct bank transfers, ACH payments, wire transfers, and SWIFT payments are not available.
+Use **Payout History** to:
-## My account is not generating invoices.
+- Filter payout records by date.
+- Download CSV or PDF payout records and invoices.
+- Review invoice status.
-Invoices are only generated when:
+Use **Payout Account** to manage connected payout providers. It is not the invoice export area.
-- A payout method is connected to your Vast.ai account.
-- Your balance has reached the \$20 minimum payout threshold.
+For billing-history invoices with itemized usage charges, open **Billing**, use **Generate Billing History**, and check **Include Charges**.
-If either requirement is not met, an invoice will not be generated.
+To customize invoice details, update **Settings > Invoice Information**.
-Please verify that your payout method has been connected correctly in your account settings.
+## Frequently Asked Questions
-## Can I generate an invoice manually?
+
+### When will I get paid?
-### Customizing Invoice Information
+Plan for 2 to 4 weeks from when earnings are posted. Invoices are generated weekly on Fridays around 12:00 PM Pacific time. Payment is generally scheduled about two weeks after posting, then the payout provider may need more time to settle the funds.
-Hosts may customize the information that appears on invoices by navigating to:
+
+### Why does my invoice show Paid when funds have not arrived?
-`Settings → Invoice Information`
+Paid means Vast submitted the payout to your selected provider. It does not guarantee that Wise, PayPal, or Stripe has completed settlement.
-From this page, you can add or update:
+Check that your payout account is active, verified, allowed to receive business payments, and not under review or hold.
-- Company name
-- Business address
-- Tax identification information
-- Other billing details you would like displayed on invoices
+
+### What does Pending mean?
+The invoice was generated but has not entered the payment phase. It changes to Paid after Vast submits the payout.
-### Downloading Invoices and Payout Records
+
+### Can Vast send direct bank transfers?
-To view and download invoices, navigate to:
+No. Vast supports Wise, PayPal, and Stripe. Direct bank transfers, ACH, wire, and SWIFT payouts are not available.
-`Earnings → Payout History`
+
+### Why are invoices not generating?
-From the Payout History section, you can:
+Invoices require both an active payout account and at least $20 in balance.
-- View historical payouts
-- Filter records by date range
-- Download payout records in CSV format
-- Download payout records in PDF format
+
+### Can I generate an invoice manually?
-## How much can I make hosting on Vast.ai?
+You can download payout records from **Account > Earnings > Payout History**. For billing history, use **Billing > Generate Billing History** with **Include Charges** enabled.
-Host earnings depend on several factors, including:
+
+### How can I have earnings as a Vast user?
-- Hardware specifications
-- Pricing
-- Uptime and reliability
-- Geographic location
-- Current customer demand
+Hosts earn from machine rentals. Users may also earn referral or template income; see the [referral program](/guides/reference/referral-program).
-To understand current market pricing and utilization trends, visit the [Market Stats](https://cloud.vast.ai/host/market/) page.
-You must be signed in as a host with at least one registered machine to access this page. Alternatively, check out [GPU market prices](https://vast.ai/pricing) or the [Host Earnings Calculator](https://vast.ai/hosting/calculator).
+## Earnings Estimates
-Market conditions change over time, so earnings cannot be guaranteed.
+Host earnings depend on hardware, price, reliability, location, uptime, and demand. Use the [Earnings & Pricing Model](/host/earning), [Market Stats](https://cloud.vast.ai/host/market/), [GPU market prices](https://vast.ai/pricing), and the [Host Earnings Calculator](https://vast.ai/hosting/calculator).
diff --git a/host/persona-decision-guide.mdx b/host/persona-decision-guide.mdx
new file mode 100644
index 00000000..47547fe7
--- /dev/null
+++ b/host/persona-decision-guide.mdx
@@ -0,0 +1,76 @@
+---
+title: "Is Vast for Me?"
+sidebarTitle: "Is Vast for Me?"
+description: "Decision guide for prospective Vast.ai hosts."
+"canonical": "/host/persona-decision-guide"
+personas:
+ - hobbyist
+ - business-owner
+---
+
+HobbyistBusiness
+
+Use this before buying hardware, repurposing a machine, or starting an install.
+
+
+Vast is a GPU marketplace, not a managed setup service. Hosts operate their own hardware, OS, drivers, storage, networking, pricing, uptime, and maintenance.
+
+
+## Good Fit
+
+Hosting is more likely to work if:
+
+- You have [supported hardware](/host/supported-hardware).
+- The host can run native Ubuntu/Linux.
+- GPUs are same-type and have enough VRAM.
+- Power, cooling, storage, and inbound networking are stable.
+- You can troubleshoot Linux, Docker, GPU drivers, PCIe, and routers.
+- You can keep the machine online through active rental contracts.
+- You are willing to adjust pricing from market data and utilization.
+
+## Wait Or Reconsider
+
+| Situation | Why |
+| --- | --- |
+| Windows or WSL host | Not the supported host OS path. |
+| CGNAT, double NAT without public forwarding, blocked inbound ports, incompatible IPv6-only, or no public inbound path | Renters and self-test need direct public TCP/UDP connectivity. |
+| Mixed, old, or low-VRAM GPUs | Can fail checks or attract little demand. |
+| Expecting Vast to configure the machine | Local hardware, Linux, drivers, storage, and router work are host responsibilities. |
+| Expecting guaranteed verification or earnings | Eligibility does not guarantee search placement, rentals, or revenue. |
+| Daily gaming/workstation machine | Rented workloads need a stable dedicated host. |
+
+## Choose Your Path
+
+| If you are... | Start with |
+| --- | --- |
+| New to hosting | [Hosting Quickstart](/host/quickstart) |
+| Checking a hardware purchase | [Supported Hardware](/host/supported-hardware) and [Earnings Model](/host/earning) |
+| Linux-comfortable operator | [Hardware Prep](/host/hardware-prep), then [Install Host Software](/host/installing-host-software) |
+| Headless/datacenter operator | [Headless Install](/host/headless-install) and [Fleet Operations](/host/fleet-operations) |
+| Evaluating business fit | [GPU Market Metrics](/host/market-metrics), [Pricing Your Listing](/host/pricing-your-listing), and [Host Payouts](/host/payment) |
+
+## Decision Checklist
+
+Before continuing, confirm:
+
+- Hardware, CPU, RAM, PCIe, storage, and network match [Supported Hardware](/host/supported-hardware).
+- The host can run native Ubuntu/Linux.
+- You will use a dedicated host account.
+- You can forward enough direct TCP and UDP ports.
+- You can keep the machine powered, cooled, stable, and online during rentals.
+- You understand earnings depend on demand, price, reliability, and utilization.
+- You know which issues are host responsibilities and which belong with Vast support.
+
+## Common Questions
+
+| Question | Read |
+| --- | --- |
+| What hardware is supported? | [Supported Hardware](/host/supported-hardware) |
+| What should I avoid? | [Unsupported setups](/host/supported-hardware#unsupported-or-discouraged-setups) |
+| Do I need a separate host account? | [Account & Hosting Agreement](/host/account-hosting-agreement#separate-host-account) |
+| What if I do not have a public IP? | [Network & Ports](/host/network-ports#cgnat-starlink-ipv6) |
+| How should I price listings? | [Pricing Your Listing](/host/pricing-your-listing) |
+| How do hosts get paid? | [Host Payouts](/host/payment) |
+| What goes to support? | [Errors & Diagnostics](/host/common-errors-diagnostics#escalate-support) |
+
+For peer help, see [Discord & Community](/host/community). For setup, continue with [Hosting Quickstart](/host/quickstart).
diff --git a/host/pricing-your-listing.mdx b/host/pricing-your-listing.mdx
new file mode 100644
index 00000000..866b02c9
--- /dev/null
+++ b/host/pricing-your-listing.mdx
@@ -0,0 +1,104 @@
+---
+title: "Pricing Your Listing"
+sidebarTitle: "Pricing Your Listing"
+description: "Listing optimization, DPH, slicing, bids, and pricing examples."
+"canonical": "/host/pricing-your-listing"
+personas:
+ - business-owner
+ - pro-operator
+---
+
+BusinessPro Operator
+
+Use this page when you are ready to list a machine or adjust an offer. Price for total revenue, not just the highest hourly rate.
+
+## Before You Price
+
+Confirm:
+
+- No unresolved hardware, driver, Docker, storage, or network errors.
+- Offer end date matches the commitment you can honor.
+- Similar machines have been checked in [GPU Market Metrics](/host/market-metrics).
+- Gross revenue has been estimated with the [Earnings Model](/host/earning).
+- You understand that price changes affect future rental contracts only.
+
+
+## Listing Controls
+
+| Control | CLI option | Meaning |
+| --- | --- | --- |
+| On-demand GPU price | `--price_gpu` | Dollars per GPU-hour. |
+| Interruptible min bid | `--price_min_bid` | Lowest bid you will accept for interruptible rentals. |
+| Reserved discount | `--discount_rate` | Maximum long-term prepay discount. |
+| Minimum GPU chunk | `--min_chunk` | Smallest GPU group renters can select. |
+| Offer end date | `--end_date` or `--duration` | How long new renters can accept the offer. |
+| Disk price | `--price_disk` | Dollars per GB per month for inactive storage. |
+| Bandwidth price | `--price_inetu`, `--price_inetd` | Dollars per GB uploaded/downloaded. |
+| Volume offer | `--vol_size`, `--vol_price` | Optional separately listed storage. |
+
+DPH means dollars per hour, usually GPU compute price.
+
+## Starting Workflow
+
+1. Compare same GPU model, GPU count, verification state, region, and machine quality.
+2. Check P10, median, P90, and `% Rented (30D Avg)` for the last 30 days.
+3. Pick an on-demand price for your goal: occupancy, hourly rate, or balance.
+4. Set `min_gpu`/`--min_chunk` to `1` unless you have a reason to require larger rentals.
+5. Set an interruptible min bid only as a floor, not as your target price.
+6. Use reserved discounts only if you can support longer rentals.
+7. Set an offer end date you can honor.
+
+Use [GPU Market Metrics](/host/market-metrics#gpu-overview-income-estimate) to estimate income from both utilization and median price. Price alone is not enough; a machine that rents at a slightly lower rate for more hours may earn more than a high-priced idle listing.
+
+## Example
+
+For a 4-GPU machine with comparable prices of P10 `$0.35`, median `$0.45`, and P90 `$0.65` per GPU-hour:
+
+| Setting | Example |
+| --- | --- |
+| On-demand price | `$0.45/GPU/hr` |
+| Interruptible min bid | `$0.25/GPU/hr` |
+| Reserved discount | `0.30` |
+| Minimum GPU chunk | `1` |
+| Offer end date | Maintenance-safe date |
+
+```bash
+--price_gpu 0.45 \
+ --price_min_bid 0.25 \
+ --discount_rate 0.30 \
+ --min_chunk 1 \
+ --end_date 12/31/2026
+```
+
+Adjust for your market, operating cost, and risk tolerance. Use the current [vastai list machine](/host/cli/list-machine) syntax.
+
+## Changing Price Later
+
+When a renter accepts an offer, its terms become that rental contract. Later changes affect only future rentals.
+
+| Change | Effect |
+| --- | --- |
+| Raise or lower price | New renters see the new price; active renters keep the accepted price. |
+| Shorten offer end date | New contracts use the new date; active rental end dates do not shorten. |
+| Unlist machine | Stops new rentals; active contracts continue. |
+
+Keep the machine online until the latest active rental end date.
+
+## When To Adjust
+
+| Signal | Possible action |
+| --- | --- |
+| Healthy but idle | Lower price or improve listing fit. |
+| Always rented | Test a modest increase for future contracts. |
+| Similar machines are cheaper | Reprice or improve machine quality. |
+| Poor rentals despite fair price | Check verification, reliability, search visibility, network, storage, and errors. |
+| Strong long-running demand | Consider reserved discount and longer end date. |
+
+## Related
+
+| Question | Read next |
+| --- | --- |
+| Revenue model | [Earnings & Pricing Model](/host/earning) |
+| Market data | [GPU Market Metrics](/host/market-metrics) |
+| CLI listing | [vastai list machine](/host/cli/list-machine) |
+| Interruptible bid floor | [vastai set min-bid](/host/cli/set-min-bid) |
diff --git a/host/quickstart.mdx b/host/quickstart.mdx
new file mode 100644
index 00000000..c449717a
--- /dev/null
+++ b/host/quickstart.mdx
@@ -0,0 +1,22 @@
+---
+title: "Hosting Quickstart"
+sidebarTitle: "Hosting Quickstart"
+description: "Numbered journey for first-time hosts."
+"canonical": "/host/quickstart"
+personas:
+ - hobbyist
+---
+
+Hobbyist
+
+Follow this ordered path for a first-time Vast host setup. Each step links to the page with the full detail.
+
+## Setup Path
+
+1. **Decide whether Vast fits your hardware and expectations.** Read [Is Vast for Me?](/host/persona-decision-guide) and check your hardware against [Supported Hardware](/host/supported-hardware).
+2. **Create a dedicated host account and accept the hosting agreement.** Start from the official [Vast host setup page](https://cloud.vast.ai/host/setup/), then see [Account & Hosting Agreement](/host/account-hosting-agreement) if the account flow gets stuck.
+3. **Prepare the machine.** Set up Ubuntu, drivers, and BIOS with [Hardware Prep](/host/hardware-prep), disks with [Storage Setup](/host/storage-setup), and port forwarding with [Network & Ports](/host/network-ports).
+4. **Install the Vast host software with the Host Installer Wizard (TUI).** Copy the current command from the official [Vast host setup page](https://cloud.vast.ai/host/setup/), then use [Installing Host Software](/host/installing-host-software#host-installer-wizard) to understand the install flow. Running over SSH only? Use the [Headless Install Path](/host/headless-install).
+5. **List the machine.** Set your price and terms with [Pricing Your Listing](/host/pricing-your-listing).
+6. **Run the self-test.** Follow [How to Self-Test](/host/how-to-self-test), and decode any failures with the [Self-Test Reference](/host/self-test-reference).
+7. **Understand verification and first-rental expectations.** Read [Understanding Verification](/host/understanding-verification) and [First 24 Hours After Install](/host/first-24-hours).
diff --git a/host/reliability-uptime.mdx b/host/reliability-uptime.mdx
new file mode 100644
index 00000000..cd885b7b
--- /dev/null
+++ b/host/reliability-uptime.mdx
@@ -0,0 +1,54 @@
+---
+title: "Reliability & Uptime"
+sidebarTitle: "Reliability & Uptime"
+description: "Reliability score, uptime expectations, and common score drops."
+"canonical": "/host/reliability-uptime"
+personas:
+ - pro-operator
+ - headless-operator
+---
+
+Pro OperatorHeadless / DC
+
+Understand reliability score, uptime expectations, common score drops, and practical recovery steps.
+
+
+## Why does reliability drop after rentals, reboots, or disconnects?
+
+Reliability can drop when the platform observes instability, failed starts, disconnections, downtime, network failures, driver or GPU failures, thermal or power events, or active rental disruption. Short rentals can expose startup and runtime failures quickly. Reboots or disconnects during active commitments can hurt reliability.
+
+If you must take the machine offline, minimize the offline time. The score also takes the machine's average earnings into account: machines with lower earnings are penalized less for offline time.
+
+
+## How quickly does reliability recover?
+
+Reliability recovery depends on sustained stable operation and the machine's recent incident history. Some error messages can clear after the underlying issue is resolved, but reliability score recovery should not be treated as an instant reset. Keep the machine stable and error-free, then monitor the score over time.
+
+
+## What should I do when reliability is at or below 0.9?
+
+Reliability greater than 0.9 is a self-test and verification gate. If the machine is at or below the threshold, the normal self-test can fail before renting the temporary instance and the machine will not enter the verification pool. Keep the machine stable, resolve recent hardware, network, driver, daemon, thermal, power, or rental-disruption issues, then retry once the score recovers.
+
+The gate exists so machines that have not been online for a sufficient amount of time are not put through verification testing. Above the gate, higher reliability can make verification more likely because the automated process has more confidence in the machine. Sustained instability after verification can cause a verified machine to be deverified.
+
+Do not use `--ignore-requirements` as a verification shortcut. It is only useful for advanced runtime validation, and the machine still needs enough direct ports for the runtime test to work.
+
+
+## Will restarting lower reliability or remove verification?
+
+Reliability does not directly determine verification state by itself. Verification is separate from the reliability score, but outages, failed starts, driver issues, network drops, or other instability can reduce reliability and may eventually contribute to deverification if the machine becomes unhealthy. Plan restarts around active contracts and use maintenance windows whenever possible.
+
+
+## Preventing score drops
+
+- Do not take the machine offline during active rental contracts; plan work through [Maintenance Windows](/host/maintenance-windows).
+- Disable unattended kernel and NVIDIA driver updates; see [automatic updates](/host/maintenance-windows#automatic-updates).
+- Keep thermals, power delivery, and network stability healthy under sustained load.
+
+## Related pages
+
+| Topic | Read next |
+| --- | --- |
+| How reliability affects verification | [Understanding Verification](/host/understanding-verification) |
+| Self-test preflight gates | [How to Self-Test](/host/how-to-self-test) |
+| Machine errors | [Common Errors & Diagnostics](/host/common-errors-diagnostics) |
diff --git a/host/removing-recreating-machines.mdx b/host/removing-recreating-machines.mdx
new file mode 100644
index 00000000..40d77358
--- /dev/null
+++ b/host/removing-recreating-machines.mdx
@@ -0,0 +1,45 @@
+---
+title: "Removing or Recreating Machines"
+sidebarTitle: "Remove or Recreate"
+description: "Unlisting, deleting, and recreating host machines."
+"canonical": "/host/removing-recreating-machines"
+personas:
+ - pro-operator
+ - headless-operator
+ - business-owner
+ - hobbyist
+---
+
+All host personas
+
+Use this page when you need to unlist, delete, recreate, or replace a host machine.
+
+
+## How do I unlist, delete, or recreate a machine?
+
+Unlisting stops new rental contracts from being created, but it does not end existing contracts. Deleting or recreating a machine should only happen after active commitments and stored workloads are understood. Recreating may be useful after a failed install, stale record, or major hardware change, but do not use undocumented reset or recovery flags unless Vast support specifically instructs you to do so.
+
+From the CLI, see [vastai unlist machine](/host/cli/unlist-machine), [vastai delete machine](/host/cli/delete-machine), and [vastai cleanup machine](/host/cli/cleanup-machine).
+
+
+## What changes when I swap GPUs or other hardware?
+
+Hardware changes can affect verification, search visibility, offers, and client expectations. Reducing GPU count, RAM, disk, or advertised capacity can trigger deverification or contract problems. Adding or replacing GPUs may require the host daemon or backend to refresh machine specs, and you may need to rerun self-test. The same-GPU-type guideline still applies; see [Supported Hardware](/host/supported-hardware).
+
+
+## Uninstalling the host software
+
+To uninstall, use the Vast uninstall script located at [https://s3.amazonaws.com/vast.ai/uninstall](https://s3.amazonaws.com/vast.ai/uninstall). Make sure active rental contracts have ended and the machine is unlisted first.
+
+
+## What should I do with a ghost machine?
+
+First inspect whether the machine has active contracts, stored instances or volumes, visible offers, or backend state preventing deletion. Use the normal unlist/delete/cleanup path only when safe. If a stale backend record remains after normal cleanup, collect the account context, screenshots or CLI output, and relevant logs, then contact Vast support.
+
+## Related pages
+
+| Topic | Read next |
+| --- | --- |
+| Honoring active contracts first | [Maintenance Windows](/host/maintenance-windows) |
+| Verification impact of changes | [Verification Stages](/host/verification-stages) |
+| Diagnostics for stale records | [Common Errors & Diagnostics](/host/common-errors-diagnostics#escalate-support) |
diff --git a/host/self-test-reference.mdx b/host/self-test-reference.mdx
new file mode 100644
index 00000000..f1cdd037
--- /dev/null
+++ b/host/self-test-reference.mdx
@@ -0,0 +1,106 @@
+---
+title: "Self-Test Reference"
+sidebarTitle: "Self-Test Reference"
+description: "Lookup reference for self-test failures, meanings, and next actions."
+"canonical": "/host/self-test-reference"
+personas:
+ - pro-operator
+ - headless-operator
+---
+
+Pro OperatorHeadless / DC
+
+Use this reference to look up self-test failures, understand what they usually mean, and choose the next diagnostic step. Each failure has its own anchor so CLI errors and support replies can link directly to it.
+
+## Quick Error Lookup
+
+Use the exact message printed by the CLI. Fix the host-side cause, then rerun self-test.
+
+| Message or stage | Usually means | Host action |
+| --- | --- | --- |
+| `Machine not found or not rentable` | The machine is not testable from the current account or has no rentable offer. | Check listing state, active offers, account/API key, reliability, red errors, and missing machine details. |
+| `Reliability <= 0.90` | The machine has not met the reliability gate. | Keep the host online and stable; use diagnostic mode only for troubleshooting, not verification proof. |
+| `Authorization Error`, `HTTP 401`, or missing permission | The API key cannot inspect the machine or offer. | Use a host-enabled account/API key with the needed machine and offer permissions. |
+| `CUDA compatibility` failure | Driver/runtime support is too old for the self-test image. | Update or repair the NVIDIA driver stack, then confirm Docker GPU access. |
+| Direct ports below requirement | The machine does not expose enough direct ports for the listed GPUs. | Configure and forward at least 3 TCP/UDP ports per listed GPU for self-test; use more headroom for production hosting. |
+| PCIe bandwidth failure or `bad bandwidthtest2` | GPU transfer or PCIe health is below the gate. | Check PCIe lanes, risers, slots, power, thermals, Xid/AER logs, and GPU seating. |
+| Upload/download bandwidth failure | Network throughput is below the machine requirement. | Check ISP/datacenter bandwidth, routing, host load, and repeated speed results. |
+| VRAM, RAM, or physical CPU core failure | Hardware resources do not meet the listed GPU requirement. | Confirm visible GPUs, host RAM, and at least one physical CPU core per visible GPU. |
+| `progress_endpoint_unreachable`, `progress_empty_timeout`, `progress_endpoint_lost`, or `No response for 120s` | The temporary test instance did not provide progress. | Check public TCP reachability, container startup, Docker/NVIDIA runtime, daemon logs, and the support bundle. |
+| UDP echo failure | TCP may work, but the public UDP path failed. | Forward UDP for the same direct port range and test from outside the LAN. |
+| System requirements failure | The container could not confirm core host resources. | Check RAM, CPU cores, GPU visibility, and container logs in the bundle. |
+| ResNet, ECC, or `gpu-burn` failure | GPU compute, memory, ECC, thermal, or stability issue. | Check `nvidia-smi`, Xid/NVRM logs, thermals, power, and rerun after fixing hardware/driver issues. |
+| `failed to inject CDI devices` or `nvidia-container-cli` | Docker could not inject GPUs into the container. | Confirm `nvidia-smi` and a normal Docker GPU container both work. |
+| `nccl_failed` | Multi-GPU communication failed. | Check CUDA/NCCL compatibility, PCIe/NVLink topology, P2P, Xid logs, and Fabric Manager on NVSwitch systems. |
+
+
+## vericode=8 And Port Networking Issues
+
+[Glossary: vericode](/host/glossary#vericode)
+
+`vericode=8` means the machine has a host-facing `error_msg` in the platform state. If the visible message is `Port Networking Issues`, `Port issue`, or similar wording, treat it as a direct-port or connectivity problem. Other `vericode=8` cases can point to Docker/NVIDIA runtime, CDI, PCIe, daemon, or other machine errors, so use the exact console message when choosing the next fix.
+
+For port-networking cases, common causes include closed external ports, forwarding to the wrong LAN IP, CGNAT or double NAT without a real public forwarding path, no inbound public IP, firewall rules, TCP/UDP mismatch, asymmetric protocol handling, or a stale port range. Test the public IP:port if available, verify router and host firewall rules, then rerun the self-test after fixing the network path. See [Network & Ports](/host/network-ports) for the full connectivity checklist and [Machine Error Reference](/host/machine-errors) for non-port `vericode=8` errors.
+
+
+## No response for 120s
+
+A `no response` or progress timeout means the CLI could not get usable progress from the temporary self-test instance after it was created. Newer CLI output may show a more specific code such as `progress_endpoint_unreachable`, `progress_empty_timeout`, or `progress_endpoint_lost`. Start with connectivity and startup checks:
+
+- Inspect the tested external IP:port if the CLI printed one.
+- Confirm router or firewall forwarding to the host LAN IP.
+- Retry from an outside network to rule out NAT hairpinning; see [testing from outside your LAN](/host/network-ports#test-ports-outside-lan).
+- Inspect the diagnostic bundle for instance status, container logs, and daemon logs.
+
+Other likely causes include container startup failure, Docker/NVIDIA runtime stalls, host daemon stalls, GPU or system hangs, or upload instability.
+
+
+## Machine not found or not rentable
+
+This can mean the machine is already rented in a way that hides the expected offer, has zero active on-demand offers, is offline or unlisted, is not visible to the account running the test, is deverified or below a threshold, or has offer-side error metadata.
+
+Start with:
+
+1. Open the Machines page for the host account.
+2. Confirm the machine is listed, online, not currently rented, and has active offers.
+3. Check reliability, verification state, red machine errors, and missing details such as ports, RAM, upload speed, and download speed.
+4. Confirm the CLI is authenticated to the same host-enabled account.
+5. Search directly for the machine ID; see [Why Isn't My Machine in Search?](/host/not-in-search#check-machine-listed).
+6. If the console state looks wrong after refresh and rerun, collect logs and escalate to support.
+
+
+## `nccl_failed`
+
+`nccl_failed` means the temporary self-test instance could not initialize and synchronize NCCL workers across the visible GPUs. Treat this as a multi-GPU communication failure, not as proof of one specific root cause.
+
+Start with:
+
+1. Inspect the self-test support bundle for the NCCL error output.
+2. Confirm every GPU is visible with `nvidia-smi` and Docker GPU access.
+3. Check driver/CUDA/PyTorch/NCCL compatibility.
+4. Check GPU peer-to-peer communication, PCIe/NVLink topology, Xid errors, and any GPU reset or bus errors.
+5. On HGX, DGX, or other NVSwitch systems, check Fabric Manager/NVLSM on the host. The self-test container can show NCCL symptoms, but it cannot confirm whether host services such as `nvidia-fabricmanager` are running or healthy.
+
+Useful host-side checks for NVSwitch systems include:
+
+```bash
+systemctl status nvidia-fabricmanager
+journalctl -u nvidia-fabricmanager --since "-24h"
+nvidia-smi -q | grep -i -A 2 Fabric
+nvidia-smi topo -m
+```
+
+Fabric state should normally show completed/successful registration on systems where NVIDIA exposes fabric state through NVML. If Fabric Manager is not applicable to the hardware, focus on driver/runtime compatibility, PCIe/NVLink topology, and the raw NCCL error.
+
+
+## Which warnings can be ignored?
+
+Avoid ignoring warnings by default. One clear self-test advisory is that mapping more than the minimum number of direct ports per GPU is not itself a self-test gate. For production hosting, about 100 forwarded TCP/UDP ports per listed GPU is still practical headroom because individual instances can use many ports and old mappings may overlap with new starts. Red machine errors, self-test failures, NVML/Xid errors, port networking issues, and not-visible/rentable states should be investigated.
+
+## Reliability below the preflight gate
+
+Reliability greater than 0.9 is a self-test and verification gate; if the machine is at or below it, the self-test can fail before renting the temporary instance. See [Reliability & Uptime](/host/reliability-uptime#reliability-threshold).
+
+## Errors not specific to the self-test
+
+For `bad bandwidthtest2`, CDI device injection failures, NVML mismatches, and other machine-health errors, see [Machine Error Reference](/host/machine-errors) and [Common Errors & Diagnostics](/host/common-errors-diagnostics).
diff --git a/host/storage-setup.mdx b/host/storage-setup.mdx
new file mode 100644
index 00000000..524fd770
--- /dev/null
+++ b/host/storage-setup.mdx
@@ -0,0 +1,152 @@
+---
+title: "Storage Setup"
+sidebarTitle: "Storage Setup"
+description: "Disk, filesystem, Docker storage, XFS, RAID, and NVMe guidance for hosts."
+"canonical": "/host/storage-setup"
+personas:
+ - pro-operator
+ - headless-operator
+---
+
+Pro OperatorHeadless / DC
+
+Vast uses Docker storage for renter data. Put `/var/lib/docker` on fast SSD/NVMe storage with XFS project quotas.
+
+
+Formatting a disk or LVM volume destroys data. Identify the OS disk and any provider data mount before running `mkfs`.
+
+
+
+## Docker Storage Layout
+
+Current listing guidance expects at least 128 GB of fast SSD storage per GPU. Docker storage should:
+
+- Be on the intended data disk, not accidentally on the OS disk.
+- Mount predictably at boot before Docker and the host daemon start.
+- Use XFS with `pquota` or `prjquota`.
+- Have enough capacity for active rentals, stopped instances, cached images, and any volume offers.
+
+Inspect first:
+
+```bash
+lsblk -f
+findmnt /
+findmnt /data0 || true
+findmnt /var/lib/docker || true
+df -h /
+```
+
+Back up `/etc/fstab` before editing mounts:
+
+```bash
+sudo cp /etc/fstab /etc/fstab.pre-vast-docker.$(date -u +%Y%m%d%H%M%S)
+```
+
+
+## XFS Project Quotas
+
+XFS project quotas are required. Vast uses them for per-container storage quotas.
+
+Add `pquota` or `prjquota` to the mount-options column for the `/var/lib/docker` XFS mount in `/etc/fstab`. In the example below, the mount-options column is `rw,auto,pquota,nofail`:
+
+```text
+UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 /var/lib/docker xfs rw,auto,pquota,nofail 0 0
+```
+
+After editing `/etc/fstab`, mount and verify:
+
+```bash
+sudo mount -a
+findmnt /var/lib/docker -no SOURCE,FSTYPE,OPTIONS
+sudo xfs_quota -x -c "state" /var/lib/docker
+```
+
+The mount should be XFS, include `pquota` or `prjquota`, and show project quota accounting/enforcement as ON.
+
+Do not work around quota errors by removing Docker quota settings. Fix the filesystem and mount instead.
+
+
+## Disposable Device Example
+
+Use this only after you have confirmed the target partition, RAID device, or LVM volume is safe to dedicate to Docker.
+
+```bash
+export VAST_DOCKER_DEVICE=/dev/mapper/vg1-lv--1
+lsblk -f "$VAST_DOCKER_DEVICE"
+findmnt -S "$VAST_DOCKER_DEVICE" || true
+if findmnt -S "$VAST_DOCKER_DEVICE" >/dev/null; then
+ sudo umount "$VAST_DOCKER_DEVICE"
+fi
+sudo mkfs.xfs -f "$VAST_DOCKER_DEVICE"
+sudo mkdir -p /var/lib/docker
+sudo blkid "$VAST_DOCKER_DEVICE"
+```
+
+Comment out any old `/data0` line for the same device, add the `/var/lib/docker` fstab line, then mount:
+
+```bash
+sudo mount -a
+findmnt /var/lib/docker -no SOURCE,FSTYPE,OPTIONS
+sudo xfs_quota -x -c "state" /var/lib/docker
+```
+
+If you are starting from a raw disk, create a partition first. The [Headless Install Path](/host/headless-install) includes a `cfdisk` example.
+
+
+## Example fstab Line
+
+Use the disk UUID, not a device name like `/dev/nvme0n1p1`:
+
+```text
+UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 /var/lib/docker xfs rw,auto,pquota,nofail 0 0
+```
+
+After editing:
+
+```bash
+sudo mount -a
+findmnt /var/lib/docker -no SOURCE,FSTYPE,OPTIONS
+sudo xfs_quota -x -c "state" /var/lib/docker
+```
+
+The mount should be XFS, include `pquota` or `prjquota`, and show project quota accounting/enforcement as ON.
+
+
+## Single NVMe vs RAID
+
+One NVMe is simplest. Multiple NVMes in RAID0 can improve capacity and throughput, but RAID0 has no redundancy: one failed drive can break the array.
+
+Redundant RAID layouts only help if you know when a device has failed. Set up disk health monitoring and failure notifications for the RAID layer, NVMe/SMART health, and any controller or storage software you use. Without notifications, a degraded array can leave you blind until another failure causes downtime or data loss.
+
+Pick the layout that matches your reliability goals, then monitor it like production storage.
+
+
+## Docker pquota Error
+
+`--storage-opt is supported only for overlay over xfs with pquota` means Docker storage is not on XFS with project quotas.
+
+Move Docker's data root to a correctly mounted XFS filesystem, verify quotas, then restart Docker and the host software.
+
+## Installer Connection
+
+The Host Installer Wizard should detect prepared Docker storage. If you use the [headless fallback installer](/host/installing-host-software#headless-fallback), pass the block device behind the Docker mount:
+
+```bash
+sudo python3 ./install "$VAST_HOST_KEY" \
+ --no-driver \
+ --docker-partition /dev/mapper/vg1-lv--1 \
+ --ports 40000 40799
+```
+
+Fix ext4, missing quotas, or wrong-device mounts before installing.
+
+## Volume Offers And Cached Images
+
+Rented volume space reduces storage available to GPU offers. Cached images can be reused when possible instead of redownloaded.
+
+For volume behavior, see [Hosting Overview](/host/hosting-overview#volume-offers).
+
+
+## Does Vast redownload images that were already used?
+
+Prior images are cached when possible. If a renter uses an image already present on the machine, the system can reuse it.
diff --git a/host/supported-hardware.mdx b/host/supported-hardware.mdx
new file mode 100644
index 00000000..5019b53d
--- /dev/null
+++ b/host/supported-hardware.mdx
@@ -0,0 +1,83 @@
+---
+title: "Supported Hardware"
+sidebarTitle: "Supported Hardware"
+description: "Hardware compatibility guidance before buying or listing a host machine."
+"canonical": "/host/supported-hardware"
+personas:
+ - hobbyist
+ - business-owner
+---
+
+HobbyistBusiness
+
+Use this page before buying hardware, installing the host software, or listing a machine.
+
+
+Meeting minimum requirements makes a machine eligible. It does not guarantee verification, search placement, rentals, or earnings.
+
+
+## Quick Check
+
+A typical Vast host needs:
+
+- Native Ubuntu/Linux on x86_64/AMD64 hardware.
+- Same-type GPUs.
+- Supported NVIDIA GPUs, or the AMD families listed below.
+- More than 7 GiB VRAM per GPU.
+- AVX-capable CPU.
+- At least one physical CPU core per visible/listed GPU. Hyperthreads do not count.
+- Enough system RAM for the GPU tier.
+- Fast SSD/NVMe storage, with at least 128 GB per GPU as a listing baseline.
+- Public inbound networking with direct TCP and UDP port forwarding.
+
+## GPU Support
+
+| Vendor | Guidance |
+| --- | --- |
+| NVIDIA | 10-series or newer. Newer datacenter, workstation, and recent consumer GPUs are more attractive to renters. |
+| AMD | MI25 or newer Radeon Instinct, Radeon VII, Radeon Pro VII, Radeon RX 7900 GRE/XT/XTX, and Radeon Pro W7900/W7800. Other 6000-series or newer Radeon RX/Pro W GPUs may work, but may not appear in standard ROCm filters. |
+
+Avoid mixed GPU models unless Vast explicitly documents support for that setup.
+
+If a new GPU model is not listed or searchable yet, ask Vast to add it through support or the [host community channels](/host/community).
+
+## Minimum Listing Baseline
+
+| Area | Baseline |
+| --- | --- |
+| OS | Ubuntu 24.04 LTS preferred; Ubuntu 22.04 also works. |
+| Machine use | Dedicated host machine while rented. |
+| CPU | AVX-capable, with at least one physical core per listed GPU. |
+| System RAM | At least 4 GB per GPU as a listing baseline; high-VRAM GPUs may need more. |
+| Storage | Fast SSD/NVMe, at least 128 GB per GPU. |
+| PCIe | Enough lanes/bandwidth for the GPUs; avoid unstable risers, power, and BIOS layouts. |
+| Network | Reliable public inbound connectivity for the configured port range. |
+
+For current verification thresholds, see [Verification Stages](/host/verification-stages#additional-requirements-for-verification).
+
+## Balance Matters
+
+A strong GPU can still be a poor host if the rest of the machine is weak. Match CPU, RAM, PCIe, storage, cooling, power, and network capacity to the GPU tier.
+
+Avoid reducing GPU count, RAM, disk, or other capacity after the machine is created; reductions can trigger deverification.
+
+## Storage And Network
+
+Docker storage should be fast, predictable, and mounted before Docker starts. Vast uses XFS project quotas for per-container storage limits. See [Storage Setup](/host/storage-setup).
+
+Hosts also need public inbound connectivity. CGNAT, double NAT without a real public forwarding path, blocked ports, IPv6-only service, LAN-only port forwarding, packet loss, or unstable upload can prevent listing, self-test, or rentals. See [Network & Ports](/host/network-ports).
+
+## Unsupported Or Discouraged Setups
+
+| Setup | Why |
+| --- | --- |
+| Windows or WSL as the host OS | Vast hosting is built for native Linux hosts. |
+| ARM or GB10-class systems | Current host requirements assume AVX-capable x86_64/AMD64 hardware unless Vast documents an ARM path. |
+| Mixed GPU models | Complicates offers, verification, and renter expectations. |
+| Low-VRAM or very old GPUs | Self-test requires more than 7 GiB VRAM; demand may also be weak. |
+| Gaming/workstation use during rentals | Rented machines should be dedicated. |
+| No public inbound networking | Connectivity checks and renter access can fail. |
+
+## Before You Buy
+
+Confirm GPU demand with [GPU Market Metrics](/host/market-metrics), then verify CPU, RAM, PCIe, storage, and networking before spending money. After hardware is ready, continue with [Hosting Quickstart](/host/quickstart).
diff --git a/host/understanding-verification.mdx b/host/understanding-verification.mdx
index 044e025b..e3f40ab3 100644
--- a/host/understanding-verification.mdx
+++ b/host/understanding-verification.mdx
@@ -1,135 +1,77 @@
---
-title: Understanding Verification
+title: "Understanding Verification"
+sidebarTitle: "Understanding Verification"
createdAt: Mon Nov 03 2025 17:30:00 GMT+0000 (Coordinated Universal Time)
updatedAt: Mon Nov 03 2025 17:30:00 GMT+0000 (Coordinated Universal Time)
"canonical": "/host/understanding-verification"
+personas:
+ - pro-operator
+ - headless-operator
+ - business-owner
+ - hobbyist
---
+All host personas
+
## How Verification Works
-Verification is **fully automated and powered by proprietary algorithms** that continuously evaluate each machine’s operational health and performance, dynamically adjusting assessments based on real-time **supply and demand**.
-
-Only machines that meet the platform's defined reliability and performance thresholds are eligible for verification.
-
-This process involves **no manual intervention**, ensuring consistent, scalable, and objective verification across all systems.
-
----
-
-To qualify, a machine must pass [minimum baseline](https://docs.vast.ai/host/how-to-self-test), and health/stability checks. Beyond that, the system evaluates four primary criteria (order not indicative of priority):
+Verification is automated. A machine becomes eligible when it passes self-test and meets reliability, performance, hardware, network, and marketplace gates.
-**Note:** Meeting the minimum requirements makes your machine eligible for verification, but it does not guarantee that verification will occur immediately. The final verification outcome still depends on the factors listed below.
+Eligibility does not guarantee immediate verification, search placement, or rentals.
-## 1) Reliability
-
-**Definition:** Stable, uninterrupted operation over time (uptime, resilience under continuous workloads).
-
-**Do**
-
-- Maintain consistent uptime with minimal downtime.
-- Keep network connectivity stable; avoid jitter and drops.
-- Manage thermals and power to prevent throttling.
-- Proactively monitor hardware health and perform maintenance.
-
-**Avoid**
-
-- Frequent restarts or unplanned outages.
-- Overheating, undervolting, or unstable power delivery.
-
-> **Note:** Higher reliability greatly improves verification likelihood. Sustained ≥99.99% (up to 99.9999%+) uptime is typically favored.
-
----
-
-## 2) Infrastructure Configuration
+Verification is not permanent. Automation can move machines between Unverified, Verified, and Deverified as reliability, health, performance, network reachability, and marketplace conditions change.
-**Definition:** Hardware, network, and software readiness to meet operational standards.
+## Main Factors
-### Hardware
+| Factor | What matters |
+| --- | --- |
+| Reliability | The machine enters the verification pool when reliability is greater than 0.9. Higher reliability improves confidence. |
+| Hardware balance | GPU model/count, VRAM, CPU, RAM, PCIe bandwidth, storage, and network should match the GPU tier. |
+| Network | Stable bandwidth and reachable direct ports. |
+| Software | Compatible NVIDIA/AMD driver stack, CUDA/runtime health, Docker/GPU runtime health, and a clean host. |
+| DLPerf | Sustained real-world GPU throughput; PCIe, thermals, power, and drivers can affect it. |
+| VM support | Optional, but can improve fit for some renter searches when enabled and supported. |
+| Marketplace demand | In-demand GPUs, strong reliability, enough VRAM, and good network/location are more likely to be prioritized. |
-- **GPU:** Type, memory, and count matter. Newer datacenter/workstation GPUs are prioritized (e.g., B200 > H200 >> 5090 > 4070).
-- **VRAM:** More VRAM improves performance profiles.
-- **GPU Count:** For the same GPU type, more GPUs increase verification likelihood (e.g., 8×5090 >> 2×5090 > 1×5090).
-- **PCIe Bandwidth:** Adequate throughput is essential; bottlenecks depress DLPerf and overall performance.
-- **CPU:** Favor strong, server-grade CPUs; actual measured performance matters.
-- **Storage:** Both capacity and bandwidth (e.g., NVMe) impact responsiveness and reliability.
+
+## Supply And Demand
-### Network
+Verification also considers renter demand and available supply. A healthy machine can wait if demand for that configuration is low, while scarce or high-demand configurations may be prioritized.
-- High-speed, symmetric, stable bandwidth is favored.
-- Ensure required ports are open and accessible; a static IP helps.
+To improve fit:
-### Virtualization
+- Use in-demand GPU models.
+- Keep reliability high.
+- Avoid under-provisioned CPU, RAM, PCIe, storage, or bandwidth.
+- Enable VM support only when the machine supports it cleanly.
+- Keep the system dedicated to Vast workloads.
-- Enabling VM support significantly improves verification likelihood.
+
+## How Long Can Verification Take?
-### Software
+There is no fixed timeline. Passing self-test makes the machine eligible, but timing depends on automated checks, reliability, machine health, supply, demand, and platform policy.
-- Drivers/CUDA must be correctly installed and compatible (use stable **latest** releases).
-- Keep systems clean; run workloads via Create Job only.
+
+## Can Support Verify My Machine?
-### System Optimization & Upgrades
+No. Support can help with account issues or backend anomalies, but ordinary verification is not a manual support queue. Keep the machine healthy, eligible, and competitively listed while automation evaluates it.
-- Balanced scaling matters (CPU/RAM/PCIe/bandwidth commensurate with GPU tier).
-- Do not reduce hardware after creation (e.g., fewer GPUs/RAM) - this will trigger Deverified.
-- Upgrades (adding GPUs/RAM) are allowed but may take time to reflect across the platform.
+## Avoid
-**Do**
-
-- Verify GPU PCIe connections provide full bandwidth and are not throttled.
-- Keep the latest drivers/CUDA aligned with workloads.
-- Confirm required ports and end-to-end reachability.
-
-**Avoid**
-
-- Pairing high-end GPUs with under-provisioned CPU/RAM.
-- Letting hidden background services consume resources.
-
----
-
-## 3) DLPerf Score
-
-**Definition:** Estimated GPU performance on typical deep-learning tasks (e.g., CNN/Transformer training) for cross-hardware comparison. Higher DLPerf improves verification odds. [Read more](https://docs.vast.ai/guides/reference/faq/rental-types#dlperf-scoring)
-
-**Do**
-
-- Use the **latest** compatible drivers/CUDA.
-- Eliminate PCIe, thermal, and power bottlenecks to maintain sustained clocks.
-
-**Avoid**
-
-- Misconfigurations that suppress benchmark performance.
-
----
-
-## 4) Supply & Demand Analysis
-
-**Definition:** Ongoing evaluation of market trends and renter behavior to surface configurations most likely to be rented.
-
-**Implication:** Machines aligned with active renter preferences-popular GPUs, sufficient VRAM, strong reliability, fast internet-are prioritized for verification to maximize utilization and profitability.
-
-**Do**
-
-- Offer in-demand GPU models with adequate VRAM and balanced resources.
-- Maintain strong reliability to remain attractive once listed.
-
-**Avoid**
-
-- Niche/mismatched configurations with low renter interest.
-
----
-
-## Quick Reference
-
-| **Category** | **What Matters Most** | **How to Improve** |
-|---------------|------------------------|--------------------|
-| Reliability | Stable, uninterrupted uptime | Proactive monitoring; steady power/thermals; minimize restarts |
-| Network | Symmetric, stable bandwidth; open ports | Upgrade links; verify routing/ports; monitor jitter/loss |
-| Hardware | Modern GPUs/CPUs; adequate PCIe & RAM | Favor DC/workstation GPUs; ensure PCIe lanes; match CPU/RAM to GPU tier |
-| Storage | Throughput and reliability | Prefer NVMe; monitor SMART; ensure sustained bandwidth |
-| Virtualization | VM capability enabled | Enable in BIOS; enable IOMMU. |
-| Software | Correct drivers/CUDA; clean system | Install latest, stable, compatible versions; use Create Job only |
-| DLPerf | High real-world throughput | Fix PCIe/thermal bottlenecks; maintain clocks; correct drivers |
-| Supply & Demand | Alignment with renter needs | Choose popular GPUs/VRAM; balance specs; maintain reliability |
-| Upgrades | Changes reflected by platform | Scale up (add GPUs/RAM); avoid reductions that cause Deverified |
+- Frequent restarts or unplanned outages.
+- Closed ports, packet loss, or unstable upload.
+- Thermal, power, PCIe, or driver instability.
+- Background workloads outside Vast jobs/rentals.
+- Reducing GPU count, RAM, disk, or other capacity after machine creation.
+
+## Read Next
+
+| Topic | Page |
+| --- | --- |
+| Exact requirements | [Verification Stages](/host/verification-stages#additional-requirements-for-verification) |
+| Run diagnostics | [How to Self-Test](/host/how-to-self-test) |
+| Reliability | [Reliability & Uptime](/host/reliability-uptime) |
+| Market fit | [GPU Market Metrics](/host/market-metrics) |
diff --git a/host/verification-stages.mdx b/host/verification-stages.mdx
index 7976ce03..ce23ac83 100644
--- a/host/verification-stages.mdx
+++ b/host/verification-stages.mdx
@@ -1,137 +1,116 @@
---
-title: Verification Stages
+title: "Verification Stages"
+sidebarTitle: "Verification Stages"
createdAt: Mon Jan 13 2025 21:20:40 GMT+0000 (Coordinated Universal Time)
updatedAt: Mon Nov 03 2025 12:50:03 GMT+0000 (Coordinated Universal Time)
"canonical": "/host/verification-stages"
+personas:
+ - pro-operator
+ - headless-operator
+ - business-owner
+ - hobbyist
---
+All host personas
-## States & Lifecycle
+Verification is automated. There is no manual review step for ordinary host verification.
-**States:** Unverified → Verified → (potentially) Deverified → Unverified → ...
+## Lifecycle
-**Lifecycle:** Machines automatically move between these states based on performance and reliability factors. Once verified, a machine will remain verified unless issues arise, such as failing health checks or reliability standards, which could lead to deverification.
+Machines move between:
----
-
-## How It Works
-
-Verification is **entirely automated by proprietary algorithms** that assess each machine’s operational health and performance, incorporating [supply-and-demand](https://docs.vast.ai/host/understanding-verification#4-supply-&-demand-analysis) dynamics.
-
-Only machines that meet the platform’s reliability and [performance thresholds](https://docs.vast.ai/host/how-to-self-test) are eligible for verification. There is **no manual intervention**, ensuring consistency, scalability, and objectivity.
-
----
-
-## Host Responsibilities (Always)
+```text
+Unverified -> Verified -> Deverified -> Unverified
+```
-- Keep systems stable, well-cooled, and correctly configured.
-- Maintain compatible drivers/CUDA and dependable, symmetric networking.
-- Run jobs only through the Jobs tab or the `create job` CLI command.
-- When issues arise, fix them promptly-the automation will update status.
+Automation evaluates reliability, performance, hardware, network, and current marketplace demand.
----
+## Listing Minimums
-## State Details & Guidance
+To be listed, a machine should meet these baselines:
-### Unverified
-
-**What it means:** Newly added machines or machines under evaluation. The system hasn't yet completed enough testing to confirm platform standards. This is not a judgment of quality-only that no platform guarantee exists yet.
+```text
+- Ubuntu 24.04 LTS preferred; Ubuntu 22.04 LTS also works
+- Dedicated machine while rented
+- Fast, reliable internet: at least 10 Mbps per machine
+- Supported same-type GPUs
+- At least 1 physical CPU core per GPU
+- AVX-capable CPU
+- At least 4 GB system RAM per GPU
+- Fast SSD storage with at least 128 GB per GPU
+- Sufficient PCIe bandwidth
+- Open port range mapped to the machine
+```
-**Do**
-- [Pass the Self-Test](https://docs.vast.ai/host/how-to-self-test)
-- Maintain steady uptime during evaluation.
-- Ensure drivers/CUDA and networking are correctly installed and reachable.
-- Keep the environment clean; schedule work via Create Job only.
+For hardware detail, see [Supported Hardware](/host/supported-hardware).
-**Avoid**
-- Unnecessary reboots or configuration changes.
-- Unrelated background workloads that consume GPU/CPU/IO.
+
+## Verification Requirements
----
+To enter the verification pool, the machine must also meet current self-test and platform gates:
-### Minimum Guidelines for Listing on Vast.ai
-
-In order to be listed on Vast.ai, the machine must follow these minimum guidelines:
-
-```text Text
-- Ubuntu 18.04 or newer (required)
-- Dedicated machines only - the machine shouldn't be doing other stuff while rented
-- Fast, reliable internet: at least 10Mbps per machine.
-- 10-series Nvidia GPU or MI25 or newer Radeon Instinct series GPU or Radeon VII or Radeon Pro VII or Radeon RX 7900 (GRE/XT/XTX); or Radeon Pro W7900/W7800. Other 6000 series or newer Radeon RX/Pro W series GPUs may be supported; but may not be searchable using standard filters for AMD ROCm.
-- At least 1 physical CPU core (2 hyperthreads) per GPU.
-- Your CPU must support AVX instruction set (not all lower end CPUs support this).
-- At least 4 GB of system RAM per GPU.
-- Fast SSD storage with at least 128GB per GPU.
-- At least 1X PCIe for every 2.5 TFLOPS of GPU performance.
-- All GPUs on the machine must be of the same type.
-- An open port range mapped to each machine.
+```text
+- CUDA version >= 11.8
+- Reliability > 0.9
+- At least 3 direct ports per GPU, forwarded for both TCP and UDP
+- PCIe bandwidth > 2.85 GB/s
+- Download and upload bandwidth scale with total VRAM
+- GPU RAM > 7 GB per GPU
+- System RAM at least 95% of total GPU VRAM, capped around 2 TB for very high-VRAM machines
+- Passing self-test
```
----
-### Additional Requirements for Verification
+Bandwidth thresholds scale at about 2.6 Mbps per GiB of total VRAM, with a 100 Mbps floor and 500 Mbps ceiling.
-In order for your unverified machine to be verified, it must also meet the following minimum requirements:
+Reliability greater than 0.9 is the verification gate. Higher reliability improves confidence and can improve verification likelihood. See [Reliability & Uptime](/host/reliability-uptime#reliability-threshold).
-```text Text
-- CUDA version greater than or equal to 12.0
-- Reliability of 90%
-- At least 3 open ports per GPU (100 recommended)
-- Internet Download speed must scale with total machine VRAM at ~2.6 Mbps per GiB, with a 100 Mbps floor and 500 Mbps ceiling
-- Internet Upload speed must scale with total machine VRAM at ~2.6 Mbps per GiB, with a 100 Mbps floor and 500 Mbps ceiling
-- GPU RAM of 7 GB
-- Passing the Self-Test
-```
-> **Note:** High-end GPUs are more likely to be verified. Machines with datacenter GPUs such as B200, H200, H100, A100, etc., and those with premium GPUs such as RTX PRO 6000 WS, 8xRTX 5090, 8xRTX 4090, etc., receive prioritized verification processing due to their high demand and performance capabilities.
-
-**Tip:** Meeting these minimum requirements makes your machine eligible for verification, but does not automatically guarantee verification. [Read More about Verification](https://docs.vast.ai/host/understanding-verification)
-
----
+
+Meeting requirements makes the machine eligible. It does not guarantee immediate verification, search placement, or rentals.
+
+## Unverified
-### Verified
+Unverified means the machine is new, under evaluation, or not currently meeting verification conditions.
-**What it means:** The machine passed automated checks for reliability, network stability, operational health, and performance. A Verified machine consistently delivers server services to platform standards.
+Do:
-**Do**
-- Monitor health (uptime, thermals, power) and respond to alerts.
-- Keep drivers/CUDA on compatible, **latest** stable versions.
-- Maintain stable, symmetric bandwidth.
+- Pass [self-test](/host/how-to-self-test).
+- Keep uptime stable.
+- Fix driver, network, storage, and daemon errors.
+- Avoid background workloads outside the Jobs tab or `create job`.
-**Avoid**
-- Downgrading hardware capacity (e.g., reducing GPU count, disk or RAM).
-- Allowing thermal, power, or bandwidth instability under load.
+Avoid unnecessary reboots or hardware/config changes during evaluation.
----
+## Verified
+
+Verified means the machine passed automated checks and currently meets platform standards.
-### Deverified
+Keep it verified by:
-**What it means:**
-A previously Verified machine no longer meets requirements. System continuous monitoring detects sustained degradation.
+- Monitoring thermals, power, drivers, Docker, and daemon health.
+- Keeping networking stable and reachable.
+- Avoiding hardware reductions after the machine is created.
+- Responding quickly to red machine errors.
-**When will deverification happen?**
-- When the hosting software detects an error, your machine is automatically, but **temporarily**, deverified. It will appear as *Unverified* in search results until the underlying issue is resolved.
+## Deverified
-**How should I begin fixing it?**
-- A **red error indicator** will appear on your machine in the Machines tab. Use this message to identify and investigate the issue in your logs or metrics.
+Deverified means a previously verified machine no longer meets requirements. It appears as Unverified until the issue clears.
-**Recovery:**
-Fix the issue and restore stability; the system will **automatically** transition back to Verified once system confirms healthy operation.
-This process may take some time, as the system ensures that the issue is fully resolved before restoring verification. Most error messages are cleared within 1-2 hours of resolution.
+Common causes:
-**Common causes**
- Network instability, closed ports, or low bandwidth.
-- Hardware/system errors (e.g., failing storage, insufficient PCIe bandwidth).
-- GPU issues (e.g., nvidia-smi/NVML failures, container device init errors).
-- Container launch failures or repeated runtime exceptions.
-- Detected abuse or policy violations.
+- GPU, NVML, Xid, PCIe, power, thermal, or storage errors.
+- Container launch failures.
+- Reliability dropping to or below the gate.
+- Policy or abuse-related flags.
-**Do**
-- Investigate red error indicators quickly; review logs and metrics.
-- Validate thermal/power headroom and bandwidth under load.
-- Re-check health after changes to confirm resolution.
+Fix the underlying issue and wait for automation to refresh state. Most machine error states clear only after the platform sees sustained healthy behavior.
-**Avoid**
-- Ignoring warnings or allowing instability to persist.
-- Reducing hardware below the created specification.
+## Read Next
-> **Note:** If you’ve fixed the issue but the system doesn’t automatically detect the resolution, a Vast.ai team member may need to manually check that your machine is functioning correctly and clear the error.
+| Topic | Page |
+| --- | --- |
+| What verification means | [Understanding Verification](/host/understanding-verification) |
+| Running self-test | [How to Self-Test](/host/how-to-self-test) |
+| Generated self-test checks | [Self-Test Reference](/host/self-test-reference) |
+| Direct ports | [Network & Ports](/host/network-ports) |
diff --git a/host/vms.mdx b/host/vms.mdx
index 82abdf2f..1b2cb3ba 100644
--- a/host/vms.mdx
+++ b/host/vms.mdx
@@ -1,123 +1,100 @@
---
-title: VMs
+title: "VMs & IOMMU"
+sidebarTitle: "VMs & IOMMU"
createdAt: Mon Jan 13 2025 21:20:40 GMT+0000 (Coordinated Universal Time)
updatedAt: Wed Jan 15 2025 00:37:08 GMT+0000 (Coordinated Universal Time)
+personas:
+ - pro-operator
+ - headless-operator
---
+Pro OperatorHeadless / DC
+
+Vast can run KVM virtual machines in addition to Docker containers. VM support is optional and depends heavily on hardware, BIOS, kernel, and GPU configuration.
-**WARNING:**
-VMs interface much more directly with hardware than Docker containers.
-Proper VM support is very sensitive to hardware setup.
-This guide covers the configuration steps needed to enable support for Vast VMs on most setups, but is not and cannot be exhausitve.
+VMs interact more directly with hardware than containers. Enable them only when the machine supports IOMMU and remains stable.
-# Introduction
-
-Vast now supports VM instances running on Kernel Virtual Machine (KVM) in addition to Docker container based instances.
-VM support is currently an optional feature for hosts as it usually requires additional configuration steps on top of those needed to support Docker-based instances.
-
-Host machines are not required to be VM compatible; the Vast hosting software will automatically test and enable the feature on machines on which VMs are supported.
-On new machines the tests will be run on install; for machines configured before the VM-feature release, testing for VM-compatability will happen when the machine is unoccupied.
-
-Machines that do not have VM support enabled will be hidden in the search page for clients who have VM-based templates selected.
-
-## VM Support Benefits/Drawbacks
-
-### Benefits
-
-VM support will allow your machine to take advantage of demand for use cases that Docker cannot easily support, in addition to demand for conventional Docker-based instances.
-
-VMs support the following features/use-cases that Docker-based instances do not:
-
-
- Feature
- Use-case
-
-
-Systemd/Docker
-
-Multi-Application Server Tooling and DevOps (e.g., Docker Compose, Kubernetes, Docker Build)
-
-Non-Linux OSes
-
-Windows Graphics (e.g., for rendering or cloud gaming)
-
-ptrace
-
-Program analysis for CUDA-performance optimization (e.g., via Nvidia NSight)
-
-Currently no other peer-to-peer GPU rental marketplace offers full VMs; instead full VMs are only available from traditional providers at much higher costs.
-Thus we believe that hosts who have VMs enabled can expect to command a substantial preumium.
-
-### Drawbacks
-
-- Due to greater user control over hardware, VM support requires IOMMU settings for securing PCIe communications that can degrade the performance of NCCL on non-RTX 40X0 multi-GPU machines that rely on PCI-based GPU peer-to-peer communication.
-- VMs require more disk space than Docker containers as they do not share components with the host OS. Hosts with VMs enabled may want to set higher disk and internet bandwidth prices.
-
-### Summary
+Default host onboarding should still start from the official [Vast host setup page](https://cloud.vast.ai/host/setup/). Use this page only for optional VM/IOMMU planning or troubleshooting after the normal host setup path is understood.
-We recommend all hosts with single-GPU rigs to try to ensure VM support as the drawbacks for single-GPU machines are minimal.
+## When VM Support Helps
-We also generally recommend multi-GPU Hosts with RTX 40X0 series GPUs try enabling VMs, especially if they have plentiful disk space and fast (500Mbps+) internet speed,
-as rendering/gaming users will benefit from those, as well as users who need multi-application orchestration tools.
+VM support can make a host visible to renters using VM templates and can help with workloads that need:
-We do not recommend multi-GPU hosts with datacenter GPUs enable VMs until we can ensure better GPU P2P communication support in VMs, including support for NVLink.
+- Systemd, Docker Compose, Kubernetes, or Docker build workflows.
+- Non-Linux OS images.
+- `ptrace` tooling such as NVIDIA Nsight.
-## Configuring VMs on your machine
+Single-GPU hosts usually have the lowest VM risk. Multi-GPU RTX 40-series hosts may also benefit. Multi-GPU datacenter hosts should be more cautious until VM P2P/NVLink behavior is a good fit for the workload.
-### Checking VM enablement status.
+## Tradeoffs
-Run `python3 /var/lib/vastai_kaalia/enable_vms.py check`.
+- IOMMU settings can reduce PCIe peer-to-peer performance on some multi-GPU systems.
+- VMs can use more disk than containers.
+- Hosts with VM support may need higher disk and bandwidth prices.
-Possible results are:
+## Check VM Status
-- `on`: VMs are enabled on your machine.
-- `off`: VMs are disabled on your machine. Either you disabled VMs or our previous tests failed.
-- `pending`: VMs are not disabled, but will try to enable once the machine is idle.
+```bash
+python3 /var/lib/vastai_kaalia/enable_vms.py check
+```
-### Disabling VMs.
+Results:
-To prevent VMs from being enabled on your machine, or to disable VMs after they have been enabled, run `python3 /var/lib/vastai_kaalia/enable_vms.py off`.
+| Status | Meaning |
+| --- | --- |
+| `on` | VM support is enabled. |
+| `off` | VM support is disabled or a previous test failed. |
+| `pending` | VM support will be tested when the machine is idle. |
-Note that default configuration settings for most machines will not support VMs, and we can detect that, so most hosts who do not want VMs enabled do not need to take any action.
+## Disable VM Support
-### Configuring your machine to support VMs.
+```bash
+python3 /var/lib/vastai_kaalia/enable_vms.py off
+```
-### Hardware prerequisites
+Most hosts do not need to disable anything; unsupported machines are detected automatically.
-You will require a CPU and a chipset that support Intel VT-d or AMD-Vi.
+## Hardware Requirements
-### Configure BIOS
+VM support requires CPU/chipset support for Intel VT-d or AMD-Vi, plus BIOS virtualization support.
-Check that virtualization is enabled in your BIOS. On most machines, this should be enabled by default.
+In BIOS, enable virtualization and IOMMU/VT-d/AMD-Vi options.
-### Configure Kernel Commandline Arguments
+## Kernel Options
-For further reference refer to [Preparing the IOMMU](https://ubuntu.com/server/docs/gpu-virtualization-with-qemu-kvm#preparing-the-input-output-memory-management-unit-iommu).
+Edit `/etc/default/grub` and add the appropriate IOMMU option plus NVIDIA modeset disablement:
-We will need to ensure IOMMU, a technology that secures and isolates communication between PCIe devices, is set up, along with disabling all driver features that interfere with VMs.
+```text
+GRUB_CMDLINE_LINUX="intel_iommu=on nvidia_drm.modeset=0"
+```
-Open `/etc/default/grub` and add to the `GRUB_CMDLINE_LINUX=` the following:
+Use `amd_iommu=on` instead of `intel_iommu=on` on AMD platforms.
-- `amd_iommu=on` or `intel_iommu=on` depending on whether you have an AMD or Intel CPU.
-- `nvidia_drm.modeset=0`
+Some hosts may also need:
-Some hosts may also need to add the following settings:
+```text
+rd.driver.blacklist=nouveau modprobe.blacklist=nouveau
+```
-- `rd.driver.blacklist=nouveau`
-- `modprobe.blacklist=nouveau`
+Apply and reboot:
-Then run `sudo update-grub` and reboot.
+```bash
+sudo update-grub
+sudo reboot
+```
-### Disable display managers/background GPU processes.
+## Display Managers And GPU Processes
-If you have a display manager (e.g., GDM) or display server (XOrg, Wayland, etc) running, you must disable them.
+Disable display managers, XOrg/Wayland sessions, and background GPU processes. `nvidia-persistenced` is okay because it is managed by the host stack.
-You may not run any background GPU processes for VMs to work (`nvidia-persitenced` is OK, it is managed by our hosting software).
+## Retry Enablement
-### Enabling VMs
+If VM support is off and you want to retry after fixing the host:
-We will check/test your configuration when your machine is idle and enable VMs by default if your machine is capable of supporting VMs, and you have not set VMs to `off`.
+```bash
+sudo python3 /var/lib/vastai_kaalia/enable_vms.py on -f
+```
-If you have VMs set to off, and you'd like to retry enabling VMs, run `sudo python3 /var/lib/vastai_kaalia/enable_vms.py on -f` while your machine is idle.
+Run this only when the machine is idle.
diff --git a/host/workload-policy.mdx b/host/workload-policy.mdx
new file mode 100644
index 00000000..c5837ae9
--- /dev/null
+++ b/host/workload-policy.mdx
@@ -0,0 +1,76 @@
+---
+title: "Workload Policy"
+sidebarTitle: "Workload Policy"
+description: "Host-facing expectations for workload types and platform policy."
+"canonical": "/host/workload-policy"
+personas:
+ - pro-operator
+ - headless-operator
+ - business-owner
+ - hobbyist
+---
+
+All host personas
+
+This is a host-operator summary. The source of truth is always the [Host Agreement](https://cloud.vast.ai/host/agreement) and [Terms of Service](https://vast.ai/terms).
+
+
+Do not use this page as legal advice or as a replacement for the agreement and terms.
+
+
+## Host Responsibilities
+
+While a rental contract is active:
+
+- Keep the advertised machine online, stable, and performant.
+- Do not run local gaming, mining, benchmarks, display workloads, or background GPU jobs.
+- Do not stop, inspect, modify, or interfere with renter containers because they appear idle.
+- Keep renter data isolated.
+- Keep escalation contact details current.
+- Follow the host agreement, terms, export rules, and applicable law.
+
+An idle-looking rental can still be active. Renters may run notebooks, services, build jobs, CPU-heavy work, or bursty workloads.
+
+
+## Can I Message A Client?
+
+No. Hosts do not have an established direct client-message flow. If a workload looks broken, idle, abusive, or policy-sensitive, follow the escalation guidance below.
+
+## Restricted Activity
+
+The Terms describe prohibited activity. Host-facing examples include:
+
+| Category | Host action |
+| --- | --- |
+| Illegal or abusive activity | Preserve observable details and escalate. |
+| Malware, spam, network abuse, or attacks | Do not knowingly support it; escalate. |
+| Platform abuse or security bypass | Escalate suspected attempts to bypass controls or disrupt systems. |
+| Intellectual-property concerns | Escalate credible concerns; do not inspect private renter data. |
+| Export-controlled or sanctioned use | Escalate suspected restricted users, destinations, or end uses. |
+| Cryptocurrency mining | Do not advertise mining as generally allowed. Check the Terms or ask support. |
+
+## Mining And Crypto-Adjacent Workloads
+
+Some blockchain-adjacent workloads are AI inference or training; others may be mining, proof-of-work, or policy-sensitive token activity.
+
+Hosts should not decide policy on behalf of Vast. If a renter asks whether a specific crypto workload is allowed, point them to the [Terms of Service](https://vast.ai/terms) or support.
+
+## What To Do
+
+| Situation | Action |
+| --- | --- |
+| Rental appears idle | Leave it running. |
+| Rental affects machine stability | Check host hardware, thermals, power, drivers, Docker, and daemon logs. |
+| Suspected abuse | Collect timestamps, symptoms, screenshots, and visible instance details; contact support. |
+| Planned maintenance needed | Use [maintenance windows](/host/maintenance-windows) and offer-end-date planning. |
+| Stop new rentals | Unlist the machine; existing contracts continue. |
+| Expired contract or stale storage | Use documented cleanup flows in [Remove or Recreate](/host/removing-recreating-machines). |
+
+## Related Pages
+
+| Topic | Read next |
+| --- | --- |
+| Contract behavior | [Hosting Overview](/host/hosting-overview) |
+| Host agreement | [Host Agreement](https://cloud.vast.ai/host/agreement) |
+| Terms | [Terms of Service](https://vast.ai/terms) |
+| Maintenance | [Maintenance Windows](/host/maintenance-windows) |
diff --git a/images/host-installer-wizard-tui.png b/images/host-installer-wizard-tui.png
new file mode 100644
index 00000000..0a7a45fd
Binary files /dev/null and b/images/host-installer-wizard-tui.png differ
diff --git a/persona-chips.css b/persona-chips.css
new file mode 100644
index 00000000..21ad54a8
--- /dev/null
+++ b/persona-chips.css
@@ -0,0 +1,23 @@
+/* Persona tag chips — rendered top-right of host doc pages.
+ Mintlify applies any .css file in the repo automatically. */
+
+.persona-chips {
+ display: flex;
+ justify-content: flex-end;
+ flex-wrap: wrap;
+ gap: 0.4rem;
+ margin: 0 0 1.25rem 0;
+}
+
+.persona-chip {
+ font-size: 0.72rem;
+ font-weight: 500;
+ line-height: 1;
+ letter-spacing: 0.02em;
+ padding: 0.32rem 0.7rem;
+ border-radius: 9999px;
+ border: 1px solid rgba(128, 128, 128, 0.35);
+ background: rgba(128, 128, 128, 0.08);
+ opacity: 0.9;
+ white-space: nowrap;
+}
diff --git a/snippets/host/cli/defrag-machines.mdx b/snippets/host/cli/defrag-machines.mdx
index 285eb549..5cfb3789 100644
--- a/snippets/host/cli/defrag-machines.mdx
+++ b/snippets/host/cli/defrag-machines.mdx
@@ -5,7 +5,7 @@ Defragment machines
## Usage
```bash
-vastai defragment machines IDs
+vastai defrag machines IDs
```
## Arguments
diff --git a/snippets/host/cli/list-machines.mdx b/snippets/host/cli/list-machines.mdx
index 92c32fe4..faddac39 100644
--- a/snippets/host/cli/list-machines.mdx
+++ b/snippets/host/cli/list-machines.mdx
@@ -11,7 +11,7 @@ vastai list machines IDs [options]
## Arguments
- ids of instance to list
+ ids of machines to list
## Options
diff --git a/snippets/host/cli/schedule-maint.mdx b/snippets/host/cli/schedule-maint.mdx
index 196ca1ba..7d7e4af5 100644
--- a/snippets/host/cli/schedule-maint.mdx
+++ b/snippets/host/cli/schedule-maint.mdx
@@ -5,7 +5,7 @@ Schedule upcoming maint window
## Usage
```bash
-vastai schedule maintenance id [--sdate START_DATE --duration DURATION --maintenance_category MAINTENANCE_CATEGORY]
+vastai schedule maint id [--sdate START_DATE --duration DURATION --maintenance_category MAINTENANCE_CATEGORY]
```
## Arguments
diff --git a/snippets/host/cli/self-test-machine.mdx b/snippets/host/cli/self-test-machine.mdx
index 94727b4a..98259301 100644
--- a/snippets/host/cli/self-test-machine.mdx
+++ b/snippets/host/cli/self-test-machine.mdx
@@ -5,7 +5,7 @@ Perform a self-test on the specified machine
## Usage
```bash
-vastai self-test machine [--debugging] [--explain] [--api_key API_KEY] [--url URL] [--retry RETRY] [--raw] [--ignore-requirements]
+vastai self-test machine [--debugging] [--ignore-requirements] [--test-image IMAGE] [--support-bundle-dir DIR] [--no-support-bundle]
```
## Arguments
@@ -24,6 +24,18 @@ vastai self-test machine [--debugging] [--explain] [--api_key API_K
Ignore the minimum system requirements and run the self test regardless
+
+ Use a custom self-test image for testing custom self-test images. Overrides environment and CUDA image mapping.
+
+
+
+ Directory for failure diagnostic bundles. Defaults to `/tmp`.
+
+
+
+ Do not create a diagnostic tarball when the self-test fails.
+
+
## Description
This command tests if a machine meets specific requirements and
@@ -33,9 +45,8 @@ runs a series of tests to ensure it's functioning correctly.
```bash
vast self-test machine 12345
- vast self-test machine 12345 --debugging
- vast self-test machine 12345 --explain
- vast self-test machine 12345 --api_key
+vast self-test machine 12345 --debugging
+vast self-test machine 12345 --support-bundle-dir /tmp/vast-bundles
```
## Global Options
diff --git a/snippets/host/cli/set-min-bid.mdx b/snippets/host/cli/set-min-bid.mdx
index 96817f56..8733c483 100644
--- a/snippets/host/cli/set-min-bid.mdx
+++ b/snippets/host/cli/set-min-bid.mdx
@@ -5,7 +5,7 @@ Set the minimum bid/rental price for a machine
## Usage
```bash
-vastai set min_bid id [--price PRICE]
+vastai set min-bid id [--price PRICE]
```
## Arguments
diff --git a/snippets/host/cli/show-maints.mdx b/snippets/host/cli/show-maints.mdx
index ecc1d31e..bc6521d0 100644
--- a/snippets/host/cli/show-maints.mdx
+++ b/snippets/host/cli/show-maints.mdx
@@ -5,14 +5,14 @@ Show maintenance information for host machines
## Usage
```bash
-vastai show maints -ids 'machine_id_1' [OPTIONS]
-vastai show maints -ids 'machine_id_1, machine_id_2' [OPTIONS]
+vastai show maints --ids 'machine_id_1' [OPTIONS]
+vastai show maints --ids 'machine_id_1,machine_id_2' [OPTIONS]
```
## Options
-
- comma seperated string of machine_ids for which to get maintenance information
+
+ comma separated string of machine IDs for which to get maintenance information (alias: `--ids`)
@@ -22,7 +22,7 @@ vastai show maints -ids 'machine_id_1, machine_id_2' [OPTIONS]
## Examples
```bash
-vastai show maints
+vastai show maints --ids
```
## Global Options
diff --git a/style.css b/style.css
index 9cd7ea44..f1d57767 100644
--- a/style.css
+++ b/style.css
@@ -3,6 +3,17 @@
* Mintlify automatically loads a root-level style.css on every page.
*/
+/*
+ * Keep hash-linked sections below the sticky Mintlify header.
+ *
+ * Many host pages use explicit `` markers before headings so
+ * support replies and table-of-contents links can target stable anchors. The
+ * sticky top navigation otherwise covers the first lines after a hash jump.
+ */
+:where(h1, h2, h3, h4, h5, h6, a[id]) {
+ scroll-margin-top: 8rem;
+}
+
/*
* Use the full viewport width on large screens.
*