Connect MinIO

MinIO is a self-hosted, open-source object storage server that is fully S3-compatible. This guide walks you through connecting your MinIO server to HeftySend.

Custom storage requires a Premium or Ultra plan. MinIO is a good choice if you want to host storage on your own servers. See Using your own storage with HeftySend for an overview.

Step 1: Make sure MinIO is running and accessible

  • Your MinIO server must be running and reachable from the internet
  • Default ports are 9000 for the API and 9001 for the Console
  • Verify you can access the MinIO Console at your server's address

If your server is only accessible on a local network, you can use a tunnel service to expose it temporarily for testing.

Step 2: Create a bucket

  • Log into your MinIO Console
  • Go to "Buckets" then "Create Bucket"
  • Enter a bucket name (for example, heftysend)
  • Click "Create Bucket"

Step 3: Set up CORS (required for browser uploads)

CORS must be configured using the MinIO command line client (mc). Run the following commands on your server:

# Add your MinIO server as an alias
mc alias set myminio https://your-minio-server:9000 ACCESS_KEY SECRET_KEY

# Save this as cors.json
# {
#   "CORSRules": [{
#     "AllowedOrigins": ["*"],
#     "AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
#     "AllowedHeaders": ["*"],
#     "ExposeHeaders": ["ETag"]
#   }]
# }

# Apply CORS to your bucket
mc cors set cors.json myminio/your-bucket-name

CORS cannot be set through the MinIO web console — it must be done via the mc command line tool. Without it, browser uploads will fail.

Step 4: Create access keys

  • In the MinIO Console, go to "Access Keys"
  • Click "Create Access Key"
  • Optionally set a name and expiration
  • Click "Create"
  • Save both the Access Key and Secret Key

Step 5: Connect to HeftySend

  1. Go to Settings > Storage in your HeftySend dashboard
  2. Click "Configure S3 Storage"
  3. Enter your MinIO endpoint URL (for example, https://your-minio-server.com:9000)
  4. Enter your Access Key and Secret Key
  5. Enter your bucket name
  6. For region, enter any value (for example, us-east-1) — MinIO ignores this field
  7. Click "Test Connection" then "Save"

Troubleshooting

If connection fails, make sure your MinIO server is publicly accessible and you are using the correct port. Self-signed SSL certificates may cause browser errors — use a certificate from Let's Encrypt or a reverse proxy with valid SSL for production setups. For CORS errors, apply the CORS config using mc and restart MinIO if the problem persists.

Last updated on March 10, 2026