> ## Documentation Index
> Fetch the complete documentation index at: https://docs.techulus.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Volumes

> Persistent storage for stateful services.

Volumes provide persistent storage that survives container restarts and redeployments.

> **Stateful storage warning:** Volumes are stored on a single server's local filesystem. Techulus Cloud does not currently provide replicated volumes, automatic storage failover, or high availability for stateful services. If the server hosting a volume is lost, data can only be recovered from completed backups. Do not use Techulus Cloud local volumes for production databases.

## Adding Volumes

Each volume has a name and a container path:

| Field          | Description                                                      |
| -------------- | ---------------------------------------------------------------- |
| Name           | Unique identifier for the volume                                 |
| Container path | Where the volume is mounted inside the container (e.g., `/data`) |

When you add a volume, the service automatically becomes **stateful**. Stateful services are locked to a single server and limited to 1 replica so the container always mounts the same local data path. When the last volume is removed, the service reverts to stateless.

Stateful services can use serverless scaling when they have a public HTTP domain. Because volumes are local to one server, only a proxy-hosted stateful replica can sleep and wake on request. A stateful replica placed on a worker node stays always on.

## Volume Backups

Volumes can be backed up to S3-compatible storage on a schedule or on demand.

| Setting         | Description                          |
| --------------- | ------------------------------------ |
| Backup enabled  | Toggle automatic backups             |
| Backup schedule | Cron expression for backup frequency |

Backups stop the running container, compress the volume as a `.tar.gz` archive, upload it to the configured [backup storage](/infrastructure/backups), then start the container again if it was running. Each backup tracks its size, checksum, and completion status.

Backup statuses:

| Status      | Description          |
| ----------- | -------------------- |
| `pending`   | Backup queued        |
| `uploading` | Uploading to storage |
| `completed` | Successfully stored  |
| `failed`    | Backup failed        |

## Restoring

You can restore a volume from any completed backup. The restore process downloads the backup archive from storage and extracts it to the volume path on the target server.

## Limitations

* Services with volumes are locked to a single server.
* Replica count is fixed at 1 for stateful services.
* Volume data lives on the host filesystem and is not replicated to other servers.
* If the server is lost, data is only recoverable from completed backups.
* Backups are point-in-time recovery, not high availability or automatic failover.
