Configura un provider di storage di oggetti compatibile con S3 per i caricamenti

Grazie per aver messo insieme questa guida! Ho avuto un certo successo con Minio.

Per chiunque altro stia cercando di configurarlo localmente con Docker Compose, è possibile indicare a Docker di aggiungere un alias host in modo che funzioni come sottodominio, in questo modo:

  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

In questo caso, dovresti impostare DISCOURSE_S3_ENDPOINT=http://minio.mydomain.com:9000, DISCOURSE_S3_CDN_URL=//assets.minio.mydomain.com:9000 e impostare il tuo file locale /etc/hosts/ per puntare il sottodominio a localhost.

Questo funziona per lo più bene, ma ho notato che Discourse non è in grado di scaricare file da un indirizzo che non ha la porta 80 o 443, quindi l’upload di un’immagine funzionerà, ma poi quando tenterà di scaricarla per ridimensionarla, fallirà.

Pensavo che sarebbe stato utile menzionare questo nella sezione Minio o nel riepilogo, ovvero che DISCOURSE_S3_CDN_URL deve essere sulla porta 80 o 443.

4 Mi Piace