S3 Storage
mise-server uses S3-compatible object storage as the authoritative blob store. All cached and hosted package content is stored as BLAKE3-hashed blobs.
Supported Providers
- AWS S3
- MinIO
- Cloudflare R2
- Tigris
- Any S3-compatible API
Configuration
toml
[settings]
s3_bucket = "my-cache-bucket"
s3_region = "us-east-1"
s3_prefix = "cache/"
# s3_endpoint = "https://minio.example.com" # omit for AWSOr via environment variables:
bash
export MISE_SERVER_S3_BUCKET=my-cache-bucket
export MISE_SERVER_S3_REGION=us-east-1
export MISE_SERVER_S3_PREFIX=cache/
export MISE_SERVER_S3_ENDPOINT=https://minio.example.com # omit for AWS
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...Credentials
S3 credentials are read from:
AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEYenvironment variables- Instance IAM role (when running on AWS)
Content-Addressable Blobs
Files are stored by their BLAKE3 hash at {prefix}blobs/{hash[0:2]}/{hash}. Identical content across registries is automatically deduplicated.
Metadata (path, registry, size, content hash, timestamps) is stored in PostgreSQL, not S3.