Skip to main content
A volume is persistent block storage with its own lifecycle, independent of any VM. Attach one to a VM and it shows up as a disk mounted under /mnt/<volume-name>. Detach it, attach it to another VM in the same region, grow it when you need more space — the data stays. Use volumes when your VM’s root disk isn’t enough: large databases, media libraries, file uploads, backups you manage yourself.

Creating a volume

From Volumes in your project:
  1. Click Create Volume.
  2. Pick a name (it becomes the mount path: /mnt/<name>), a size (10 GB to 10 TB, growable later), a region, and a filesystem (ext4 by default, xfs if you prefer).
  3. Leave auto-mount on unless you want to manage mounting yourself.
Billing starts at creation and runs hourly until you delete the volume — attached or not, VM running or stopped.

Attaching and mounting

Attach a volume to any VM in the same region — running or stopped, no reboot needed. With auto-mount on, the volume is formatted on first use and mounted at /mnt/<volume-name> within seconds. With auto-mount off, the disk is attached but not mounted — mount it yourself from the terminal. A VM can have up to 16 volumes attached.

Using a volume for app data

Apps from the marketplace install onto the VM’s root disk, so a data-hungry app can fill it. To keep heavy data on a volume instead:
  • If the app lets you configure a data directory, point it at a path under /mnt/<volume-name>.
  • For compose-managed apps, edit the app’s compose file from the dashboard and bind-mount its data directories to paths under /mnt/<volume-name>.
  • For anything you run yourself over the terminal, just work under the mount path.

Moving data between VMs

Detach from one VM, attach to another in the same region — the filesystem and data move with the volume. Detaching unmounts first; if a process still has files open on the volume, the detach is refused so your data isn’t corrupted. Stop whatever is using the mount and retry. Deleting a VM does not delete its volumes. They stay in your project (and keep billing) until you delete them.

Resizing

Volumes grow only — shrinking isn’t supported. Resize from the volume’s actions; the filesystem is expanded automatically, no downtime. Plan sizes so you grow into them rather than over-provisioning up front.

Deleting

A volume must be detached before you can delete it. Deletion is immediate and permanent — there’s no recycle bin, and volumes are not covered by VM snapshots (see below).

Volumes and snapshots

VM snapshots capture the VM’s root disk only. Attached volumes are not included. If the data on a volume matters, back it up yourself (e.g. pg_dump, rsync to external storage) on your own schedule.

Retention at €0 balance

WhatRetained
Volumes, while your balance stays above €0Until you delete them
Volumes after your balance reaches €07-day retention window — top up in time and they’re kept, otherwise they’re deleted

Pricing and quotas

Volume storage is billed hourly per GB — about €0.09 per GB per month (a 100 GB volume ≈ €9/month). The exact price is shown before you create. Default quota: 5 volumes / 500 GB total per organization. Need more? Contact support — the cap is raisable.

Best practices

  • Name volumes for their contentspgdata, media, not volume-1. The name is the mount path.
  • Grow instead of over-provisioning — resizing is online and grow-only, so start small.
  • Detach cleanly — stop services using the mount before detaching.
  • Back up what matters — volumes survive VM deletion but have no snapshot coverage of their own.

Next

Snapshots

Root-disk backups — what they cover and what they don’t.

Resize

Out of room on the root disk itself? Change the VM size.