mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-28 05:54:43 -04:00
docs: restructure
This commit is contained in:
parent
91ebd519a8
commit
70a6583fe0
69 changed files with 471 additions and 385 deletions
30
docs/content/config/media/azure.md
Normal file
30
docs/content/config/media/azure.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
# Azure Blob Storage
|
||||
|
||||
You can use [Microsoft Azure Blob Storage][azure] to handle your image uploads in HedgeDoc.
|
||||
|
||||
All you need to do is to get the [connection string][connection-string] for your storage account
|
||||
and create a storage container with public access set to 'blob'.
|
||||
|
||||
It's possible to create the container with the [Azure CLI][azure-cli], using your connection string,
|
||||
with the following command:
|
||||
|
||||
<!-- markdownlint-disable line-length -->
|
||||
```shell
|
||||
az storage container create --name <NAME> --public-access blob--connection-string "<CONNECTION_STRING>"
|
||||
```
|
||||
<!-- markdownlint-enable line-length -->
|
||||
|
||||
You can of course also create the container in the Azure portal if you prefer.
|
||||
|
||||
Then you just add the following lines to your configuration:
|
||||
(with the appropriate substitution for `<CONNECTION_STRING>` and `<NAME>` of course)
|
||||
|
||||
```dotenv
|
||||
HD_MEDIA_BACKEND="azure"
|
||||
HD_MEDIA_BACKEND_AZURE_CONNECTION_STRING="<CONNECTION_STRING>"
|
||||
HD_MEDIA_BACKEND_AZURE_CONTAINER="<NAME>"
|
||||
```
|
||||
|
||||
[azure]: https://azure.microsoft.com/services/storage/blobs/
|
||||
[connection-string]: https://docs.microsoft.com/azure/storage/common/storage-account-keys-manage
|
||||
[azure-cli]: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli
|
13
docs/content/config/media/filesystem.md
Normal file
13
docs/content/config/media/filesystem.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Filesystem
|
||||
|
||||
You can use your local filesystem to handle your image uploads in HedgeDoc.
|
||||
|
||||
You just add the following lines to your configuration:
|
||||
(with the appropriate substitution for `<DIRECTORY>` of course)
|
||||
|
||||
```dotenv
|
||||
HD_MEDIA_BACKEND="filesystem"
|
||||
HD_MEDIA_BACKEND_FILESYSTEM_UPLOAD_PATH="<DIRECTORY>"
|
||||
```
|
||||
|
||||
Please make sure that the user that runs HedgeDoc is able to write to the `uploads` directory.
|
31
docs/content/config/media/imgur.md
Normal file
31
docs/content/config/media/imgur.md
Normal file
|
@ -0,0 +1,31 @@
|
|||
# Imgur
|
||||
|
||||
!!! warning "Imgur saves anonymous images for only 6 month"
|
||||
Imgur will delete images not associated with any account 6 month after the last access.
|
||||
This means that if you use imgur as your image backend, you may lose images
|
||||
uploaded by you or your users. See this [FAQ entry][faq-entry]
|
||||
|
||||
You can use [Imgur][imgur] to handle your image uploads in HedgeDoc.
|
||||
|
||||
All you need for that is to register an application with Imgur and get a client id:
|
||||
|
||||
1. Create an account on imgur.com and log in.
|
||||
2. Go to <https://api.imgur.com/oauth2/addclient>
|
||||
3. Fill out the form and choose "Anonymous usage without user authorization"
|
||||
as the authorization type.
|
||||
4. Imgur will then show you your client id.
|
||||
|
||||
Then you just add the following lines to your configuration:
|
||||
(with the appropriate substitution for `<IMGUR_CLIENT_ID>` of course)
|
||||
|
||||
```dotenv
|
||||
HD_MEDIA_BACKEND="imgur"
|
||||
HD_MEDIA_BACKEND_IMGUR_CLIENT_ID="<IMGUR_CLIENT_ID>"
|
||||
```
|
||||
|
||||
All uploads are saved in the `media_uploads` database table and contain the deletion token
|
||||
([see here][deletion-token]) in the column `backendData`.
|
||||
|
||||
[faq-entry]: https://help.imgur.com/hc/en-us/articles/14415587638029-Imgur-Terms-of-Service-Update-April-19-2023
|
||||
[imgur]: https://imgur.com
|
||||
[deletion-token]: https://apidocs.imgur.com/#949d6cb0-5e55-45f7-8853-8c44a108399c
|
35
docs/content/config/media/s3.md
Normal file
35
docs/content/config/media/s3.md
Normal file
|
@ -0,0 +1,35 @@
|
|||
# S3-compatible
|
||||
|
||||
You can use [Amazon S3][s3] or any other S3-compatible storage (like [MinIO][minIO]
|
||||
or [Ceph Object Gateway][ceph]) to handle your image uploads in HedgeDoc.
|
||||
|
||||
Your S3 bucket must be configured to be writeable.
|
||||
|
||||
You just add the following lines to your configuration:
|
||||
(with the appropriate substitution for `<ACCESS_KEY>`, `<SECRET_KEY>`,
|
||||
`<BUCKET>`, `<REGION>`, and `<ENDPOINT>` of course)
|
||||
|
||||
```dotenv
|
||||
HD_MEDIA_BACKEND="s3"
|
||||
HD_MEDIA_BACKEND_S3_ACCESS_KEY="<ACCESS_KEY>"
|
||||
HD_MEDIA_BACKEND_S3_SECRET_KEY="<SECRET_KEY>"
|
||||
HD_MEDIA_BACKEND_S3_BUCKET="<BUCKET>"
|
||||
HD_MEDIA_BACKEND_S3_ENDPOINT="<ENDPOINT>"
|
||||
HD_MEDIA_BACKEND_S3_REGION="<REGION>"
|
||||
HD_MEDIA_BACKEND_S3_PATH_STYLE="<true|false>"
|
||||
```
|
||||
|
||||
`<ENDPOINT>` should be an URL and contain the protocol, the domain and if necessary the port.
|
||||
For example: `https://s3.example.org` or `http://s3.example.org:9000`
|
||||
|
||||
`<PATH_STYLE>` should be set to `true` if you are using a S3-compatible storage like MinIO that
|
||||
uses path-style URLs.
|
||||
|
||||
If you use Amazon S3, `<ENDPOINT>` should contain your [Amazon Region][amazon-region].
|
||||
For example: If your Amazon Region is `us-east-2`,your endpoint `<ENDPOINT>`
|
||||
should be `https://s3.us-east-2.amazonaws.com`.
|
||||
|
||||
[s3]: https://aws.amazon.com/s3/
|
||||
[minIO]: https://min.io
|
||||
[ceph]: https://docs.ceph.com/en/latest/radosgw/
|
||||
[amazon-region]: https://docs.aws.amazon.com/general/latest/gr/s3.html
|
74
docs/content/config/media/webdav.md
Normal file
74
docs/content/config/media/webdav.md
Normal file
|
@ -0,0 +1,74 @@
|
|||
# WebDAV
|
||||
|
||||
You can use any [WebDAV][webdav] server to handle your image uploads in HedgeDoc.
|
||||
|
||||
The WebDAV server must host the files in a way that allows HedgeDoc to request and receive them.
|
||||
|
||||
You just add the following lines to your configuration:
|
||||
(with the appropriate substitution for `<CONNECTION_STRING>`,
|
||||
`<UPLOAD_DIR>`, and `<PUBLIC_URL>` of course)
|
||||
|
||||
```dotemv
|
||||
HD_MEDIA_BACKEND="webdav"
|
||||
HD_MEDIA_BACKEND_WEBDAV_CONNECTION_STRING="<CONNECTION_STRING>"
|
||||
HD_MEDIA_BACKEND_WEBDAV_UPLOAD_DIR="<UPLOAD_DIR>"
|
||||
HD_MEDIA_BACKEND_WEBDAV_PUBLIC_URL="<PUBLIC_URL>"
|
||||
```
|
||||
|
||||
The `<CONNECTION_STRING>` should include the username and password (if needed)
|
||||
in the familiar way of `schema://user:password@url`.
|
||||
|
||||
With `<UPLOAD_DIR>` you can specify a folder you want to upload to,
|
||||
but you can also omit this (just don't spcify this value at all),
|
||||
if you prefer to upload directly to the root of the WebDAV server.
|
||||
|
||||
Finally, `<PUBLIC_URL>` specifies with which url HedgeDoc can access the upload. For this purpose
|
||||
the filename will be appended to `<PUBLIC_URL>`. So the file `test.png` with `<PUBLIC_URL>`
|
||||
`https://dav.example.com` should be accessible via `https://dav.example.com/test.png`.
|
||||
|
||||
## Using Nextcloud
|
||||
|
||||
If you want to use Nextcloud as a WebDAV server, follow the following instructions:
|
||||
|
||||
This guide was written using Nextcloud 21 in April 2021.
|
||||
|
||||
Because the username and app password will be included in the config, we suggest using
|
||||
a dedicated Nextcloud user for the uploads.
|
||||
|
||||
In this example the username will be `TestUser`.
|
||||
|
||||
1. Create an app password by going to `Settings` > `Security`. Nextcloud will generate a password
|
||||
for you. Let's assume it's `passw0rd`.
|
||||
2. In the Files app [create a new folder][nextcloud-folder] that will hold
|
||||
your uploads (e.g `HedgeDoc`).
|
||||
3. [Share][nextcloud-share] the newly created folder. The folder should (per default) be configured
|
||||
with the option `Read Only` (which we will assume in this guide), but
|
||||
`Allow upload and editing` should be fine, too.
|
||||
4. Get the public link of the share. It should be in your clipboard after creation. If not you
|
||||
can copy it by clicking the clipboard icon at the end of the line of `Share link`. We'll assume
|
||||
it is `https://cloud.example.com/s/some-id` in the following.
|
||||
5. Append `/download?path=%2F&files=` to this URL. To continue with our example
|
||||
the url should now be `https://cloud.example.com/s/some-id/download?path=%2F&files=`.
|
||||
6. Get the [WebDAV url of you Nextcloud server][nextcloud-webdav]. It should be located in the
|
||||
Files app in the bottom left corner under `Settings` > `WebDAV`. We'll assume it is
|
||||
`https://cloud.example.com/remote.php/dav/files/TestUser/` in the following.
|
||||
7. Add your login information to the link. This is done by adding `username:password@` in between
|
||||
the url schema (typically `https://`) and the rest of the url
|
||||
(`cloud.example.com/remote.php/dav/files/TestUser/` in our example). The WebDAV url in our
|
||||
example should now look like this
|
||||
`https://TestUser:passw0rd@cloud.example.com/remote.php/dav/files/TestUser/`.
|
||||
8. Configure HedgeDoc:
|
||||
|
||||
```dotenv
|
||||
HD_MEDIA_BACKEND="webdav"
|
||||
HD_MEDIA_BACKEND_WEBDAV_CONNECTION_STRING="https://TestUser:passw0rd@cloud.example.com/remote.php/dav/files/TestUser/"
|
||||
HD_MEDIA_BACKEND_WEBDAV_UPLOAD_DIR="HedgeDoc"
|
||||
HD_MEDIA_BACKEND_WEBDAV_PUBLIC_URL="https://cloud.example.com/s/some-id/download?path=%2F&files="
|
||||
```
|
||||
|
||||
Start using image uploads backed by Nextclouds WebDAV server.
|
||||
|
||||
[webdav]: https://en.wikipedia.org/wiki/WebDAV
|
||||
[nextcloud-folder]: https://docs.nextcloud.com/server/latest/user_manual/en/files/access_webgui.html#creating-or-uploading-files-and-directories
|
||||
[nextcloud-share]: https://docs.nextcloud.com/server/latest/user_manual/en/files/sharing.html#public-link-shares
|
||||
[nextcloud-webdav]: https://docs.nextcloud.com/server/latest/user_manual/en/files/access_webdav.html
|
Loading…
Add table
Add a link
Reference in a new issue