TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/ohemilyy/universe/llms.txt
Use this file to discover all available pages before exploring further.
storage-s3 extension adds an S3-backed template storage provider to Universe. Once loaded, templates can be pushed to and pulled from any AWS S3 bucket — or any S3-compatible store such as MinIO or Cloudflare R2 — without modifying the core orchestrator. Template references in instance configurations can then declare "storage": "s3" to have templates fetched from S3 at deploy time.
Installation
Create the config file
The extension reads
./extensions/storage-s3/config.json. Create the directory and write your credentials before starting Universe.Configuration
All fields in./extensions/storage-s3/config.json:
| Field | Type | Default | Description |
|---|---|---|---|
bucket | string | "universe-templates" | S3 bucket name where template zips are stored. |
region | string | "us-east-1" | AWS region for the bucket. |
endpoint | string | null | null | Custom endpoint URL for S3-compatible stores (e.g., MinIO, R2). Leave null for AWS. |
accessKey | string | null | null | AWS access key ID. Falls back to the default AWS credential chain if null. |
secretKey | string | null | null | AWS secret access key. Falls back to the default AWS credential chain if null. |
prefix | string | "templates/" | Key prefix prepended to all objects stored in the bucket. |
When
accessKey and secretKey are both null, the AWS SDK uses the standard credential chain: environment variables, ~/.aws/credentials, and instance profile. This is the recommended approach for production deployments running on EC2 or ECS.S3-compatible stores
Setendpoint to your store’s URL to use a non-AWS backend:
S3 commands
The extension registers two console commands that are available both in the interactive console and viaPOST /api/commands/execute.
s3 upload <pattern>
Uploads one or more local templates to S3. The pattern is resolved against the local ./templates/ directory.
s3 download <pattern>
Downloads one or more templates from S3 into the local ./templates/ directory.
Integration with template installation
Add"storage": "s3" to any entry in a templateInstallationConfig to have Universe fetch that template from S3 when creating an instance:
S3TemplateStorage.downloadTemplate("server", "base"), which retrieves the zip from <prefix>server/base.zip in the configured bucket, extracts it into the instance working directory, and then applies variable replacement as usual.