hedgedoc/docs/guides/minio-image-upload.md
David Mehren d6d4f35cf5
Import meta-files
These files are imported from HedgeDoc 1 / the master branch.

Signed-off-by: David Mehren <git@herrmehren.de>
2022-01-23 22:02:58 +01:00

2.2 KiB

Minio Guide for CodiMD

Note: This guide was written before the renaming. Just replace HackMD with CodiMD in your mind 😄 thanks!

  1. First of all you need to setup Minio itself.

    Please refer to the official Minio docs for an production setup.

    For checking it out and development purposes a non-persistent setup is enough:

    docker run --name test-minio --rm -d -p 9000:9000 minio/minio server /data
    

    Please notice this is not for productive use as all your data gets lost when you stop this container

  2. Next step is to get the credentials form the container:

    docker logs test-minio
    

    docker logs

  3. Open http://localhost:9000 and login with the shown credentials.

    minio default view

  4. Create a bucket for CodiMD

    minio create bucket

  5. Add a policy for the prefix uploads and make it read-only.

    minio edit policy Open policy editor

    minio policy adding Add policy for uploads

  6. Set credentials and configs for Minio in CodiMD's config.json

    "minio": {
      "accessKey": "888MXJ7EP4XXXXXXXXX",
      "secretKey": "yQS2EbM1Y6IJrp/1BUKWq2/XXXXXXXXXXXXXXX",
      "endPoint": "localhost",
      "port": 9000,
      "secure": false
    }
    

    You have to use different values for endpoint and port for a production setup. Keep in mind the endpoint-address has to be public accessible from your browser.

  7. Set bucket name

    "s3bucket": "codimd"
    
  8. Set upload type.

    "imageuploadtype": "minio"
    
  9. Review your config.

    {
      // all your other config…
      "minio": {
        "accessKey": "888MXJ7EP4XXXXXXXXX",
        "secretKey": "yQS2EbM1Y6IJrp/1BUKWq2/XXXXXXXXXXXXXXX",
        "endPoint": "localhost",
        "port": 9000,
        "secure": false
      },
      "s3bucket": "codimd",
      "imageuploadtype": "minio"
    }