summaryrefslogtreecommitdiff
path: root/docs/content/guides/minio-image-upload.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/content/guides/minio-image-upload.md')
-rw-r--r--docs/content/guides/minio-image-upload.md94
1 files changed, 94 insertions, 0 deletions
diff --git a/docs/content/guides/minio-image-upload.md b/docs/content/guides/minio-image-upload.md
new file mode 100644
index 00000000..41d9b14e
--- /dev/null
+++ b/docs/content/guides/minio-image-upload.md
@@ -0,0 +1,94 @@
+# Minio Guide for HedgeDoc
+
+*Note:* This guide was written before the renaming. Just replace `HackMD` with `HedgeDoc` in your mind :smile: thanks!
+
+1. First of all you need to setup Minio itself.
+
+ Please refer to the [official Minio docs](https://docs.minio.io/) for an
+ production setup.
+
+ For checking it out and development purposes a non-persistent setup is enough:
+ ```sh
+ 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:
+
+ ```sh
+ docker logs test-minio
+ ```
+
+ ![docker logs](../images/minio-image-upload/docker-logs.png)
+
+3. Open <http://localhost:9000> and login with the shown credentials.
+
+ ![minio default view](../images/minio-image-upload/default-view.png)
+
+4. Create a bucket for HedgeDoc
+
+ ![minio create bucket](../images/minio-image-upload/create-bucket.png)
+
+5. Add a policy for the prefix `uploads` and make it read-only.
+
+ ![minio edit policy](../images/minio-image-upload/open-edit-policy.png)
+ *Open policy editor*
+
+ ![minio policy adding](../images/minio-image-upload/create-policy.png)
+ *Add policy for uploads*
+
+6. Set credentials and configs for Minio in HedgeDoc's `config.json`
+
+ ```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
+
+ ```JSON
+ "s3bucket": "hedgedoc"
+ ```
+
+8. Set upload type.
+
+ ```JSON
+ "imageuploadtype": "minio"
+ ```
+
+9. Review your config.
+
+ ```json
+ {
+ // all your other config…
+ "minio": {
+ "accessKey": "888MXJ7EP4XXXXXXXXX",
+ "secretKey": "yQS2EbM1Y6IJrp/1BUKWq2/XXXXXXXXXXXXXXX",
+ "endPoint": "localhost",
+ "port": 9000,
+ "secure": false
+ },
+ "s3bucket": "hedgedoc",
+ "imageuploadtype": "minio"
+ }
+ ```
+
+10. If you were using filesystem before
+
+and you want to migrate assets to minio.
+
+You could use a convenience script located in `bin/migrate_from_fs_to_minio`.
+
+Be careful, read carefully what it does, it was not tested in all environments.
+
+Take it as an inspiration to make your own migration script. \ No newline at end of file