# Setup MinIO as AWS S3 alternative in development with docker

#### Installation
1. Make sure your local machine already have Docker installed.

2. Run MinIO:
```
docker run \         
  -p 9000:9000 \
  -p 9001:9001 \
  --name minio-local \
  -v ${HOME}/projects/minio:/data1 \
  -e "MINIO_ROOT_USER=miniouser" \
  -e "MINIO_ROOT_PASSWORD=miniopass" \
  quay.io/minio/minio server /data1 --console-address ":9001"
```
[![](https://yv-knowledgebase.s3.amazonaws.com/uploads/images/gallery/2021-10/scaled-1680-/image-1634006672778.png)](https://yv-knowledgebase.s3.amazonaws.com/uploads/images/gallery/2021-10/image-1634006672778.png)

3. On your Laravel project, install the dependency
```
composer require --with-all-dependencies league/flysystem-aws-s3-v3 "^1.0"
```

4. Change the `.env` on your project
```
AWS_ACCESS_KEY_ID=miniouser
AWS_SECRET_ACCESS_KEY=miniopass
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=testing-saint
AWS_USE_PATH_STYLE_ENDPOINT=false
AWS_ENDPOINT="http://127.0.0.1:9000"
```

5. Running after rebooting your PC / Laptop / Mac (shall I mention rpi too?)
```
docker start minio-local
```

6. Accessing the web interface
Open your web browser, access [`http://localhost:9001`](http://localhost:9001)

7. Creating bucket
[![](https://yv-knowledgebase.s3.amazonaws.com/uploads/images/gallery/2021-10/scaled-1680-/image-1634006535708.png)](https://yv-knowledgebase.s3.amazonaws.com/uploads/images/gallery/2021-10/image-1634006535708.png)

Click 'Create Bucket', and a modal window will be shown like this:
[![](https://yv-knowledgebase.s3.amazonaws.com/uploads/images/gallery/2021-10/scaled-1680-/image-1634006585845.png)](https://yv-knowledgebase.s3.amazonaws.com/uploads/images/gallery/2021-10/image-1634006585845.png)

Set the bucket name. The bucket name will be used as `AWS_BUCKET` in your app.

#### Further Reading
[MinIO Documentation](https://min.io/)