Templates

Persistent Volumes

Attach durable block storage to any service — data survives restarts, redeploys, and scaling events

Persistent volumes attach durable block storage to any service on Ink. Data survives restarts, redeploys, and scaling events.

Specs

PropertyValue
Size range10 GB -- 100 GB per volume
Mount pathAny path inside the container (e.g. /data, /var/lib/postgresql/data)
Billing$0.0000035 per GB/min (~$0.15/GB/mo)
PersistenceSurvives restarts, redeploys, scaling events
Works withDatabases, application services, any container workload

Attaching volumes

Via MCP

The volumes parameter on create_service and update_service accepts an array of {name, mountPath, sizeGi} objects. The agent passes this when creating or updating a service.

Tool Call
(
  : ,
  : ,
  : {
    "0": "[object Object]"
  }
)

Via CLI

Volumes are configured via MCP tools or the dashboard. Database templates automatically include volumes when deployed with ink deploy.

Via dashboard

Toggle Persistent Volume in the service config panel, then set the mount path and size (10--100 GB slider).

When to use volumes

  • Database services (PostgreSQL, Redis, MySQL, MongoDB) -- all database templates include volumes by default
  • Persistent file storage -- uploads, caches, logs that must outlive a single container
  • Any workload where data must survive container restarts

Important notes

Database templates (postgresql, redis, mysql, mongodb) automatically include a persistent volume. No manual configuration needed.

  • Volume data persists even if the service is redeployed or restarted.
  • Deleting a service also deletes its attached volumes -- this is irreversible.

Pricing

$0.0000035 per GB per minute, billed only while the volume exists. That works out to approximately $0.15 per GB per month.

A 10 GB volume costs ~$1.50/mo. A 100 GB volume costs ~$15/mo.

On this page