MinIO Object Storage
A self-hosted S3-compatible object storage stack using MinIO behind an Nginx reverse proxy. MinIO provides a high-performance, Kubernetes-native object storage server that is fully compatible with the Amazon S3 API, making it a drop-in replacement for cloud object storage. The MinIO API is exposed on port 9000 for S3 client operations and the built-in web console is available on port 9001 for bucket management, user administration, and monitoring. Nginx sits in front as a reverse proxy handling SSL termination and request routing, with separate upstream configurations for the API and console endpoints. All object data is persisted in a named volume, and both services include health checks and resource limits for stable operation. Ideal for development environments, CI/CD artifact storage, backup targets, and any application needing S3-compatible storage without cloud vendor lock-in.
Servizi Inclusi
nginx
nginx:1.27-alpine
minio
minio/minio:RELEASE.2024-11-07T00-52-20Z
Variabili d'Ambiente:
YAML Generato
# Generated by ComposeHub (composehub.dev)
name: minio-nginx
services:
nginx:
image: nginx:1.27-alpine
restart: unless-stopped
ports:
- 80:80
- 443:443
volumes:
- nginx_conf:/etc/nginx/conf.d
networks:
- frontend
- backend
depends_on:
minio:
condition: service_healthy
healthcheck:
test:
- CMD-SHELL
- curl -f http://localhost/ || exit 1
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
deploy:
resources:
limits:
cpus: "0.50"
memory: 256M
reservations:
cpus: "0.10"
memory: 64M
labels:
com.composeforge.description: Nginx reverse proxy for MinIO API and console
minio:
image: minio/minio:RELEASE.2024-11-07T00-52-20Z
restart: unless-stopped
command:
- server
- /data
- "--console-address"
- ":9001"
ports:
- 9000:9000
- 9001:9001
volumes:
- minio_data:/data
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-changeme123}
MINIO_BROWSER: ${MINIO_BROWSER:-on}
MINIO_SITE_REGION: ${MINIO_SITE_REGION:-us-east-1}
MINIO_COMPRESSION_ENABLE: ${MINIO_COMPRESSION_ENABLE:-on}
MINIO_COMPRESSION_EXTENSIONS: ${MINIO_COMPRESSION_EXTENSIONS:-.txt,.log,.csv,.json,.xml,.html}
MINIO_PROMETHEUS_AUTH_TYPE: ${MINIO_PROMETHEUS_AUTH_TYPE:-public}
MINIO_DOMAIN: ${MINIO_DOMAIN:-}
MINIO_SERVER_URL: ${MINIO_SERVER_URL:-http://localhost:9000}
MINIO_BROWSER_REDIRECT_URL: ${MINIO_BROWSER_REDIRECT_URL:-http://localhost:9001}
networks:
- backend
healthcheck:
test:
- CMD-SHELL
- mc ready local || exit 1
interval: 30s
timeout: 10s
retries: 5
start_period: 15s
deploy:
resources:
limits:
cpus: "2.00"
memory: 1024M
reservations:
cpus: "0.50"
memory: 256M
labels:
com.composeforge.description: MinIO S3-compatible object storage server
networks:
frontend:
driver: bridge
backend:
driver: bridge
volumes:
minio_data:
driver: local
nginx_conf:
driver: local
Informazioni Rapide
- Servizi
- 2
- Reti
- 2
- Volumi
- 2
Quando Usarlo
Questo template è ideale per configurare un ambiente minio object storage Tutti i servizi sono preconfigurati con healthchecks, limiti di risorse e valori predefiniti sensati. Personalizza le variabili d'ambiente prima di fare il deploy in produzione.
Consigli
- Cambia tutte le password predefinite prima del deploy
- Verifica i limiti di risorse per il tuo hardware
- Aggiungi un reverse proxy per HTTPS in produzione
- Configura strategie di backup per i volumi di dati