S3 / Object storage
S3-compatible object storage can be easily tested with the included containers. Two options are available:
- rustfs (recommended) - A fast, lightweight S3-compatible object storage server written in Rust
- minio - Abandoned S3-compatible object storage server (open-source version moved to maintenance-only mode with stripped-down UI)
rustfs (Recommended)
rustfs is the preferred option for development and testing due to its performance and simplicity.
Starting rustfs
Start the container using the following command:
docker compose up -d rustfs
Primary object storage
Primary object storage can be enabled by setting the PRIMARY=rustfs environment variable either in your .env file or in docker-compose.yml for individual containers.
PRIMARY=rustfs docker compose up nextcloud rustfs
External object storage
External storage can be configured in the Nextcloud admin settings. This is an example configuration for the nc-external bucket, buckets will be autocreated so you can name any bucket you like:
- Bucket:
nc-external - Authentication:
Access Key - Hostname:
rustfs - Port:
9000 - Enable SSL:
No - Enable Path Style:
Yes - Legacy (v2) Authentication:
No - Access Key:
nextcloud - Secret Key:
nextcloud
Accessing rustfs console
rustfs can be accessed via the browser at http://rustfs.local with the following credentials:
- Username:
nextcloud - Password:
nextcloud
Minio (Alternative)
Minio is a more feature-rich alternative with additional management capabilities. However, critics often point to recent controversial changes, including shifting to a maintenance-only mode for the open-source version and stripping down the UI. For these reasons, rustfs is now the recommended choice for most development workflows.
Starting Minio
Start the container using the following command:
docker compose up -d minio
Primary object storage
Primary object storage can be enabled by setting the PRIMARY=minio environment variable either in your .env file or in docker-compose.yml for individual containers.
PRIMARY=minio docker compose up nextcloud minio
External object storage
External storage can be configured in the Nextcloud admin settings. This is an example configuration for the nc-external bucket, buckets will be autocreated so you can name any bucket you like:
- Bucket:
nc-external - Authentication:
Access Key - Hostname:
minio - Port:
9000 - Enable SSL:
No - Enable Path Style:
Yes - Legacy (v2) Authentication:
No - Access Key:
nextcloud - Secret Key:
nextcloud
Accessing Minio
Minio can be accessed via the browser at http://minio.local with the following credentials:
- Username:
nextcloud - Password:
nextcloud
Using mc command line
This can be useful for admin operations like setting a bucket quota on the nc-external bucket name:
``` docker compose exec minio mc alias set minio http://localhost:9000 nextcloud nextcloud docker compose exec minio mc quota set minio/nc-external --size 1k ````