Hosts
Server inventory with hardware details, status, and provisioning controls

What you see
URL: /hosts (list), /hosts/[id] (detail)
The hosts page is your server inventory. Every bare-metal machine, VM, or cloud instance that PodWarden manages appears here. The list shows key identification and status information for each host.
Hosts on cloud providers (AWS, GCP, Azure, Hetzner, Alibaba Cloud) show a cloud provider icon next to the hostname, indicating where the host is running.
Fields / columns
| Column | Description |
|---|---|
| Hostname | The machine's hostname as reported by the OS. Cloud provider icon shown if detected. |
| IP address | Primary IP address (Tailscale IP if using mesh networking, otherwise LAN/public IP) |
| Status | Current host state (see status badges below) |
| Cluster | The K3s cluster this host belongs to, if any |
| OS | Operating system name and version |
| CPU | Processor model and core count |
| RAM | Total memory |
| GPU | GPU model and VRAM, if detected |
Available actions
| Action | Where | What it does |
|---|---|---|
| Add host | List page toolbar | Manually register a new host by IP address |
| Discover | List page toolbar | Scan your Tailscale network for new hosts |
| Probe | Host row / Detail page | Connect to the host via SSH and collect hardware information (CPU, RAM, GPU, OS, disk) |
| Provision | Host row / Detail page | Run the Ansible provisioning playbook to install K3s and configure the host |
| Delete | Host row / Detail page | Remove the host from PodWarden's inventory |
| View detail | Click a host row | Opens the host detail page |
Add host modal

Click Add host to manually register a new server. Enter the host's IP address and SSH credentials so PodWarden can connect and probe its hardware. For cloud instances, use the public IP — PodWarden will automatically detect the cloud provider and internal networking.
Host detail page
URL: /hosts/[id]

The detail page shows everything PodWarden knows about a single host, organized into cards:
Hardware details

- CPU -- Model, architecture, core count
- RAM -- Total, used, available
- Disk -- Mount points, total and free space
- GPU -- Model, VRAM, driver version (NVIDIA only)
- Network -- All detected interfaces with IPs
- OS -- Distribution, version, kernel
The hardware card is populated by probing the host via SSH. Hosts with NVIDIA GPUs show an additional GPU table with model, VRAM, and driver version for each card.
Network topology
For hosts where PodWarden has detected the network environment (after provisioning), a Network Topology card shows:
| Field | Description |
|---|---|
| Internal IP | Private/VPC IP address used by K3s (--node-ip) |
| External IP | Public/NAT IP address (--node-external-ip), if behind NAT |
| NAT Type | Cloud NAT (cloud provider), Tailscale (mesh), Direct (no NAT), or Unknown |
| Cloud Provider | Detected platform badge — AWS, GCP, Azure, Hetzner, Alibaba Cloud, Proxmox, QEMU/KVM, or Bare Metal |
The cloud provider is shown as a colored badge with the provider's logo. This detection is automatic — PodWarden queries cloud metadata endpoints and system virtualization information during provisioning.
Cluster membership
If the host is part of a cluster, the detail page links to the cluster detail and shows the node's role (control-plane or worker).
Reconfigure networking
If the host's network topology changes (e.g., new IP, switching from Tailscale to direct), click Reconfigure Networking to update K3s without wiping the cluster. This:
- Re-detects internal/external IPs and NAT type
- Updates
--node-ip,--node-external-ip, and--flannel-ifacein the K3s service - Regenerates TLS certificates
- Restarts K3s
Workloads continue running. See the Cloud Provider guide for details.
Provisioning

Click Provision on a host detail page to run the Ansible provisioning playbook. The modal lets you choose between joining an existing cluster or creating a new one.
Status history
A timeline of status changes with timestamps, showing when the host came online, went offline, was probed, or was provisioned.
Status badges
| Badge | Meaning |
|---|---|
| online | Host is reachable via SSH and responding to probes |
| offline | Host is not responding |
| provisioning | Ansible playbook is currently running on this host |
| provisioned | Host has been successfully set up with K3s |
| error | Last probe or provisioning attempt failed |
| unknown | Host has never been probed |
Related docs
- Cloud Provider Support -- Deploying on AWS, GCP, Azure, and other cloud platforms
- Clusters -- Clusters that hosts belong to
- Provisioning -- Provisioning job details and logs
- Settings -- Tailscale -- Tailscale integration for host discovery
- Architecture -- How PodWarden connects to hosts