# MinIO Object Storage - Self-Hosted S3-Compatible Storage # Deployment: objects.b28.dev # Purpose: Backups, Directus uploads, demo artifacts services: minio: image: quay.io/minio/minio:latest container_name: minio restart: unless-stopped command: server /data --console-address ":9001" environment: # Root credentials (S3 API + Console) MINIO_ROOT_USER: ${MINIO_ROOT_USER} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD} # Server configuration MINIO_SERVER_URL: https://s3.b28.dev MINIO_BROWSER_REDIRECT_URL: https://objects.b28.dev # Optional: Enable browser MINIO_BROWSER: "on" # Coolify: Multiple domain routing SERVICE_FQDN_MINIO_9000: s3.b28.dev SERVICE_FQDN_MINIO_9001: objects.b28.dev volumes: - minio_data:/data expose: - "9000" # S3 API - "9001" # Web Console labels: # S3 API routing (port 9000) - "traefik.http.routers.minio-s3.rule=Host(`s3.b28.dev`)" - "traefik.http.routers.minio-s3.entrypoints=http" - "traefik.http.routers.minio-s3.service=minio-s3-service" - "traefik.http.services.minio-s3-service.loadbalancer.server.port=9000" healthcheck: test: ["CMD", "mc", "ready", "local"] interval: 30s timeout: 10s retries: 3 start_period: 10s networks: - default - directus_network networks: directus_network: external: true name: fs4w08s00ccgskog08k4wg4w volumes: minio_data: name: minio_data