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.
Every instance of an application shares the same volume, and a volume's size is fixed when you create it. Plan for both before you attach one.
How Volumes Work
A volume holds one set of files, and every instance of the app reads and writes that same set. Running more than one instance is safe only when your application is designed to run alongside itself on shared files. Most databases are not: two copies writing the same data directory will corrupt it. 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 | Every instance of the app shares the same volume |
| 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.