Skip to main content

Volumes

Volumes in Hostim.dev are persistent storage blocks that you can mount into your apps. They are useful when your app needs to save files, process uploads, or store runtime data.

Free tier​

A free volume plan with a small amount of storage is available for basic use cases and testing.

Unlike your app container, volumes keep data even after you redeploy or restart the app.

When to use volumes​

  • File uploads (images, PDFs, etc.)
  • Caching or temporary file storage
  • Log files or data processing output
  • Shared storage between multiple apps

How volumes work​

  • A volume belongs to a project
  • You can mount it into one or more apps
  • Data is stored independently from the container

Each volume has a name, size, and mount path inside the app.

How to create a volume​

  1. Open your project in the dashboard
  2. Click Create Service -> New Volume
  3. Give your Volume a name
  4. Choose a plan (size of the volume)
  5. Click Create Volume

How to mount a volume to an App​

  • Existing App
  1. Open your app in the dashboard
  2. Click on Volumes tab
  3. Under Attach New Volume, select the volume you created, provide a mount path (e.g. /data) and click add
  4. Click Save Changes on the top right

The app will now have access to that folder during runtime.

Volume ownership: A fresh volume is owned by root and is not writable yet. It becomes writable only after you attach it to an App and that app starts. After that, you can manage its files from the Bastion at /volumes/{volume-name} or from the app shell.

File permissions: Hostim makes the volume root writable for any user when the app starts. Files inside keep the mode they were created with. Files you upload through the Bastion (scp, sftp, rsync) usually arrive as 644 (files) and 755 (folders). If your app runs as a non-root user and logs permission denied on those files, make them writable from the Bastion:

chmod -R a+rwX /volumes/{volume-name}

The same applies when you mount one volume into two apps that run as different users.

  • New App
  1. When creating a new app, click on Add New Volume Mount
  2. Select the volume you created, provide a mount path (e.g. /data) and click add
  3. Click Create App

Choose a safe mount path: Do not mount a volume over the program binary or over system paths. For example, mounting a volume at /garage hides the /garage binary, and the container will not start (with no logs). Pick a neutral path like /data or /etc/<app>.

Managing volumes​

  • You can resize a volume if you need more space
  • You can remove volumes (data will be deleted)
  • You can mount the same volume into multiple apps

Use volumes when your app needs persistent or shared storage.

Accessing Volume Files via SSH​

For advanced access, you can SSH into the Bastion container and directly inspect or manipulate files inside your volumes at /volumes/{volume-name}.

Learn more →

Backups​

Every volume is backed up once a day, on every plan, with nothing to configure. Backups are kept for 7 days and stored encrypted in object storage in Germany. You can see them in the volume's Backups tab and download any of them as a .tar.zst archive, from the console or with hostim backups download. See Backups.

Restore from the console is not available yet. Download a backup and copy the files back through the Bastion, or contact support. You can also copy files out yourself any time over SSH through the Bastion at /volumes/{volume-name}.