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.
Services Inclus
nginx
nginx:1.27-alpine
minio
minio/minio:RELEASE.2024-11-07T00-52-20Z
Variables d'Environnement :
YAML Généré
# 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
Informations Rapides
- Services
- 2
- Réseaux
- 2
- Volumes
- 2
Quand l'Utiliser
Ce modèle est idéal pour mettre en place un environnement minio object storage Tous les services sont préconfigurés avec des healthchecks, des limites de ressources et des valeurs par défaut raisonnables. Personnalisez les variables d'environnement avant de déployer en production.
Conseils
- Changez tous les mots de passe par défaut avant le déploiement
- Vérifiez les limites de ressources pour votre matériel
- Ajoutez un reverse proxy pour le HTTPS en production
- Configurez des stratégies de sauvegarde pour les volumes de données