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
- In FlyEnv, click Add New Host.
- Set the Host Name to
minio.test
. - Enter any placeholder in the Document Root field.
- Choose Static Site as the site type.
- Enable SSL and Automatic Certificate Generation.
- In the Reverse Proxy section, click the plus button and add
127.0.0.1:9200
(or your chosen internal port for Minio). - Save the host.
Now you can browse to https://minio.test in your browser—and enjoy a secure, local Minio instance!