version: '3.8' services: minio: image: minio/minio:latest container_name: crew-minio restart: unless-stopped environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin123} MINIO_SERVER_URL: ${MINIO_SERVER_URL:-http://localhost:9000} MINIO_BROWSER_REDIRECT_URL: ${MINIO_BROWSER_REDIRECT_URL:-http://localhost:9001} # CORS configuration - allow localhost for local development MINIO_API_CORS_ALLOW_ORIGIN: "http://localhost:8080,http://localhost:8081,http://localhost:8082,http://localhost:3000" command: server /data --console-address ":9001" ports: - "${MINIO_PORT:-9000}:9000" - "${MINIO_CONSOLE_PORT:-9001}:9001" volumes: - minio-data:/data networks: - crew-app-net healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 3 labels: - "description=Shared MinIO S3-compatible storage for all Crew apps" networks: crew-app-net: external: true volumes: minio-data: driver: local