Ports and data
The Docker example exposes the following endpoints:
The container stores cache data under
/var/lib/verglas. Mount that path on local NVMe or another fast, persistent volume.
Start a single server
1
Create local configuration files
From the Verglas repository, create an ignored working directory:Edit Remove the
.verglas-selfhost/verglas.toml with your origin bucket and region. The following filled example uses an AWS S3 bucket named acme-lakehouse-prod:.verglas-selfhost/verglas.toml
[catalog] section when you only need a byte cache. Verglas then skips table watching and metadata warming.2
Write credentials
Write the origin credentials that Verglas uses on cache misses:Write a separate keypair for clients that connect to the Verglas S3 endpoint:If the catalog uses a bearer token, write only that token to
.verglas-selfhost/credentials/backend
.verglas-selfhost/credentials/endpoint
.verglas-selfhost/credentials/catalog.token.3
Override the Compose mounts
Save the following file as
docker-compose.override.yml:docker-compose.override.yml
4
Start and verify the server
Build the image and start the server:In a second terminal, point the CLI at the admin API:A healthy response includes the server version and cache state.
5
Point a client at the cache
Configure an S3 client with the endpoint keypair and fetch an object:Configure DuckDB with path-style addressing:
Operate the server
Use the following commands during normal operation:verglas drain stops new cache ownership, donates warm blocks to peers, and then exits. Use it before removing a node from a multi-node pod.
Configure production deployments
The Docker quickstart uses plaintext loopback endpoints. Production deployments must add TLS, restrict the admin listener, mount a persistent cache directory, and give the server only the origin and catalog permissions it needs. See the annotatedverglas.example.toml in the repository for every supported key.