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.
Enthaltene Services
nginx
nginx:1.27-alpine
minio
minio/minio:RELEASE.2024-11-07T00-52-20Z
Umgebungsvariablen:
Generiertes YAML
# 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
Kurzinfo
- Services
- 2
- Netzwerke
- 2
- Volumes
- 2
Wann verwenden
Dieses Template ist ideal für die Einrichtung einer minio object storage Umgebung. Alle Services sind mit Healthchecks, Ressourcenlimits und sinnvollen Standardwerten vorkonfiguriert. Passen Sie die Umgebungsvariablen an, bevor Sie in Produktion gehen.
Tipps
- Ändern Sie alle Standardpasswörter vor dem Deployment
- Überprüfen Sie die Ressourcenlimits für Ihre Hardware
- Fügen Sie einen Reverse Proxy für HTTPS in Produktion hinzu
- Konfigurieren Sie Backup-Strategien für Daten-Volumes