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
- Navigate to Storage in the server sidebar.
- Click Add Volume.
- Choose a size (GB) and give the volume a name.
- 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.