What is Minio

Minio is a Go-written, S3-compatible object storage service. I used to rely on Laravel Herd for local environment setup, since its Pro plan supports Minio. Recently, I decided to switch to FlyEnv, which supports more services—but it doesn’t include built-in Minio management.

Minio is a Go application, so running it is as simple as executing its binary. You can install Minio on macOS using Homebrew with this command:

Installation

brew install minio

# default user:     minioadmin
# default password: minioadmin

After installation, you can access your Minio instance by navigating to http://localhost:9000, which is the default port.

Why You Need HTTPS

When developing Laravel applications, I always enable HTTPS in my local environment. HTTPS unlocks certain browser features—such as copy-to-clipboard functionality and push-notification permissions—that are blocked on insecure origins.

FlyEnv makes HTTPS easy by automatically generating certificates with its own root CA. Simply enable automatic certificate generation when you add a host, then open Keychain Access, locate the FlyEnv root certificate, and mark it as trusted. You’ll then have a fully functional HTTPS environment.

If you link to files hosted on Minio’s default HTTP endpoint (http://localhost:9000) in your Laravel application, the browser will warn you about mixed content. To avoid this, serve Minio over HTTPS as well. FlyEnv lets you do this by configuring a reverse proxy.

Adding Minio as a Host in FlyEnv

  1. In FlyEnv, click Add New Host.
  2. Set the Host Name to minio.test.
  3. Enter any placeholder in the Document Root field.
  4. Choose Static Site as the site type.
  5. Enable SSL and Automatic Certificate Generation.
  6. In the Reverse Proxy section, click the plus button and add 127.0.0.1:9200 (or your chosen internal port for Minio).
  7. Save the host.

Now you can browse to https://minio.test in your browser—and enjoy a secure, local Minio instance!