Turbolite
ALTCHA Sentinel supports Turbolite, an S3-backed database designed for cloud-native deployments.
Automatic database migrations, snapshots, and point-in-time recovery (PITR) are fully supported.
Key Features
- S3-backed single source of truth
- No persistent volumes required; new instances automatically recover from S3
- Supports multi-node deployments through leader election to ensure a single writer
- Built-in encryption-at-rest support
Enabling Turbolite
To enable Turbolite, configure the TURBOLITE_URL environment variable:
TURBOLITE_URL=https://localhost/?bucket=my-bucket&prefix=mainDatabase migrations are applied automatically when the application starts.
Encryption at Rest
Database encryption can be enabled by specifying the encryptionKey URL parameter in TURBOLITE_URL:
TURBOLITE_URL=https://localhost/?bucket=my-bucket&prefix=main&encryptionKey=5e884898da28047151d0e56f8dc62927The encryption key must be exactly 32 bytes long.
Built-in Redis Store
The built-in Redis-compatible key-value store can also use Turbolite as its storage backend, enabling persistent shared state across multiple nodes.
To enable Turbolite for the built-in KV store, configure the following environment variables:
EXOTDB_REDIS_STORAGE=turboliteTURBOLITE_REDIS_URL=https://localhost/?bucket=my-bucket&prefix=redisLeader Election
Turbolite supports only a single writer at a time. Multiple nodes writing to the same database object can corrupt the database.
To ensure that only one Sentinel instance acts as the writer in a multi-node deployment, configure the built-in S3-backed leader elector:
CLUSTER_ELECTOR_S3_URL=https://localhost/?bucket=my-bucketIn most Kubernetes and Docker deployments, the advertised HTTP and Redis addresses are detected automatically. To override them, configure:
CLUSTER_ADVERTISE_HTTP_ADDRCLUSTER_ADVERTISE_REDIS_ADDR
Supported S3 Providers
Turbolite supports most S3-compatible object storage services.
Credentials can be provided through the standard AWS environment variables:
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_REGION
Alternatively, credentials can be embedded in the URL using the username:password@host format.
AWS S3
AWS S3 Express is recommended for the lowest latency.
TURBOLITE_URL=https://s3express-euw1-az3.eu-west-1.amazonaws.com/?bucket=my-bucket--euw1-az3--x-s3&prefix=mainCloudflare R2
TURBOLITE_URL=https://abcdef123.eu.r2.cloudflarestorage.com/?bucket=my-bucket&prefix=mainTigris
TURBOLITE_URL=https://t3.storage.dev/?bucket=my-bucket&prefix=mainGarage
TURBOLITE_URL=http://localhost/?bucket=my-bucket&prefix=mainURL Parameters
| Parameter | Description |
|---|---|
bucket | S3 bucket name. |
encryptionKey | Optional database encryption key. Must be 32 bytes long. |
prefix | Optional path prefix within the bucket. |
region | AWS region. Defaults to auto for non-AWS endpoints. |
Required S3 Permissions
The following S3 permissions are required:
s3:GetObjects3:PutObjects3:DeleteObjects3:ListBucket