Skip to main content

How to Manage Tigris Buckets with Fly.io

Tigris is a globally distributed, multi-cloud object storage service with built-in support for the S3 API and no egress fees. Fly.io users can create and manage Tigris buckets natively within Fly.io via the tool, flyctl.

Getting Started​

If you don't have an account, you can get yourself one here.

You can then use the fly storage command to create and manage Tigris buckets.

Creating and managing a bucket​

Creating a bucket associated with a Fly app​

To create a bucket for one of your Fly apps, run the following command in the directory where your Fly app is located:

fly storage create

This will create a bucket and set the required environment variables for you.

$ fly storage create
? Choose a name, use the default, or leave blank to generate one: demo-bucket
Your project (demo-bucket) is ready. See details and next steps with:

Setting the following secrets on ot-demo:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
BUCKET_NAME
AWS_ENDPOINT_URL_S3

Secrets are staged for the first deployment

Creating a bucket not associated with a Fly app​

If you want to create a bucket that is not associated with a Fly app, you can run the same command outside of a Fly app directory.

$ fly storage create
? Select Organization: Ovais Tariq (personal)
? Choose a name, use the default, or leave blank to generate one:
Your project (polished-thunder-5646) is ready. See details and next steps with:

Set one or more of the following secrets on your target app.
AWS_ENDPOINT_URL_S3: https://t3.storage.dev
AWS_ACCESS_KEY_ID: xxxxxxxxxxxxxxxxxxxx
AWS_SECRET_ACCESS_KEY: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
BUCKET_NAME: polished-thunder-5646

Creating a public bucket​

By default, buckets are private. You can create a public bucket by passing the --public flag to the fly storage create command:

fly storage create --public

Accessing objects in a public bucket​

Objects in a public bucket can be read by anyone without authentication. Public content is served from dedicated domains using the bucket name as a subdomain:

  • https://bucket-name.t3.tigrisfiles.io/key-name (primary)
  • https://bucket-name.t3.tigrisbucket.io/key-name
  • https://bucket-name.t3.tigrisblob.io/key-name

For example, if you created a public bucket called my-assets and uploaded logo.png, anyone can access it at:

https://my-assets.t3.tigrisfiles.io/logo.png

No credentials or signed URLs are needed — the URL works directly in a browser, curl, wget, <img> tags, etc.

For production use, we recommend setting up a custom domain so your public URLs stay stable. See the Public Bucket guide for full details.

Updating bucket public access​

You can make a private bucket public or a public bucket private by using the fly storage update command:

fly storage update bucket-name --public

Or,

fly storage update bucket-name --private

Updating custom domain​

You can associate a domain or subdomain you own with the bucket.

flyctl storage update bucket-name --custom-domain images.example.com

For this to work, you need to create a CNAME record for images.example.com that points to bucket-name.t3.tigrisbucket.io.

Remove the custom domain​

To remove a custom domain and certificate from your bucket, run the following command:

fly storage update bucket-name --clear-custom-domain

Listing buckets​

To list all the buckets associated with your Fly account, run the following command:

fly storage list

Deleting a bucket​

To delete a bucket, run the following command:

fly storage destroy bucket-name

Accessing the Tigris Console​

While flyctl provides command-line management for your buckets, you can also use the Tigris web console for a visual interface to manage your buckets, access keys, upload objects, view usage, and more.

Logging in to the Console​

To access the Tigris console with your Fly-provisioned buckets:

  1. Go to console.storage.dev/signin
  2. Click the Fly.io button to log in
  3. This will connect to your Fly organization and show all your buckets
Important: Use the Fly.io Login

You must click the Fly.io button on the login page to access your Fly-provisioned buckets.

Do not use Google, GitHub, or email login, as those will create a separate native Tigris account that won't have access to your Fly buckets.

Fly Organizations and Billing​

When you use Fly.io to access Tigris:

  • Billing: Your Tigris usage is billed through Fly.io, not directly through Tigris
  • Team management: You must manage team members through Fly Organizations, not through Tigris Organizations
  • Organization access: The Tigris console will reflect the permissions and access from your Fly Organization
  • All changes to Fly Organizations are automatically reflected in Tigris access controls

To manage your team:

  1. Go to the Fly Dashboard
  2. Click on Account → Organizations
  3. Select your organization and manage team members under the Team section

Migrating to Native Tigris​

If you want to migrate your Fly account to a native Tigris account:

  • Contact help@tigrisdata.com to initiate the migration
  • Your data will not move
  • Your access keys will continue to work as normal
  • You'll receive a separate Tigris bill instead of billing through Fly.io

Troubleshooting​

I can't see my buckets in the Tigris console​

Problem: You log into the Tigris console but see an empty dashboard with no buckets, even though you created them using fly storage create.

Cause: You're logged into a native Tigris account instead of your Fly.io account. These are completely separate systems.

Solution:

  1. Log out of the Tigris console completely
  2. Go to console.storage.dev/signin
  3. Click the Fly.io button (not Google, GitHub, or email)
  4. Your Fly-provisioned buckets should now appear

My buckets appear but are empty​

If you can see your buckets but they appear empty or you're missing some buckets:

  • Check your Fly organization: Ensure you're logged in with the correct Fly account that owns the buckets
  • Verify buckets exist: Run fly storage list from your terminal to confirm
  • Browser issues: Try clearing your browser cache or using an incognito/private window

Still need help?​

Contact help@tigrisdata.com with:

  • Your Fly organization name
  • The bucket names you're trying to access
  • Screenshots of what you're seeing in the console