¡Gracias por preparar esta guía! He tenido algo de éxito usando Minio.
Para cualquiera que intente configurarlo localmente con Docker Compose, puede indicarle a Docker que agregue un alias de nombre de host para que funcione como un subdominio, de la siguiente manera:
minio:
image: minio/minio
command: server --console-address :9001 /data
ports:
- "9000:9000"
- "9001:9001"
volumes:
- ./data/minio:/data
environment:
MINIO_DOMAIN: minio.mydomain.com
networks:
default:
aliases:
- assets.minio.mydomain.com
En este caso, configuraría DISCOURSE_S3_ENDPOINT=http://minio.mydomain.com:9000, DISCOURSE_S3_CDN_URL=//assets.minio.mydomain.com:9000, y configuraría su archivo local /etc/hosts/ para que apunte el subdominio a localhost.
Esto funciona en su mayor parte bien, pero noté que Discourse no puede descargar archivos de una dirección que no tenga el puerto 80 o 443, por lo que la carga de una imagen funcionará, pero luego, cuando intente descargarla para redimensionarla, fallará.
Pensé que sería bueno mencionar eso en la sección de Minio o en el resumen, que DISCOURSE_S3_CDN_URL debe estar en el puerto 80 o 443.