Persistent Storage
ROFL developers may use Sapphire smart contracts for secure and consistent storage across all ROFL replicas. This storage however, is not appropriate for read/write intensive applications. For this reason ROFL has built-in support for local persistent storage with the following settings:
- Local per-machine storage, not synchronized across other ROFL replicas.
- Fully encrypted on the host machine.
- Preserved during ROFL upgrades and node restarts.
This type of a storage is particularly useful for caching. Docker images defined
in the compose.yaml
file are automatically stored to persistent storage. This
way they are fetched only the first time an app is deployed, otherwise
a cached version is considered.
All non-external container volumes will automatically reside in persistent
storage. In the example below, we define a new volume called my-volume
and
make .ollama
in the home folder persistent. This way we avoid downloading
ollama models each time a machine hosting the app is restarted:
services:
ollama:
image: "docker.io/ollama/ollama"
ports:
- "11434:11434"
volumes:
- my-volume:/root/.ollama
entrypoint: ["/usr/bin/bash", "-c", "/bin/ollama serve & sleep 5; ollama pull deepseek-r1:1.5b; wait"]
volumes:
my-volume: