> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/ovh/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Virtual Private Servers (VPS)

> Deploy lightweight virtual servers for web apps, development environments, and small workloads.

A Virtual Private Server (VPS) is a virtualised server that runs on shared physical hardware, giving you dedicated resources — vCPUs, RAM, and storage — without the cost of a full bare metal machine. You manage the OS and everything above it; OVHcloud manages the underlying infrastructure.

## Common use cases

* Hosting websites, APIs, or small web applications
* Development and staging environments
* Running self-hosted tools (n8n, Nextcloud, WordPress, game servers)
* Learning server administration with a low-cost, isolated environment

<Note>
  For workloads that need dedicated hardware, RAID control, or very high I/O, consider a [dedicated server](/bare-metal/dedicated-servers) instead.
</Note>

## First-time setup

<Steps>
  <Step title="Check your delivery email">
    After your VPS is provisioned, OVHcloud sends you an email with the IPv4 address, the OS-specific username, and a secure link to retrieve your temporary password. Save these before continuing.
  </Step>

  <Step title="Connect to your VPS">
    <Tabs>
      <Tab title="Linux">
        Use the username that matches the OS you selected (for example, `debian`, `ubuntu`, or `rocky`):

        ```bash theme={null}
        ssh ubuntu@YOUR_VPS_IP
        ```

        On first login, you are prompted to change the temporary password. The session closes automatically after you set it — reconnect with the new password.
      </Tab>

      <Tab title="Windows">
        Complete the initial Windows setup (language, keyboard, administrator password) using the KVM console in the Control Panel:

        1. Go to **Bare Metal Cloud** > **Virtual private servers** > select your VPS.
        2. Click **...** next to your VPS name > **KVM**.
        3. Set your region, language, and administrator password in the KVM session.

        Then connect via Remote Desktop Connection using the VPS IP address and the password you set.
      </Tab>
    </Tabs>
  </Step>

  <Step title="Enable the root account (optional)">
    The root account is disabled by default. For most tasks, use `sudo`:

    ```bash theme={null}
    sudo command
    ```

    To enable root if your workflow requires it:

    ```bash theme={null}
    sudo passwd root
    ```
  </Step>

  <Step title="Secure your VPS">
    Apply basic security hardening before exposing any services — see the [Security](#security) section below for step-by-step instructions.
  </Step>

  <Step title="Point a domain name (optional)">
    Edit your domain's DNS zone to add an A record pointing to your VPS IPv4 address. Then install an SSL certificate to serve traffic over HTTPS.
  </Step>
</Steps>

***

## Backup options

VPS data is not backed up automatically. Choose one or more of the following strategies.

<CardGroup cols={2}>
  <Card title="Snapshots" icon="camera" href="/bare-metal/vps#snapshots">
    Take a point-in-time image of your VPS to restore quickly after a bad update or misconfiguration.
  </Card>

  <Card title="Automated backups" icon="clock-rotate-left" href="/bare-metal/vps#automated-backups">
    Schedule daily backups with multiple restore points managed by OVHcloud.
  </Card>

  <Card title="Additional disk" icon="hard-drive" href="/bare-metal/vps#additional-disk">
    Attach a separate persistent disk for backups or static data that survives reinstalls.
  </Card>

  <Card title="Backup storage (FTP)" icon="folder-open" href="/bare-metal/vps#backup-storage">
    Use a remote FTP/NFS storage space to store backups outside your VPS.
  </Card>
</CardGroup>

### Snapshots

A snapshot captures the full state of your VPS disk at a point in time. Enable the snapshot option in the Control Panel, then take a snapshot before risky changes. You can restore to a snapshot at any time from the **Home** tab of your VPS.

<Warning>
  Snapshots are not a substitute for regular backups. A snapshot stored on the same infrastructure does not protect against hardware failure.
</Warning>

### Automated backups

The automated backup option creates a daily backup with a retention window (typically 7 restore points). Enable it from the **Backup** tab in your VPS Control Panel page.

### Additional disk

An additional disk is a separate block storage volume attached to your VPS. It persists independently of the VPS — data on it survives a VPS reinstall.

To order one, go to your VPS in the Control Panel > **Additional disk** > **Order an additional disk**.

After the disk is attached, partition and format it:

```bash theme={null}
sudo fdisk /dev/sdb
```

Create a filesystem:

```bash theme={null}
sudo mkfs.ext4 /dev/sdb1
```

Mount it:

```bash theme={null}
sudo mkdir -p /mnt/data
sudo mount /dev/sdb1 /mnt/data
```

To mount automatically on reboot, add an entry to `/etc/fstab`:

```bash theme={null}
echo '/dev/sdb1 /mnt/data ext4 defaults 0 2' | sudo tee -a /etc/fstab
```

***

## Network configuration

### IPv6

Each VPS is delivered with both an IPv4 and an IPv6 address. IPv6 is configured by default on most recent Linux distributions. If it is not, retrieve your IPv6 address and gateway from the **Home** tab > **IP** section in the Control Panel.

Configure IPv6 on Ubuntu (using Netplan):

```yaml theme={null}
network:
  version: 2
  ethernets:
    eth0:
      addresses:
        - 2001:xxxx:xxxx:xxxx::1/128
      routes:
        - to: default
          via: 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:zzzz
```

Apply:

```bash theme={null}
sudo netplan apply
```

### Additional IPs and IP aliasing

You can assign additional IP addresses to your VPS using IP aliasing. This is useful when hosting multiple services that each need their own IP. Configure additional IPs via the Control Panel, then add them to the network interface:

```bash theme={null}
sudo ip addr add ADDITIONAL_IP/32 dev eth0
```

To make this persistent, add the address to your Netplan configuration or the appropriate network configuration file for your distribution.

### Reverse DNS

Set a reverse DNS (PTR) record for your VPS IP from **Bare Metal Cloud** > **IP** in the Control Panel. Click **...** next to your IP and select **Modify the reverse DNS**. Enter your fully qualified domain name.

***

## Upgrading VPS resources

You can add vCPUs, memory, or storage without redeploying your VPS:

1. Go to your VPS in the Control Panel > **Home** tab > **Your configuration**.
2. Click the resource you want to upgrade (vCores, memory, or storage).
3. Select the new capacity and confirm the order.

<Note>
  Your IP address does not change after an upgrade. Existing data is preserved. After a storage upgrade, you may need to expand your partitions manually.
</Note>

After a storage upgrade, repartition the disk:

```bash theme={null}
sudo growpart /dev/sda 1
sudo resize2fs /dev/sda1
```

***

## Security

<Warning>
  You are responsible for the security of your VPS. OVHcloud has no administrative access to your server and cannot apply security measures on your behalf.
</Warning>

### Update the system

```bash theme={null}
sudo apt update && sudo apt upgrade
```

Run this regularly. Security patches from distribution maintainers often address critical vulnerabilities.

### Set up SSH key authentication

SSH keys are more secure than passwords and significantly reduce the risk of brute-force attacks. Generate a key pair on your local machine:

```bash theme={null}
ssh-keygen -t ed25519 -C "your_email@example.com"
```

Copy the public key to your VPS:

```bash theme={null}
ssh-copy-id -i ~/.ssh/id_ed25519.pub ubuntu@YOUR_VPS_IP
```

Once key authentication works, you can disable password authentication in `/etc/ssh/sshd_config`:

```console theme={null}
PasswordAuthentication no
```

### Change the default SSH port

The default port 22 is scanned by automated bots. Switch to a high port (49152–65535):

```bash theme={null}
sudo nano /etc/ssh/sshd_config
```

```console theme={null}
Port 49152
```

Restart SSH:

```bash theme={null}
sudo systemctl restart sshd
```

Connect using the new port:

```bash theme={null}
ssh ubuntu@YOUR_VPS_IP -p 49152
```

### Install Fail2ban

```bash theme={null}
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
```

Enable SSH protection:

```console theme={null}
[sshd]
enabled = true
port = 49152
maxretry = 3
findtime = 5m
bantime = 30m
```

```bash theme={null}
sudo service fail2ban restart
```

### Install an SSL certificate

For websites hosted on your VPS, use Let's Encrypt (Certbot) to get a free SSL certificate:

```bash theme={null}
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
```

Certbot auto-renews the certificate before it expires.

***

## Troubleshooting

### Rescue mode

Rescue mode boots your VPS into a temporary OS managed by OVHcloud. Use it to fix configuration errors, reset passwords, or check the filesystem when the VPS is unresponsive.

**To activate rescue mode:**

1. Go to your VPS in the Control Panel > **Home** tab.
2. Click **...** next to **Boot** and select **Reboot in rescue mode**.
3. Confirm the action. You will receive an email with temporary SSH credentials.

Connect to rescue mode:

```bash theme={null}
ssh root@vps-x11x11xyy.vps.ovh.net
```

Mount your VPS system partition to access your files:

```bash theme={null}
lsblk
mount /dev/sdb1 /mnt/
```

To write changes:

```bash theme={null}
chroot /mnt/
```

When done, reboot back to normal mode from the Control Panel.

### Filesystem check

Run a filesystem check on an unmounted partition in rescue mode:

```bash theme={null}
lsblk
umount /dev/sdb1   # unmount if needed
fsck -fy /dev/sdb1
```

### KVM console

The KVM console gives you direct access to your VPS display — useful when SSH is unreachable or during Windows setup. Open it from the **Home** tab > **...** > **KVM** in the Control Panel.

***

## Popular tutorials

<CardGroup cols={2}>
  <Card title="Install WordPress with Docker" icon="wordpress" href="/bare-metal/vps">
    Deploy WordPress using Docker and Docker Compose on a fresh VPS.
  </Card>

  <Card title="Install Nextcloud" icon="cloud" href="/bare-metal/vps">
    Set up a self-hosted cloud storage solution using Docker and Traefik.
  </Card>

  <Card title="Install N8N" icon="diagram-project" href="/bare-metal/vps">
    Deploy the N8N automation platform on your VPS with persistent storage.
  </Card>

  <Card title="Host a game server" icon="gamepad" href="/bare-metal/vps">
    Create a Minecraft or Palworld server for your community.
  </Card>

  <Card title="Deploy with GitHub Actions" icon="github" href="/bare-metal/vps">
    Automate deployments to your VPS on every push to your repository.
  </Card>

  <Card title="Install CloudPanel" icon="server" href="/bare-metal/vps">
    Manage multiple websites from a lightweight control panel built for developers.
  </Card>
</CardGroup>
