Persistent Volumes
Attach a persistent volume to an app so uploads, files, or a self hosted database survive restarts and redeploys, and plan for its fixed size.
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.
An application with a volume runs a single instance, 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 only one copy of your application writes to it. Two copies writing the same files, such as a database's data directory, would corrupt them, so an application with a volume attached runs a single instance. To attach a volume to an application that runs more than one instance, scale it to one first. 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 | One. An application with a volume runs a single instance |
| Team storage | A total across all volumes, set by your plan |
| 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.
Related
Ports and Networking
Expose the ports your app listens on over HTTP, H2C for gRPC, or TCP, choose which are public, and reach other apps privately by internal address.
S3 Compatible Buckets
Create S3 compatible buckets for uploads and backups, issue access keys, and connect any S3 client, with multipart uploads and presigned URLs.