Volumes
Attach persistent storage that survives restarts and redeploys.
A volume is persistent block storage you attach to an application. Its data survives restarts and redeploys, which makes it the place for databases you self host, queues, or uploaded files. Volumes are available on the Pro plan.
An application with a volume runs on exactly one instance, and a volume's size is fixed when you create it. Plan for both before you attach one.
How Volumes Work
A volume is readable and writable by a single instance at a time. Because of this, an app with a volume attached is pinned to one instance and cannot be scaled out. The size you choose at creation cannot be changed later, so pick a size with room to grow.
Create and Attach
You can attach a volume while creating an application, or create one on its own and attach it afterward.
Create the Volume
Give it a name and a size in whole GB.
Attach It
Choose the application and a mount path, such as /data. The path must start with
/ and be unique within the app. The volume and app must be in the same team.
Deploy
The volume is mounted on the application's next deployment.
Reference
| Rule | Value |
|---|---|
| Size | 10 to 50 GB, whole numbers, fixed after creation |
| Mount path | Starts with /, up to 255 characters, unique per app |
| Instances | An app with a volume is limited to one instance |
| Team storage | Up to 250 GB total across all volumes on Pro |
| Name | 1 to 100 characters, letters, numbers, hyphens, and underscores |
To change a mount path, detach the volume and attach it again at the new path. A volume that is attached cannot be deleted until you detach it.