Volumes
Volumes provide persistent block storage. Unlike service filesystems (ephemeral), volume data persists across restarts, redeployments, and rollbacks.Creating a Volume
- Add a volume to the canvas
- Set size (see plan limits below)
- Drop the volume onto a service
- Set the mount path
- Click Apply
Volume Constraints
- Services per volume: 1 (volumes cannot be shared between services)
- Replicas with volumes: 1 (required for data consistency)
- Size limits: vary by plan, see Plan Limits
Data Persistence
Data survives:- Container restarts
- Redeployments
- Service crashes
- Rollbacks (data stays current, not rolled back)
- Volume is deleted
- Environment is deleted
Database Templates
Templates provide pre-configured databases with volumes attached.PostgreSQL
Redis
--maxmemory if you give the service more memory, and change --maxmemory-policy to noeviction if you are using Redis as a durable store rather than a cache.
Connection:
MariaDB
MARIADB_USER and MARIADB_PASSWORD are both required. The image creates that user and grants it access to MARIADB_DATABASE.
Connection:
Connecting to Databases
Use service names as hostnames for private networking:Volume vs External Storage
Use Volumes when:- Running your own database
- Need direct filesystem access
- Storing small uploads or state
- Files exceed your plan’s storage limits
- Need to share files across services
- Require public CDN access
- Want automatic scaling
Common Questions
Can I resize a volume?
Can I resize a volume?
You can increase a volume’s size. You cannot decrease it. The underlying storage does not support shrinking, so the canvas blocks a smaller value and the change would be rejected even if it got through. To end up with a smaller volume, create a new one at the size you want and copy the data across.
Can I access volume data directly?
Can I access volume data directly?
You can only access volume data from within the container. Use database connections or application APIs.