version: '3.8' services: minio: image: minio/minio:latest container_name: minio command: server /data --console-address ":9001" ports: - "${MINIO_API_PORT:-9000}:9000" - "${MINIO_CONSOLE_PORT:-9001}:9001" environment: # MinIO credentials MINIO_ROOT_USER: ${MINIO_ROOT_USER} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD} # Server settings MINIO_SERVER_URL: ${MINIO_SERVER_URL:-https://ai.sriphat.com/minio} MINIO_BROWSER_REDIRECT_URL: ${MINIO_BROWSER_REDIRECT_URL:-https://ai.sriphat.com/minio-console} # Region MINIO_REGION: ${MINIO_REGION:-ap-southeast-1} # Identity OpenID (Keycloak) MINIO_IDENTITY_OPENID_CONFIG_URL: ${MINIO_IDENTITY_OPENID_CONFIG_URL} MINIO_IDENTITY_OPENID_CLIENT_ID: ${MINIO_IDENTITY_OPENID_CLIENT_ID} MINIO_IDENTITY_OPENID_CLIENT_SECRET: ${MINIO_IDENTITY_OPENID_CLIENT_SECRET} MINIO_IDENTITY_OPENID_CLAIM_NAME: ${MINIO_IDENTITY_OPENID_CLAIM_NAME:-policy} MINIO_IDENTITY_OPENID_SCOPES: ${MINIO_IDENTITY_OPENID_SCOPES:-openid,profile,email} MINIO_IDENTITY_OPENID_REDIRECT_URI: ${MINIO_IDENTITY_OPENID_REDIRECT_URI} # Timezone TZ: ${TZ:-Asia/Bangkok} volumes: # Persistent storage - ./data:/data # SSL certificates (if using direct HTTPS) - ./certs:/root/.minio/certs:ro networks: - shared_data_network restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 10s retries: 3 start_period: 10s networks: shared_data_network: external: true