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.
Servicios Incluidos
nginx
nginx:1.27-alpine
minio
minio/minio:RELEASE.2024-11-07T00-52-20Z
Variables de Entorno:
YAML Generado
# 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
Información Rápida
- Servicios
- 2
- Redes
- 2
- Volúmenes
- 2
Cuándo Usar
Esta plantilla es ideal para configurar un entorno de minio object storage Todos los servicios vienen preconfigurados con healthchecks, límites de recursos y valores por defecto sensatos. Personaliza las variables de entorno antes de desplegar en producción.
Consejos
- Cambia todas las contraseñas por defecto antes de desplegar
- Revisa los límites de recursos para tu hardware
- Añade un proxy inverso para HTTPS en producción
- Configura estrategias de respaldo para los volúmenes de datos