services:
  minio:
    # MinIO Inc. stopped publishing Docker images and pre-built binaries in October 2025
    # (https://github.com/minio/minio/issues/21647) and archived the minio/minio repository
    # in February 2026. The official minio/minio image is frozen at RELEASE.2025-09-07T16-13-09Z
    # and no longer receives security fixes (e.g. the fix for CVE-2025-62506 was never published
    # as an image). This template uses pgsty/minio, the actively maintained community fork
    # (https://github.com/pgsty/minio, AGPLv3). It is a drop-in replacement: same environment
    # variables, same `server` command, same /data on-disk format (existing minio-data volumes
    # keep working), and it restores the full web console that upstream removed.
    image: pgsty/minio:RELEASE.2026-06-18T00-00-00Z
    restart: unless-stopped
    volumes:
      # by default, the MinIO container will use a volume named minio-data
      # to store its data. This volume is created automatically by Docker.
      # If you want to use a local directory instead, uncomment the line below
      # and specify the path to your local directory.
      # (be warned that ../files is pointing to a subdirectory of /etc/dokploy/compose in dokploy)
      # - ../files/minio-data:/data
      # if you uncommented the line above, comment the line below and the volumes section at the end
      - minio-data:/data
    environment:
      - MINIO_ROOT_USER=${MINIO_ROOT_USER}
      - MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD}
      - MINIO_BROWSER_REDIRECT_URL=${MINIO_BROWSER_REDIRECT_URL}
    command: server /data --console-address ":9001"
    expose:
      # port 9000 serves the S3 API (routed through the api domain defined in template.toml)
      # port 9001 serves the web console (routed through the main domain)
      - 9000
      - 9001

# comment the line below if you specified a local directory in the volumes section of the minio service
volumes:
  minio-data:
