MinIO / Tigris / LocalStack
NamiDB’s s3:// scheme works against any S3-compatible endpoint.
The only thing that changes is endpoint=… in the URI.
MinIO (self-hosted)
The canonical “S3 on my own metal” backend.
docker run -d --rm -p 9000:9000 -p 9001:9001 \ -e MINIO_ROOT_USER=minioadmin \ -e MINIO_ROOT_PASSWORD=minioadmin \ --name minio minio/minio server /data --console-address ":9001"
docker exec minio mc alias set local http://127.0.0.1:9000 minioadmin minioadmindocker exec minio mc mb local/namidbimport osos.environ["AWS_ACCESS_KEY_ID"] = "minioadmin"os.environ["AWS_SECRET_ACCESS_KEY"] = "minioadmin"
client = tg.Client( "s3://namidb?ns=dev" "&endpoint=http://127.0.0.1:9000" "®ion=us-east-1" "&allow_http=true")The allow_http=true flag is required because MinIO does not serve
TLS by default.
For a production-style MinIO + namidb-server + docker-compose
stack, see
Self-host with Docker Compose.
Tigris
Tigris is an edge-native S3-compatible storage service.
client = tg.Client( "s3://my-bucket?ns=prod" "&endpoint=https://fly.storage.tigris.dev" "®ion=auto")Set AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY to your Tigris token.
LocalStack
For tests that need an in-process S3 mock:
docker run -p 4566:4566 -e SERVICES=s3 localstack/localstackaws --endpoint-url=http://localhost:4566 s3 mb s3://namidb-devexport AWS_ACCESS_KEY_ID=testexport AWS_SECRET_ACCESS_KEY=testclient = tg.Client( "s3://namidb-dev?ns=local" "&endpoint=http://localhost:4566" "&allow_http=true" "®ion=us-east-1")