Infrastructure

Storage & volumes

Block storage volumes provide durable, persistent storage that outlives server restarts and can be reattached to new servers. Databases use volumes automatically.

How volumes work

A volume is a network-attached block device provisioned from your cloud provider (DigitalOcean Volumes or Hetzner Volumes). It mounts at a fixed path on your server and Docker containers can bind-mount it for data persistence.

Unlike the server’s root disk, volumes are independent resources. If you terminate a server, volumes can be detached first and reattached to a new server, preserving all data.

Automatic volumes for databases

When you install a database, Simplewala automatically creates a dedicated volume and mounts it to the container’s data directory. You do not need to manage this manually. The volume appears in the Storage section and is labelled with the database name.

Creating a volume manually

  1. Navigate to Storage in the server sidebar.
  2. Click Add Volume.
  3. Choose a size (GB) and give the volume a name.
  4. Click Create.

The volume is provisioned at the cloud provider and mounted to /mnt/<volume-name> on the server. This typically takes 30–60 seconds.

Mount paths

Volumes mount at /mnt/<volume-name> by default. To use the volume in a Docker container, add a bind mount:

docker run -v /mnt/myvolume:/data myimage

Or in a Compose file:

volumes:
  - /mnt/myvolume:/app/data

Resizing a volume

From the Storage page, click the volume and select Resize. Enter the new size (must be larger than current size). The volume is resized at the provider level. After resizing, the filesystem is expanded automatically — no manual resize2fs required.

Detaching and reattaching

Stop any processes that have open files on the volume before detaching. From the portal, click Detach on the volume card. The volume can then be reattached to a different server from its detail page.

Note: Detaching a database volume while the database container is running will cause data loss. Always stop the container first.

Data after server termination

When a server is terminated through the portal, attached volumes are automatically detached and preserved. Your data is not deleted. You can reattach the volume to a new server from the Storage section.

Troubleshooting

Volume not appearing after creation

Refresh the Storage page. If it still does not appear, check the command log for the volume provisioning command. Common causes: cloud provider quota exceeded, or the volume creation API call timed out.

Disk full errors despite volume attached

Confirm the volume is mounted (df -h | grep /mnt). If the root disk (/) is full rather than the volume, data is being written to the wrong path. Check your Docker container’s bind-mount configuration.