Persistent Disks

Storage

Persistent Disks

5 min readUpdated August 2026

Without a volume, the container filesystem does not survive a new revision. Persistent disk is Settings → Storage → Volumes. Click Add volume, set a name, size, and mount path, then Commit.

Every replica mounts the same volume (shared). Put user data on a volume or in Postgres / Valkey — not on the ephemeral container disk.

Add volume under Storage sets the name, size, and mount path, and Commit applies the disk.

Performance specifications

MetricValue
Sequential throughput~100 MB/s
Baseline IOPS1,000 IOPS
Burst IOPS3,000 IOPS
Minimum size1 GB
Maximum size1 TB
TypeNetwork block storage (NVMe-backed)
BillingPer GB-month (provisioned size)

Shared volume — every replica mounts the same disk

Settings → Storage → Volumes is a shared filesystem. Every replica of the app mounts the same volume. Write from more than one replica only if your app can handle concurrent writers. Put structured data in Postgres or Valkey when you need a database, not a file lock.

Add volume

uploads
/data/uploads

Absolute path where the disk will appear inside the container

20
GBMin 1 GB — can be increased later
Commit on the canvas to apply the volume

Example: SQLite on a persistent disk

app.js (Node.js)

const Database = require('better-sqlite3');

// Mount path matches the disk configured in StackBlaze

const db = new Database('/data/app.db');

// Data persists across restarts and deploys

db.exec(`

CREATE TABLE IF NOT EXISTS users (

id INTEGER PRIMARY KEY,

email TEXT UNIQUE NOT NULL

)

`);

Under the hood

  • Settings → Storage → Volumes: add a name, size, and mount path. The volume stays attached across deploys until you remove it.
  • Shared mount: every replica of the app mounts the same volume at the configured path. Commit applies the change.
  • Volume backups: optional and configured on the volume itself. That is separate from add-on database backups on the Backups tab.
  • Ephemeral without a volume: the container filesystem is discarded on a new revision. Put uploads, SQLite files, and caches on a volume.

Step by step

01

Open Storage

Open the app → Settings tab → jump Storage → Volumes.

02

Add a volume

Click Add volume. Set Name, Size, and Mount path (the path inside the container). Commit the change on the canvas.

03

Write files to the mount path

Inside the container, the volume is a normal filesystem at that path. Reads and writes persist across restarts and new revisions. Every replica mounts the same volume.

04

Optional volume backups

If backups are offered on the volume, enable them and set the schedule. That is separate from add-on database backups.