Docs / VPS Hosting

Cloud VPS guide

Deploy and run a Piedmont Hosting VPS: SSH access, operating systems, Proxmox VE, the cloud firewall, snapshots, backups, resizing, reinstalling and monitoring.

VPS Overview

A Piedmont VPS is a KVM virtual machine with full root access, ECC memory and SSD storage, on hardware we own and operate in Durham, NC. You choose the vCPUs, memory and storage. vCPUs are shared with other servers on the host rather than pinned to dedicated cores.

VPS Features

  • Full root access via SSH
  • Dedicated IPv4 and IPv6 addresses
  • 14 Linux distributions, plus Proxmox VE 9 for running your own VMs
  • Cloud firewall with presets and custom rules
  • Point-in-time snapshots (up to 3)
  • Optional automated daily backups
  • Live CPU, disk and network charts (15-second resolution) and memory charts (60-second)
  • Browser console for when SSH isn't available
  • Power controls (start, shut down, reboot) from the dashboard
  • Resize CPU, RAM, and storage on demand
  • SSH key management
  • Free VPC private networking between servers
  • Unmetered transfer at a 100–500 Mbps port speed, set by RAM
  • A REST API for power actions, firewall rules, snapshots and backups

Custom Configuration

VPS servers are fully customizable. Choose your resources during checkout:

ResourceMinimumMaximum
CPU Cores1 core12 cores
RAM1 GB12 GB
Storage (SSD)20 GB200 GB

Getting Started with Your VPS

After checkout your server is set up automatically. Most distributions are ready about a minute after checkout; Arch Linux takes around two minutes, and Proxmox VE about 8–12 minutes. We email you when it's ready, with your connection details.

  1. 1
    Go to the VPS page and choose your CPU, RAM, storage and operating system.
  2. 2
    Set a root password (at least 8 characters), add an SSH key, or both — paste a key or select keys saved on your account. If you only add a key, the server gets a random root password that nobody knows: sign in with your key, and set a password later with Reset Password on the Overview tab if you need one. Proxmox VE 9 orders need a root password, because it's how you sign in to the Proxmox web interface.
  3. 3
    Complete checkout on the Stripe payment page. Your VPS starts provisioning as soon as payment goes through.
  4. 4
    Once it's ready, find your server's IP address on the service's Overview tab.
  5. 5
    Connect over SSH as root with your key or password.
Tip
If you added SSH keys to your account (Profile > SSH Keys) before checkout, you can select them during VPS configuration. They'll be installed on your new server automatically.
Info
A new VPS has no cloud firewall rules, so nothing is filtered before traffic reaches your server. To filter traffic, apply a preset such as SSH Only or Web Server on the Firewall tab, or add your own rules — see Cloud Firewall.

DNS resolvers

You pick the DNS resolvers your server uses at checkout. To change them later, open the DNS tab, choose a primary and a secondary from the public resolvers listed (Cloudflare, Google, Quad9 and others) and click Save DNS Settings — the change is applied inside your server right away.

SSH Access

Your VPS provides full root SSH access. You can connect using either a password or SSH key (recommended).

Connecting with SSH Key

terminal
ssh root@YOUR_SERVER_IP

If you added an SSH key at checkout, this signs you in with that key. No password needed.

Connecting with Password

terminal
ssh root@YOUR_SERVER_IP
# Enter your root password when prompted
Info
Inside the server, the main network interface shows a private address (the Private IP on the Overview tab) — your public IPv4 is forwarded to it one-to-one. Bind services to 0.0.0.0 or that private address, not to the public IP.

Resetting the root password

Click Reset Password on the Overview tab, enter a new root password (at least 8 characters) and your Piedmont account password to confirm. The new password works immediately — no reboot. Use this if you forget the password, or to set one on a server you ordered with only an SSH key.

Browser console

Click Console on the Overview tab to open your server's screen in a new browser tab. It works even when SSH is blocked or the network inside your server is broken, as long as the server is running. Sign in as root with your root password — if you ordered with only an SSH key, set one first with Reset Password.

Managing SSH Keys

You can manage SSH keys from two places:

  • Account-level keys — Manage in Profile > SSH Keys. These can be selected when creating new servers or reinstalling one.
  • Per-server keys — Manage in the service's SSH Keys tab. Add or remove keys for a specific VPS.
Info
We accept Ed25519, RSA and ECDSA public keys (account keys also accept FIDO security-key types). Generate a new key pair with: ssh-keygen -t ed25519

Operating Systems

We support 14 Linux distributions, plus Proxmox VE if you want to run your own virtual machines. Choose the one that best fits your use case:

OSVersionBest For
Ubuntu 26.04 LTSLatest LTSNewest long-term release, supported into the 2030s
Ubuntu 24.04 LTSProven LTSGeneral purpose, web apps, Docker, most popular choice
Ubuntu 22.04 LTSOlder LTSSoftware that still targets Ubuntu 22.04
Debian 13TrixieCurrent Debian stable, supported to 2030, minimal footprint
Debian 12BookwormPrevious stable, for software not yet certified on Trixie
Rocky Linux 10RHEL 10-compatibleEnterprise workloads on the RHEL 10 base
Rocky Linux 9RHEL 9-compatibleEnterprise workloads on the proven RHEL 9 base
AlmaLinux 10RHEL 10-compatibleEnterprise workloads, community-driven and RHEL-compatible
AlmaLinux 9RHEL 9-compatibleEnterprise workloads, CentOS replacement
CentOS Stream 10Rolling RHELRHEL preview, development environments, upstream-first
CentOS Stream 9Rolling RHELRHEL 9 preview and development environments
Fedora 44Fast-movingCutting-edge packages, developers, new kernel and toolchain
openSUSE Leap 16.0StableSUSE ecosystem compatibility
Arch LinuxRollingPower users, hobbyists, minimalist setup, always up-to-date packages
Proxmox VE 9HypervisorRunning your own virtual machines and containers — see Proxmox VE
Tip
If you're unsure, choose Ubuntu 24.04 LTS. It's widely supported, and most tutorials and guides are written for it.

Proxmox VE

Selecting Proxmox VE 9 as your operating system turns your VPS into a hypervisor, so you can create and manage your own virtual machines and LXC containers from a web interface. Nested virtualization is enabled on our platform, so the VMs you create use hardware acceleration (KVM) rather than slow software emulation.

Requirements

ResourceMinimumRecommended
RAM4 GB (required)8 GB or more
Storage40 GB80 GB or more
CPU Cores2 cores4 cores or more

Only the RAM minimum is enforced: checkout and Reinstall OS won't install Proxmox VE on a server with less than 4 GB. Proxmox itself uses roughly 1.5 GB of RAM before you start a single virtual machine. With the most RAM we offer (12 GB) you can comfortably run two to four small VMs.

Provisioning time

Info
Proxmox VE takes about 8–12 minutes to set up, not the usual minute or so. Proxmox does not publish a ready-made cloud image, so we install Debian 13 first and then build Proxmox on top of it. Your server reboots twice during this process. We email you that it's ready only once the node has been verified as fully working.

Signing in to the web interface

Once provisioning finishes, open the Proxmox web interface in your browser:

browser
https://YOUR_SERVER_IP:8006

Sign in with username root, realm Linux PAM standard authentication, and the root password you set at checkout (Proxmox VE orders always require one). If you forget it, set a new one with Reset Password on the Overview tab.

Warning
Your browser will warn that the certificate is not trusted. This is expected — Proxmox generates its own self-signed certificate. You can safely continue, or install your own certificate from Datacenter > Node > System > Certificates. You will also see a "No valid subscription" notice on login; Proxmox VE is free open-source software and this notice is only an upsell for their optional paid support.

Firewall

A new server has no cloud firewall rules, so the Proxmox web interface — and every other port — is reachable from the internet. To block everything else, apply the Proxmox VE Node preset on your service's Firewall tab. It allows only:

PortPurpose
22 (TCP)SSH
8006 (TCP)Proxmox web UI (HTTPS)
3128 (TCP)SPICE proxy
5900-5999 (TCP)noVNC console
ICMPPing

How networking is set up

Your node is pre-configured with two network bridges:

BridgeAddressPurpose
vmbr0Your server’s own address (the Private IP on the Overview tab) — your public IPv4 is forwarded to it one-to-oneThe node itself. Do not attach VMs here — see the warning below.
vmbr1192.168.100.1/24Private NAT network for your virtual machines.

The node is set up for IPv4 only — the IPv6 address shown in the portal isn't configured on it.

Warning
Your VPS has one public IP address, and we cannot route additional public addresses to virtual machines inside it. Attach your VMs to vmbr1 and reach them through port forwards. Attaching a VM directly to vmbr0 and assigning it an arbitrary address will conflict with other customers and may result in your service being suspended.

Creating your first virtual machine

  1. 1
    Upload an installation ISO under local (node) > ISO Images > Upload, or use Download from URL.
  2. 2
    Click Create VM in the top right.
  3. 3
    On the Network tab, set the bridge to vmbr1.
  4. 4
    Finish the wizard and start the VM, then use the Console tab to complete installation.
  5. 5
    Inside the VM, use a static address in 192.168.100.0/24 with gateway 192.168.100.1, or install a DHCP server on the node.

Reaching a VM from the internet

Forward a port from your public IP to the VM. For example, to expose a web server running on 192.168.100.10:

terminal
# Forward public port 8080 to the VM's port 80
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8080 \
  -j DNAT --to-destination 192.168.100.10:80

# Persist the rule across reboots
apt install -y iptables-persistent
netfilter-persistent save

If your Piedmont cloud firewall has rules, add an inbound rule for port 8080 too.

Storage

Your VPS has a single virtual disk, so Proxmox is configured with directory storage on local. Virtual machine disks are stored as files under /var/lib/vz/images.

Info
ZFS and LVM-thin are not available, because your node has a single disk set up as directory storage. This means Proxmox's own snapshot feature is unavailable for raw disk images — use qcow2 as the disk format when creating a VM if you want snapshots, or use Piedmont's own snapshot feature on the whole VPS (see the caveat below).

Things to know

  • The App Marketplace is not available on Proxmox nodes. Run applications inside a virtual machine instead.
  • Your node shuts down more slowly than a normal VPS, because Proxmox stops your virtual machines first. Allow two to three minutes for a clean reboot.
  • Piedmont backups copy the whole node while it keeps running — the copy is crash-consistent, like pulling the power cord. Piedmont snapshots end with a forced power-off and restart of the whole VPS, which hard-stops every VM inside it. Shut your VMs down first if you need a clean copy.
  • Resizing shuts the VPS down and forces it off if it hasn't stopped within about 10 seconds. A Proxmox node takes two to three minutes to stop cleanly, so shut your VMs down before you resize.
  • Nested virtualization is enabled, so you can even run a hypervisor inside one of your virtual machines, though performance will suffer.
  • Updates are served from the free pve-no-subscription repository, which is already configured.

Cloud Firewall

Every VPS includes a free cloud firewall managed from your dashboard. The firewall operates at the network level, filtering traffic before it reaches your server. It doesn't filter traffic on private VPC networks.

How It Works

A new VPS starts with no firewall rules, so all traffic is allowed (the All Open preset). As soon as you add one inbound rule, inbound traffic switches to allow-list mode: only traffic matching an Allow (ACCEPT) rule gets through, and everything else is dropped — so a single Drop rule on its own blocks all inbound traffic, not just the port it names. Replies to connections your server makes are always allowed.

Outbound traffic is unrestricted until you add an outbound rule. The first outbound rule switches outbound to allow-list mode as well, so any outbound connection you haven't explicitly allowed (DNS lookups, package updates, API calls) is blocked. Replies to inbound connections the firewall accepted still go out.

Firewall Presets

Quick-apply presets for common configurations. Applying a preset replaces all of your existing rules — including ports the App Marketplace opened for your apps.

PresetPorts Opened
Web ServerSSH (22 TCP), HTTP (80 TCP), HTTPS (443 TCP), Ping (ICMP)
Game ServerSSH (22 TCP), Minecraft (25565 TCP), Steam / Valve (27015-27030 UDP), Unreal Engine games (7777-7778 TCP+UDP), Rust (28015-28016 UDP), Ping (ICMP)
Proxmox VE NodeSSH (22 TCP), Proxmox web UI (8006 TCP), SPICE proxy (3128 TCP), noVNC consoles (5900-5999 TCP), Ping (ICMP)
SSH OnlySSH (22 TCP), Ping (ICMP)
All OpenNo rules — all traffic allowed (how every new server starts; not recommended for production)

Custom Rules

Click + Add Rule to create a rule with these options:

  • Direction: Inbound (traffic to your server) or Outbound (traffic your server sends)
  • Protocol: TCP, UDP, ICMP, or Any
  • Port(s): Single port (e.g., 8080) or range (e.g., 1000-2000); leave it empty to match every port
  • Source CIDR: who an inbound rule applies to — 0.0.0.0/0 for anyone, or a range such as 203.0.113.0/24. IPv4 ranges only. Leave outbound rules at 0.0.0.0/0; rules can't match a destination address.
  • Action: Allow or Drop

Each server can have up to 50 rules.

Info
How the App Marketplace uses the firewall: if your firewall has no inbound rules (All Open), installing an app adds no rule — its port is already reachable. If you have inbound rules, installing an app adds an inbound rule for its web port(s), and uninstalling removes it. MySQL, PostgreSQL, Redis, MariaDB and Valkey never get a rule. Apps installed while the firewall was All Open have no rule of their own, so when you add your first inbound rule or apply a preset, add rules for those apps' ports too.
Warning
Whenever your firewall has inbound rules, keep one that allows SSH (TCP 22), or you will lose SSH access. If you lock yourself out, fix the rules on the Firewall tab — the cloud firewall runs outside your server, so you can always change it there. If a firewall inside the server (ufw, firewalld) is blocking you, use Console on the Overview tab.

Snapshots

Snapshots create a point-in-time copy of your VPS disk. Use them before making major changes so you can roll back if something goes wrong.

Snapshot Limits

Each VPS can store up to 3 snapshots at a time. Delete old snapshots to make room for new ones.

Creating a Snapshot

  1. 1
    Navigate to your service's Snapshots & Backups tab.
  2. 2
    Click + Create Snapshot.
  3. 3
    Optionally enter a name (letters, numbers, hyphens and underscores, up to 64 characters), then click Create.
  4. 4
    The snapshot is created in the background. If your server is running, it keeps running while its disk is copied, then it is forcibly powered off and started again to finish — like pulling the plug, followed by a normal boot. Stop databases (or shut the server down) first if you need a clean snapshot; a snapshot of a server that is shut down is a plain copy with no restart.

Restoring a Snapshot

Important
Restoring a snapshot forcibly powers off your server, replaces its disk with the snapshot and starts it again. Anything written after the snapshot was taken is lost, and this can't be undone.

Click Restore on any available snapshot and confirm the action. Your server starts again automatically after the restore completes.

Automated Backups

Automated backups make a daily copy of your entire VPS and keep each copy for a set number of days.

Pricing

Backups cost 10% of your server's monthly price. For example, a 2 vCPU / 4 GB / 80 GB server costs $21/mo, so its backups cost $2.10/mo. Turning backups on or off changes your subscription right away, prorated.

Configuration

Turn backups on with Enable Backups on the Snapshots & Backups tab, or choose them at checkout.

  • Schedule: By default, backups run once a day shortly after 03:00 UTC, and each one is kept for 7 days.
  • Retention and run time: To change how long backups are kept (1–30 days) or the hour they run (0–23 UTC), use the REST API (PUT /api/v1/servers/:id/backup-config — see Backup Endpoints).
  • Manual Backup: While backups are enabled, Create Manual Backup takes one immediately.

Backups are taken while your server keeps running, so they are crash-consistent — like pulling the power cord — and databases may need to recover after a restore. They are stored on our hardware in Durham, so keep an off-site copy of anything critical.

Restoring from Backup

Important
Restoring a backup forcibly powers off your server and replaces its disk with the backup. Everything written since the backup was taken is lost, and this can't be undone.

Click Restore on a completed backup in the backup history and confirm. Your server starts again on the restored disk.

Bandwidth & QoS

Each VPS has a port-speed cap based on its RAM, so that no single server can use up the connection every customer shares.

RAMPort speed
1 GB100 Mbps
2 GB150 Mbps
3–4 GB250 Mbps
5–8 GB400 Mbps
9–12 GB500 Mbps

The cap is applied automatically when your VPS starts, and changes when you resize its RAM.

Info
These are port-speed caps, applied in both directions. Transfer itself is unmetered — no overage fees. Traffic on a private VPC network doesn't count against the cap.

Resizing Your VPS

You can resize your VPS CPU, RAM, and storage at any time with Resize on the service's Overview tab.

How Resizing Works

  • When you confirm a resize, your server is shut down (and forced off if it hasn't stopped within about 10 seconds), resized, and started again automatically. Expect a short outage, so save your work first.
  • CPU and RAM can be scaled up or down. Your port speed follows your new RAM.
  • Storage can only be increased, never decreased. When you add storage we try to grow the root partition and filesystem for you; run df -h afterwards to check.
  • Upgrades are prorated — the difference for the rest of your billing period is added to your next invoice.
  • Downgrades generate a credit applied to your next invoice.
Warning
Disk resize is a one-way operation. You cannot shrink storage after expanding it. Plan your storage needs carefully.

Reinstalling OS

You can reinstall your VPS with a different operating system without deleting the service.

  1. 1
    Go to your service's Overview tab and click Reinstall OS.
  2. 2
    Choose the new operating system, keep or change the hostname, and set a new root password (at least 8 characters — required).
  3. 3
    Optionally paste an SSH key or select keys saved on your account, and choose DNS resolvers.
  4. 4
    Type your server's hostname to confirm and click Wipe & Reinstall. Your IP addresses and billing stay the same. Most systems are ready in about a minute; Proxmox VE takes about 8–12 minutes and needs at least 4 GB of RAM.
Important
Reinstalling completely erases all data on your server. Create a snapshot or backup first if you need to preserve anything — and keep the hostname set to the server's VM Name (under Service Details on the Overview tab) if you might restore one: after a reinstall under a different name, snapshots and backups taken before it can no longer be restored.

Renaming your server

Rename on the Overview tab changes your server's hostname inside the operating system right away, along with its name in the portal. Use lowercase letters, numbers and hyphens. Renaming doesn't change the VM Name or restart anything.

Monitoring

The Monitoring tab provides real-time performance charts for your VPS, powered by Prometheus metrics.

Available Metrics

MetricDescriptionResolution
CPU UsagePercentage of allocated CPU cores in use15 seconds
RAM UsageMemory used vs. total allocated60 seconds
Network I/OIncoming and outgoing traffic in bytes/sec15 seconds
Disk I/ORead and write operations in bytes/sec15 seconds

Time Periods

Select from five time windows to view your metrics:

PeriodData StepAuto-Refresh
1 Hour15 secondsEvery 15s
6 Hours60 secondsEvery 30s
24 Hours2 minutesEvery 60s
7 Days15 minutesEvery 2 min
30 Days1 hourEvery 5 min

Each metric is displayed as an area chart with a stat card showing the current value. Charts update automatically based on the selected time period.

Info
Monitoring data begins collecting as soon as your VPS is provisioned. CPU, network and disk history is kept for 15 days, so the 30-day view shows at most the last 15 days for those charts. Memory history is kept for 30 days.

Power Controls

While the service is active, the Overview tab has Start, Shutdown and Reboot (Shutdown and Reboot ask you to confirm). Reset — an immediate hard restart — is available through the REST API (POST /api/v1/servers/:id/power with "action": "reset").

ActionDescription
StartPowers on a stopped server
ShutdownGracefully shuts down the server (ACPI shutdown)
RebootGracefully restarts the server
ResetHard restart, like pressing the reset button — API only; use if the server is unresponsive