Volumes

Volumes

Disk that survives a rollout, mounted into an app at a path you choose.

View .md Reviewed against 2026.8.7
On this page

What it is

A container's own filesystem is thrown away every time it restarts. A volume is disk that is not: it keeps its contents across restarts, rollouts and image changes, and appears inside the container at a path you pick.

Volumes are created by mounting one on a workload rather than on their own. There is no empty volume waiting to be adopted, which means a volume always has an owner and you always know what would break if you deleted it.

When you'd use it

  • User uploads an app writes to disk.
  • A cache or index that is expensive to rebuild but not worth a database.
  • Any directory that must still be there after a deploy.
Not this

Two apps cannot write to the same volume. If they need shared state, that is a database or a bucket. Reaching for a shared disk to coordinate two containers is the beginning of a bad afternoon.

Add one to an app

  1. Open the app and go to Storage.
  2. Add a volume: a name, a size, and the path it should appear at inside the container.
  3. Save. The app restarts once with the volume attached, and the directory is empty on first mount.

Size comes from a slider with your plan's ceiling drawn on it, rather than a free-text field, because a typo in a storage figure is expensive in both directions.

The Volumes list of a project, with each volume's size and what mounts it.The Volumes list of a project, with each volume's size and what mounts it.
The Volumes list of a project, with each volume's size and what mounts it.

Growing one

Open the volume and raise the size. It grows in place while the app keeps running, and the new space is available once the filesystem has expanded.

There is no shrink. Kubernetes does not offer one, so neither does klickops: getting smaller means creating a second volume, copying, and switching the mount.

Settings reference

SettingDefaultWhat it does
NamenoneIdentifies the volume in the project. Permanent.
Sizefrom the sliderHow much disk. Grows online, never shrinks.
Mount pathnoneWhere the volume appears inside the container, for example /data.
Backupofffs copies the files, snapshot uses the storage layer's own snapshots where the cluster supports it.

Limits and gotchas

  • Storage only grows. Size for a year, not for a decade.
  • One writer. A volume is mounted by one app. Scaling that app past one replica needs storage that supports it, or a different shape of state.
  • The mount hides what was there. Mounting at a path the image already populated makes the image's files invisible, not merged. Mount at an empty directory.
  • Backups are off unless you turn them on. An unbacked volume is exactly as durable as the disk under it.
Careful

Deleting an app deletes its volumes unless you detach them first, and deleting a volume deletes the data with no undo. The dialog lists what goes.

  • Apps is what mounts a volume.
  • Databases bring their own storage and need no volume.