S3 Bucket: Minio #27

Open
opened 2026-05-06 23:40:06 +00:00 by john4064 · 1 comment
Owner
The simplest way to self-host an S3-compatible bucket on your NAS is to run **MinIO** in Docker on the NAS and point your apps at its S3 API endpoint instead of AWS S3. If you want something more clustered or distributed later, **Garage** and **Ceph Object Gateway** are also S3-compatible options, but they are usually more complex than MinIO for a home NAS setup. [wiki.fine](https://wiki.fine.cz/wiki/Set_Up_an_S3_Server_on_Synology_NAS)

## Recommended setup

For a single NAS, MinIO is usually the best starting point because it is designed to be S3-compatible and works well in a single-node Docker deployment with persistent storage mounted from the NAS disk. The basic idea is: [datacamp](https://www.datacamp.com/tutorial/minio-docker)

- Run the MinIO container on the NAS.
- Mount a NAS folder or volume into the container for durable storage.
- Expose the S3 API port and the web console port.
- Create buckets and access keys in the console.
- Point your apps, backup tools, or SDKs at the MinIO endpoint. [dev](https://dev.to/alanwest/how-to-replace-cloud-object-storage-with-a-self-hosted-s3-compatible-setup-mim)

## Example Docker Compose

A minimal MinIO compose file looks like this, with the data directory mapped to storage on your NAS and the API plus console ports exposed. [sefidian](http://www.sefidian.com/2022/04/08/deploy-standalone-minio-using-docker-compose/)

```yaml
services:
  minio:
    image: minio/minio:latest
    command: server /data --console-address ":9001"
    environment:
      MINIO_ROOT_USER: youruser
      MINIO_ROOT_PASSWORD: yourstrongpassword
    volumes:
      - /path/on/nas/minio-data:/data
    ports:
      - "9000:9000"
      - "9001:9001"
    restart: unless-stopped

You would then open the console in a browser, create a bucket, and use the S3 API endpoint from your apps. MinIO’s S3 compatibility means many tools that already support AWS S3 will work with only an endpoint change. scribd

How to use it

Your apps typically need the bucket name, access key, secret key, and a custom endpoint URL pointing to your NAS instead of AWS. For example, SDKs like boto3 can be pointed at the MinIO endpoint with endpoint_url, while keeping the same S3-style operations such as put_object and get_object. gist.github

For backups, many tools already support S3-compatible storage, so your NAS can become the destination for snapshots, media uploads, and archives. That makes it a practical replacement for AWS S3 in a lot of home and small-team workflows. backup

Security notes

If you expose it beyond your LAN, put MinIO behind HTTPS and consider a reverse proxy or tunnel rather than opening the S3 port directly to the internet. Use strong credentials, separate access keys per app, and avoid using the root account for normal application access. glukhov

If you mainly want private home use, keep it LAN-only and access it through your local network or VPN. That is much simpler and safer than public exposure.

When to pick alternatives

Choose Garage if you want a lighter self-hosted object store that is still S3-compatible and you’re interested in a more distributed design. Choose Ceph if you already run a larger storage cluster and want enterprise-style object storage, but it is overkill for most NAS-only setups. For most NAS users, MinIO is the most straightforward answer. docs.tagspaces

I can also give you a ready-to-run Docker Compose file for Synology, TrueNAS, or generic Linux NAS.

``` The simplest way to self-host an S3-compatible bucket on your NAS is to run **MinIO** in Docker on the NAS and point your apps at its S3 API endpoint instead of AWS S3. If you want something more clustered or distributed later, **Garage** and **Ceph Object Gateway** are also S3-compatible options, but they are usually more complex than MinIO for a home NAS setup. [wiki.fine](https://wiki.fine.cz/wiki/Set_Up_an_S3_Server_on_Synology_NAS) ## Recommended setup For a single NAS, MinIO is usually the best starting point because it is designed to be S3-compatible and works well in a single-node Docker deployment with persistent storage mounted from the NAS disk. The basic idea is: [datacamp](https://www.datacamp.com/tutorial/minio-docker) - Run the MinIO container on the NAS. - Mount a NAS folder or volume into the container for durable storage. - Expose the S3 API port and the web console port. - Create buckets and access keys in the console. - Point your apps, backup tools, or SDKs at the MinIO endpoint. [dev](https://dev.to/alanwest/how-to-replace-cloud-object-storage-with-a-self-hosted-s3-compatible-setup-mim) ## Example Docker Compose A minimal MinIO compose file looks like this, with the data directory mapped to storage on your NAS and the API plus console ports exposed. [sefidian](http://www.sefidian.com/2022/04/08/deploy-standalone-minio-using-docker-compose/) ```yaml services: minio: image: minio/minio:latest command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: youruser MINIO_ROOT_PASSWORD: yourstrongpassword volumes: - /path/on/nas/minio-data:/data ports: - "9000:9000" - "9001:9001" restart: unless-stopped ``` You would then open the console in a browser, create a bucket, and use the S3 API endpoint from your apps. MinIO’s S3 compatibility means many tools that already support AWS S3 will work with only an endpoint change. [scribd](https://www.scribd.com/document/833656950/Host-S3-Compatible-Storage-on-your-Synology-NAS-with-MinIO-Virtualization-Howto) ## How to use it Your apps typically need the bucket name, access key, secret key, and a custom endpoint URL pointing to your NAS instead of AWS. For example, SDKs like boto3 can be pointed at the MinIO endpoint with `endpoint_url`, while keeping the same S3-style operations such as `put_object` and `get_object`. [gist.github](https://gist.github.com/pavloshargan/15489a5060a5c20ab266d71c0dfe398f) For backups, many tools already support S3-compatible storage, so your NAS can become the destination for snapshots, media uploads, and archives. That makes it a practical replacement for AWS S3 in a lot of home and small-team workflows. [backup](https://www.backup.ch/en/kb/set-up-synology-nas-backup-to-s3-compatible-storage/) ## Security notes If you expose it beyond your LAN, put MinIO behind HTTPS and consider a reverse proxy or tunnel rather than opening the S3 port directly to the internet. Use strong credentials, separate access keys per app, and avoid using the root account for normal application access. [glukhov](https://www.glukhov.org/data-infrastructure/object-storage/garage-quickstart/) If you mainly want private home use, keep it LAN-only and access it through your local network or VPN. That is much simpler and safer than public exposure. ## When to pick alternatives Choose **Garage** if you want a lighter self-hosted object store that is still S3-compatible and you’re interested in a more distributed design. Choose **Ceph** if you already run a larger storage cluster and want enterprise-style object storage, but it is overkill for most NAS-only setups. For most NAS users, MinIO is the most straightforward answer. [docs.tagspaces](https://docs.tagspaces.org/tutorials/garage-storage/) I can also give you a ready-to-run Docker Compose file for Synology, TrueNAS, or generic Linux NAS. ```
Owner

Assigned for frontend access to the backend. Will send a file to attach to a users avatar request and then save it to their db.

Assigned for frontend access to the backend. Will send a file to attach to a users avatar request and then save it to their db.
mattdimegs added reference feature/upload-files-to-s3-bucket 2026-05-10 00:44:58 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Doble/MatchMakingServices#27
No description provided.