summaryrefslogtreecommitdiff
path: root/docs/guides
diff options
context:
space:
mode:
Diffstat (limited to 'docs/guides')
-rw-r--r--docs/guides/auth/github.md31
-rw-r--r--docs/guides/auth/gitlab-self-hosted.md14
-rw-r--r--docs/guides/auth/keycloak.md50
-rw-r--r--docs/guides/auth/ldap-AD.md1
-rw-r--r--docs/guides/auth/mattermost-self-hosted.md32
-rw-r--r--docs/guides/auth/nextcloud.md10
-rw-r--r--docs/guides/auth/oauth.md12
-rw-r--r--docs/guides/auth/saml-onelogin.md52
-rw-r--r--docs/guides/auth/saml.md68
-rw-r--r--docs/guides/auth/twitter.md42
-rw-r--r--docs/guides/images/auth/application-page.pngbin123152 -> 0 bytes
-rw-r--r--docs/guides/images/auth/create-oauth-app.pngbin27920 -> 0 bytes
-rw-r--r--docs/guides/images/auth/create-twitter-app.pngbin115406 -> 0 bytes
-rw-r--r--docs/guides/images/auth/gitlab-application-details.pngbin30378 -> 0 bytes
-rw-r--r--docs/guides/images/auth/gitlab-new-application.pngbin45457 -> 0 bytes
-rw-r--r--docs/guides/images/auth/gitlab-sign-in.pngbin5590 -> 0 bytes
-rw-r--r--docs/guides/images/auth/mattermost-enable-oauth2.pngbin26034 -> 0 bytes
-rw-r--r--docs/guides/images/auth/mattermost-oauth-app-add.pngbin21443 -> 0 bytes
-rw-r--r--docs/guides/images/auth/mattermost-oauth-app-done.pngbin31767 -> 0 bytes
-rw-r--r--docs/guides/images/auth/mattermost-oauth-app-form.pngbin62160 -> 0 bytes
-rw-r--r--docs/guides/images/auth/nextcloud-oauth2-1-settings.pngbin47047 -> 0 bytes
-rw-r--r--docs/guides/images/auth/nextcloud-oauth2-2-client-add.pngbin11684 -> 0 bytes
-rw-r--r--docs/guides/images/auth/nextcloud-oauth2-3-clientid-secret.pngbin13428 -> 0 bytes
-rw-r--r--docs/guides/images/auth/onelogin-add-app.pngbin40519 -> 0 bytes
-rw-r--r--docs/guides/images/auth/onelogin-copy-idp-metadata.pngbin239493 -> 0 bytes
-rw-r--r--docs/guides/images/auth/onelogin-edit-app-name.pngbin122369 -> 0 bytes
-rw-r--r--docs/guides/images/auth/onelogin-edit-sp-metadata.pngbin184470 -> 0 bytes
-rw-r--r--docs/guides/images/auth/onelogin-select-template.pngbin73244 -> 0 bytes
-rw-r--r--docs/guides/images/auth/onelogin-use-dashboard.pngbin27216 -> 0 bytes
-rw-r--r--docs/guides/images/auth/register-oauth-application-form.pngbin61453 -> 0 bytes
-rw-r--r--docs/guides/images/auth/register-twitter-application.pngbin202414 -> 0 bytes
-rw-r--r--docs/guides/images/auth/twitter-app-confirmation.pngbin191064 -> 0 bytes
-rw-r--r--docs/guides/images/auth/twitter-app-keys.pngbin162703 -> 0 bytes
-rw-r--r--docs/guides/images/minio-image-upload/create-bucket.pngbin15207 -> 0 bytes
-rw-r--r--docs/guides/images/minio-image-upload/create-policy.pngbin21156 -> 0 bytes
-rw-r--r--docs/guides/images/minio-image-upload/default-view.pngbin13061 -> 0 bytes
-rw-r--r--docs/guides/images/minio-image-upload/docker-logs.pngbin73263 -> 0 bytes
-rw-r--r--docs/guides/images/minio-image-upload/open-edit-policy.pngbin17514 -> 0 bytes
-rw-r--r--docs/guides/images/s3-image-upload/bucket-policy-editor.pngbin54641 -> 0 bytes
-rw-r--r--docs/guides/images/s3-image-upload/bucket-property.pngbin71762 -> 0 bytes
-rw-r--r--docs/guides/images/s3-image-upload/create-bucket.pngbin70260 -> 0 bytes
-rw-r--r--docs/guides/images/s3-image-upload/custom-policy.pngbin55804 -> 0 bytes
-rw-r--r--docs/guides/images/s3-image-upload/iam-user.pngbin91526 -> 0 bytes
-rw-r--r--docs/guides/images/s3-image-upload/review-policy.pngbin100067 -> 0 bytes
-rw-r--r--docs/guides/migrate-etherpad.md10
-rw-r--r--docs/guides/migrations-and-breaking-changes.md56
-rw-r--r--docs/guides/minio-image-upload.md24
-rw-r--r--docs/guides/providing-terms.md9
-rw-r--r--docs/guides/s3-image-upload.md19
49 files changed, 270 insertions, 160 deletions
diff --git a/docs/guides/auth/github.md b/docs/guides/auth/github.md
index d6a1095e..d16b486f 100644
--- a/docs/guides/auth/github.md
+++ b/docs/guides/auth/github.md
@@ -1,27 +1,24 @@
Authentication guide - GitHub
===
-***Note:** This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!*
+**Note:** *This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!*
1. Sign-in or sign-up for a GitHub account
2. Navigate to developer settings in your GitHub account [here](https://github.com/settings/developers) and select the "OAuth Apps" tab
-3. Click on the **New OAuth App** button, to create a new OAuth App:
+3. Click on the **New OAuth App** button, to create a new OAuth App:
+ ![create-oauth-app](../../images/auth/create-oauth-app.png)
-![create-oauth-app](../images/auth/create-oauth-app.png)
+4. Fill out the new OAuth application registration form, and click **Register Application**
+ ![register-oauth-application-form](../../images/auth/register-oauth-application-form.png)
-4. Fill out the new OAuth application registration form, and click **Register Application**
+ **Note:** *The callback URL is <your-codimd-url>/auth/github/callback*
-![register-oauth-application-form](../images/auth/register-oauth-application-form.png)
-
-*Note: The callback URL is <your-hackmd-url>/auth/github/callback*
-
-5. After successfully registering the application, you'll receive the Client ID and Client Secret for the application
-
-![application-page](../images/auth/application-page.png)
+5. After successfully registering the application, you'll receive the Client ID and Client Secret for the application
+ ![application-page](../../images/auth/application-page.png)
6. Add the Client ID and Client Secret to your config.json file or pass them as environment variables
- * config.json:
- ````javascript
+ * `config.json`:
+ ```js
{
"production": {
"github": {
@@ -30,9 +27,9 @@ Authentication guide - GitHub
}
}
}
- ````
+ ```
* environment variables:
- ````
- HMD_GITHUB_CLIENTID=3747d30eaccXXXXXXXXX
- HMD_GITHUB_CLIENTSECRET=2a8e682948eee0c580XXXXXXXXXXXXXXXXXXXXXX
+ ```sh
+ CMD_GITHUB_CLIENTID=3747d30eaccXXXXXXXXX
+ CMD_GITHUB_CLIENTSECRET=2a8e682948eee0c580XXXXXXXXXXXXXXXXXXXXXX
````
diff --git a/docs/guides/auth/gitlab-self-hosted.md b/docs/guides/auth/gitlab-self-hosted.md
index 60f62616..ea1ad6bd 100644
--- a/docs/guides/auth/gitlab-self-hosted.md
+++ b/docs/guides/auth/gitlab-self-hosted.md
@@ -1,24 +1,24 @@
-# GitLab (self-hosted)
+GitLab (self-hosted)
===
-***Note:** This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!*
+**Note:** *This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!*
1. Sign in to your GitLab
2. Navigate to the application management page at `https://your.gitlab.domain/admin/applications` (admin permissions required)
3. Click **New application** to create a new application and fill out the registration form:
-![New GitLab application](../images/auth/gitlab-new-application.png)
+![New GitLab application](../../images/auth/gitlab-new-application.png)
4. Click **Submit**
5. In the list of applications select **HackMD**. Leave that site open to copy the application ID and secret in the next step.
-![Application: HackMD](../images/auth/gitlab-application-details.png)
+![Application: HackMD](../../images/auth/gitlab-application-details.png)
6. In the `docker-compose.yml` add the following environment variables to `app:` `environment:`
```
-- HMD_DOMAIN=your.hackmd.domain
+- HMD_DOMAIN=your.codimd.domain
- HMD_URL_ADDPORT=443
- HMD_PROTOCOL_USESSL=true
- HMD_GITLAB_BASEURL=https://your.gitlab.domain
@@ -27,6 +27,6 @@
```
7. Run `docker-compose up -d` to apply your settings.
-8. Sign in to your HackMD using your GitLab ID:
+8. Sign in to your CodiMD using your GitLab ID:
-![Sign in via GitLab](../images/auth/gitlab-sign-in.png)
+![Sign in via GitLab](../../images/auth/gitlab-sign-in.png)
diff --git a/docs/guides/auth/keycloak.md b/docs/guides/auth/keycloak.md
new file mode 100644
index 00000000..437e01bf
--- /dev/null
+++ b/docs/guides/auth/keycloak.md
@@ -0,0 +1,50 @@
+Keycloak/Red Hat SSO (self-hosted)
+===
+
+## Prerequisites
+
+This guide assumes you have run and configured Keycloak. If you'd like to meet this prerequisite quickly, it can be achieved by running a `jboss/keycloak` container and attaching it to your network. Set the environment variables KEYCLOAK_USER and `KEYCLOAK_PASSWORD`, and expose port 8080.
+
+Where HTTPS is specified throughout, use HTTP instead. You may also have to specify the exposed port, 8080.
+
+## Steps
+
+1. Sign in to the administration portal for your Keycloak instance at https://keycloak.example.com/auth/admin/master/console
+
+You may note that a separate realm is specified throughout this tutorial. It is best practice not to use the master realm, as it normally contains the realm-management client that federates access using the policies and permissions you can create.
+
+2. Navigate to the client management page at `https://keycloak.example.com/auth/admin/master/console/#/realms/your-realm/clients` (admin permissions required)
+3. Click **Create** to create a new client and fill out the registration form. You should set the Root URL to the fully qualified public URL of your CodiMD instance.
+4. Click **Save**
+5. Set the **Access Type** of the client to `confidential`. This will make your client require a client secret upon authentication.
+
+---
+
+### Additional steps to circumvent generic OAuth2 issue:
+
+1. Select Client Scopes from the sidebar, and begin to create a new client scope using the Create button.
+2. Ensure that the **Name** field is set to `id`.
+3. Create a new mapper under the Mappers tab. This should reference the User Property `id`. `Claim JSON Type` should be String and all switches below should be enabled. Save the mapper.
+4. Go to the client you set up in the previous steps using the Clients page, then choose the Client Scopes tab. Apply the scope you've created. This should mitigate errors as seen in [codimd/server#56](https://github.com/codimd/server/issues/56), as the `/userinfo` endpoint should now bring back the user's ID under the `id` key as well as `sub`.
+
+---
+
+6. In the `docker-compose.yml` add the following environment variables to `app:` `environment:`
+
+```
+CMD_OAUTH2_USER_PROFILE_URL=https://keycloak.example.com/auth/realms/your-realm/protocol/openid-connect/userinfo
+CMD_OAUTH2_USER_PROFILE_USERNAME_ATTR=preferred_username
+CMD_OAUTH2_USER_PROFILE_DISPLAY_NAME_ATTR=name
+CMD_OAUTH2_USER_PROFILE_EMAIL_ATTR=email
+CMD_OAUTH2_TOKEN_URL=https://keycloak.example.com/auth/realms/your-realm/protocol/openid-connect/token
+CMD_OAUTH2_AUTHORIZATION_URL=https://keycloak.example.com/auth/realms/your-realm/protocol/openid-connect/auth
+CMD_OAUTH2_CLIENT_ID=<your client ID>
+CMD_OAUTH2_CLIENT_SECRET=<your client secret, which you can find under the Credentials tab for your client>
+CMD_OAUTH2_PROVIDERNAME=Keycloak
+CMD_DOMAIN=<codimd.example.com>
+CMD_PROTOCOL_USESSL=true
+CMD_URL_ADDPORT=false
+```
+
+7. Run `docker-compose up -d` to apply your settings.
+8. Sign in to your CodiMD using your Keycloak ID
diff --git a/docs/guides/auth/ldap-AD.md b/docs/guides/auth/ldap-AD.md
index 77521db3..e74121f1 100644
--- a/docs/guides/auth/ldap-AD.md
+++ b/docs/guides/auth/ldap-AD.md
@@ -1,7 +1,6 @@
AD LDAP auth
===
-
To setup your CodiMD instance with Active Directory you need the following configs:
```
diff --git a/docs/guides/auth/mattermost-self-hosted.md b/docs/guides/auth/mattermost-self-hosted.md
index 631aabd3..d8280399 100644
--- a/docs/guides/auth/mattermost-self-hosted.md
+++ b/docs/guides/auth/mattermost-self-hosted.md
@@ -1,33 +1,29 @@
Authentication guide - Mattermost (self-hosted)
===
-*Note: The Mattermost setup portion of this document is just a quick guide. See the [official documentation](https://docs.mattermost.com/developer/oauth-2-0-applications.html) for more details.*
+**Note:** *The Mattermost setup portion of this document is just a quick guide. See the [official documentation](https://docs.mattermost.com/developer/oauth-2-0-applications.html) for more details.*
This guide uses the generic OAuth2 module for compatibility with Mattermost version 5.0 and above.
1. Sign-in with an administrator account to your Mattermost instance
-2. Make sure **OAuth 2.0 Service Provider** is enabled in the Main Menu (menu button next to your username in the top left corner) --> System Console --> Custom Integrations menu, which you can find at `https://your.mattermost.domain/admin_console/integrations/custom`
-
-![mattermost-enable-oauth2](../images/auth/mattermost-enable-oauth2.png)
+2. Make sure **OAuth 2.0 Service Provider** is enabled in the Main Menu (menu button next to your username in the top left corner) --> System Console --> Custom Integrations menu, which you can find at `https://your.mattermost.domain/admin_console/integrations/custom`
+ ![mattermost-enable-oauth2](../../images/auth/mattermost-enable-oauth2.png)
3. Navigate to the OAuth integration settings through Main Menu --> Integrations --> OAuth 2.0 Applications, at `https://your.mattermost.domain/yourteam/integrations/oauth2-apps`
-4. Click on the **Add OAuth 2.0 Application** button to add a new OAuth application
-
-![mattermost-oauth-app-add](../images/auth/mattermost-oauth-app-add.png)
+4. Click on the **Add OAuth 2.0 Application** button to add a new OAuth application
+ ![mattermost-oauth-app-add](../../images/auth/mattermost-oauth-app-add.png)
-5. Fill out the form and click **Save**
-
-![mattermost-oauth-app-form](../images/auth/mattermost-oauth-app-form.png)
+5. Fill out the form and click **Save**
+ ![mattermost-oauth-app-form](../../images/auth/mattermost-oauth-app-form.png)
*Note: The callback URL is \<your-codimd-url\>/auth/oauth2/callback*
-6. After saving the application, you'll receive the Client ID and Client Secret
-
-![mattermost-oauth-app-done](../images/auth/mattermost-oauth-app-done.png)
+6. After saving the application, you'll receive the Client ID and Client Secret
+ ![mattermost-oauth-app-done](../../images/auth/mattermost-oauth-app-done.png)
7. Add the Client ID and Client Secret to your config.json file or pass them as environment variables
- * config.json:
- ````javascript
+ * `config.json`:
+ ```javascript
{
"production": {
"oauth2": {
@@ -43,9 +39,9 @@ This guide uses the generic OAuth2 module for compatibility with Mattermost vers
}
}
}
- ````
+ ```
* environment variables:
- ````
+ ```sh
CMD_OAUTH2_BASEURL=https://your.mattermost.domain
CMD_OAUTH2_USER_PROFILE_URL=https://your.mattermost.domain/api/v4/users/me
CMD_OAUTH2_USER_PROFILE_USERNAME_ATTR=id
@@ -55,4 +51,4 @@ This guide uses the generic OAuth2 module for compatibility with Mattermost vers
CMD_OAUTH2_AUTHORIZATION_URL=https://your.mattermost.domain/oauth/authorize
CMD_OAUTH2_CLIENT_ID=ii4p1u3jz7dXXXXXXXXXXXXXXX
CMD_OAUTH2_CLIENT_SECRET=mqzzx6fydbXXXXXXXXXXXXXXXX
- ````
+ ```
diff --git a/docs/guides/auth/nextcloud.md b/docs/guides/auth/nextcloud.md
index 108772dd..3bf86d31 100644
--- a/docs/guides/auth/nextcloud.md
+++ b/docs/guides/auth/nextcloud.md
@@ -9,15 +9,15 @@ This guide uses the generic OAuth2 module for compatibility with Nextcloud 13 an
2. Navigate to the OAuth integration settings: Profile Icon (top right) --> Settings
Then choose Security Settings from the *Administration* part of the list - Don't confuse this with Personal Security Settings, where you would change your personal password!
- At the top there's OAuth 2.0-Clients.
- ![Where to find OAuth2 in Nextcloud](../images/auth/nextcloud-oauth2-1-settings.png)
+ At the top there's OAuth 2.0-Clients.
+ ![Where to find OAuth2 in Nextcloud](../../images/auth/nextcloud-oauth2-1-settings.png)
-3. Add your CodiMD instance by giving it a *name* (perhaps CodiMD, but could be anything) and a *Redirection-URI*. The Redirection-URI will be `\<your-codimd-url\>/auth/oauth2/callback`. Click <kbd>Add</kbd>.
- ![Adding a client to Nextcloud](../images/auth/nextcloud-oauth2-2-client-add.png)
+3. Add your CodiMD instance by giving it a *name* (perhaps CodiMD, but could be anything) and a *Redirection-URI*. The Redirection-URI will be `\<your-codimd-url\>/auth/oauth2/callback`. Click <kbd>Add</kbd>.
+ ![Adding a client to Nextcloud](../../images/auth/nextcloud-oauth2-2-client-add.png)
4. You'll now see a line containing a *client identifier* and a *Secret*.
- ![Successfully added OAuth2-client](../images/auth/nextcloud-oauth2-3-clientid-secret.png)
+ ![Successfully added OAuth2-client](../../images/auth/nextcloud-oauth2-3-clientid-secret.png)
5. That's it for Nextcloud, the rest is configured in your CodiMD `config.json` or via the `CMD_` environment variables!
diff --git a/docs/guides/auth/oauth.md b/docs/guides/auth/oauth.md
new file mode 100644
index 00000000..46314e26
--- /dev/null
+++ b/docs/guides/auth/oauth.md
@@ -0,0 +1,12 @@
+# OAuth general information
+
+| service | callback URL (after the server URL) |
+| ------- | --------- |
+| facebook | `/auth/facebook/callback` |
+| twitter | `/auth/twitter/callback` |
+| github | `/auth/github/callback` |
+| gitlab | `/auth/gitlab/callback` |
+| mattermost | `/auth/mattermost/callback` |
+| dropbox | `/auth/dropbox/callback` |
+| google | `/auth/google/callback` |
+| saml | `/auth/saml/callback` |
diff --git a/docs/guides/auth/saml-onelogin.md b/docs/guides/auth/saml-onelogin.md
index 02a5ffac..785e36ba 100644
--- a/docs/guides/auth/saml-onelogin.md
+++ b/docs/guides/auth/saml-onelogin.md
@@ -1,40 +1,35 @@
Authentication guide - SAML (OneLogin)
===
-***Note:** This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!*
+**Note:** *This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!*
1. Sign-in or sign-up for an OneLogin account. (available free trial for 2 weeks)
2. Go to the administration page.
-3. Select the **APPS** menu and click on the **Add Apps**.
+3. Select the **APPS** menu and click on the **Add Apps**.
+ ![onelogin-add-app](../../images/auth/onelogin-add-app.png)
-![onelogin-add-app](../images/auth/onelogin-add-app.png)
+4. Find "SAML Test Connector (SP)" for template of settings and select it.
+ ![onelogin-select-template](../../images/auth/onelogin-select-template.png)
-4. Find "SAML Test Connector (SP)" for template of settings and select it.
-
-![onelogin-select-template](../images/auth/onelogin-select-template.png)
-
-5. Edit display name and icons for OneLogin dashboard as you want, and click **SAVE**.
-
-![onelogin-edit-app-name](../images/auth/onelogin-edit-app-name.png)
+5. Edit display name and icons for OneLogin dashboard as you want, and click **SAVE**.
+ ![onelogin-edit-app-name](../../images/auth/onelogin-edit-app-name.png)
6. After that other tabs will appear, click the **Configuration**, and fill out the below items, and click **SAVE**.
- * RelayState: The base URL of your hackmd, which is issuer. (last slash is not needed)
- * ACS (Consumer) URL Validator: The callback URL of your hackmd. (serverurl + /auth/saml/callback)
+ * RelayState: The base URL of your CodiMD, which is issuer. (last slash is not needed)
+ * ACS (Consumer) URL Validator: The callback URL of your CodiMD. (serverurl + /auth/saml/callback)
* ACS (Consumer) URL: same as above.
- * Login URL: login URL(SAML requester) of your hackmd. (serverurl + /auth/saml)
-
-![onelogin-edit-sp-metadata](../images/auth/onelogin-edit-sp-metadata.png)
+ * Login URL: login URL(SAML requester) of your CopiMD. (serverurl + /auth/saml)
+ ![onelogin-edit-sp-metadata](../../images/auth/onelogin-edit-sp-metadata.png)
7. The registration is completed. Next, click **SSO** and copy or download the items below.
* X.509 Certificate: Click **View Details** and **DOWNLOAD** or copy the content of certificate ....(A)
- * SAML 2.0 Endpoint (HTTP): Copy the URL ....(B)
-
-![onelogin-copy-idp-metadata](../images/auth/onelogin-copy-idp-metadata.png)
+ * SAML 2.0 Endpoint (HTTP): Copy the URL ....(B)
+ ![onelogin-copy-idp-metadata](../../images/auth/onelogin-copy-idp-metadata.png)
-8. In your hackmd server, create IdP certificate file from (A)
+8. In your CodiMD server, create IdP certificate file from (A)
9. Add the IdP URL (B) and the Idp certificate file path to your config.json file or pass them as environment variables.
- * config.json:
- ````javascript
+ * `config.json`:
+ ```javascript
{
"production": {
"saml": {
@@ -43,12 +38,11 @@ Authentication guide - SAML (OneLogin)
}
}
}
- ````
+ ```
* environment variables
- ````
- HMD_SAML_IDPSSOURL=https://*******.onelogin.com/trust/saml2/http-post/sso/******
- HMD_SAML_IDPCERT=/path/to/idp_cert.pem
- ````
-10. Try sign-in with SAML from your hackmd sign-in button or OneLogin dashboard (like the screenshot below).
-
-![onelogin-use-dashboard](../images/auth/onelogin-use-dashboard.png)
+ ```sh
+ CMD_SAML_IDPSSOURL=https://*******.onelogin.com/trust/saml2/http-post/sso/******
+ CMD_SAML_IDPCERT=/path/to/idp_cert.pem
+ ```
+10. Try sign-in with SAML from your CodiMD sign-in button or OneLogin dashboard (like the screenshot below).
+ ![onelogin-use-dashboard](../../images/auth/onelogin-use-dashboard.png)
diff --git a/docs/guides/auth/saml.md b/docs/guides/auth/saml.md
index 97ac9d3c..3a64f5f7 100644
--- a/docs/guides/auth/saml.md
+++ b/docs/guides/auth/saml.md
@@ -1,44 +1,44 @@
Authentication guide - SAML
===
-***Note:** This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!*
+**Note:** *This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!*
The basic procedure is the same as the case of OneLogin which is mentioned in [OneLogin-Guide](./saml-onelogin.md). If you want to match your IdP, you can use more configurations as below.
-* If your IdP accepts metadata XML of the service provider to ease configuraion, use this url to download metadata XML.
+* If your IdP accepts metadata XML of the service provider to ease configuration, use this url to download metadata XML.
* {{your-serverurl}}/auth/saml/metadata
- * _Note: If not accessable from IdP, download to local once and upload to IdP._
+ * _Note: If not accessible from IdP, download to local once and upload to IdP._
* Change the value of `issuer`, `identifierFormat` to match your IdP.
- * `issuer`: A unique id to identify the application to the IdP, which is the base URL of your HackMD as default
+ * `issuer`: A unique id to identify the application to the IdP, which is the base URL of your CodiMD as default
* `identifierFormat`: A format of unique id to identify the user of IdP, which is the format based on email address as default. It is recommend that you use as below.
* urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress (default)
* urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
- * config.json:
- ````javascript
+ * `config.json`:
+ ```javascript
{
"production": {
"saml": {
/* omitted */
- "issuer": "myhackmd"
+ "issuer": "mycodimd"
"identifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
}
}
}
- ````
+ ```
* environment variables
- ````
- HMD_SAML_ISSUER=myhackmd
- HMD_SAML_IDENTIFIERFORMAT=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
- ````
+ ```
+ CMD_SAML_ISSUER=mycodimd
+ CMD_SAML_IDENTIFIERFORMAT=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
+ ```
* Change mapping of attribute names to customize the displaying user name and email address to match your IdP.
* `attribute`: A dictionary to map attribute names
- * `attribute.id`: A primary key of user table for your HackMD
- * `attribute.username`: Attribute name of displaying user name on HackMD
+ * `attribute.id`: A primary key of user table for your CodiMD
+ * `attribute.username`: Attribute name of displaying user name on CodiMD
* `attribute.email`: Attribute name of email address, which will be also used for Gravatar
* _Note: Default value of all attributes is NameID of SAML response, which is email address if `identifierFormat` is default._
- * config.json:
- ````javascript
+ * `config.json`:
+ ```javascript
{
"production": {
"saml": {
@@ -51,35 +51,35 @@ The basic procedure is the same as the case of OneLogin which is mentioned in [O
}
}
}
- ````
+ ```
* environment variables
- ````
- HMD_SAML_ATTRIBUTE_ID=sAMAccountName
- HMD_SAML_ATTRIBUTE_USERNAME=nickName
- HMD_SAML_ATTRIBUTE_EMAIL=mail
- ````
+ ```sh
+ CMD_SAML_ATTRIBUTE_ID=sAMAccountName
+ CMD_SAML_ATTRIBUTE_USERNAME=nickName
+ CMD_SAML_ATTRIBUTE_EMAIL=mail
+ ```
-* If you want to controll permission by group membership, add group attribute name and required group (allowed) or external group (not allowed).
+* If you want to control permission by group membership, add group attribute name and required group (allowed) or external group (not allowed).
* `groupAttribute`: An attribute name of group membership
- * `requiredGroups`: Group names array for allowed access to HackMD. Use vertical bar to separate for environment variables.
- * `externalGroups`: Group names array for not allowed access to HackMD. Use vertical bar to separate for environment variables.
+ * `requiredGroups`: Group names array for allowed access to CodiMD. Use vertical bar to separate for environment variables.
+ * `externalGroups`: Group names array for not allowed access to CodiMD. Use vertical bar to separate for environment variables.
* _Note: Evaluates `externalGroups` first_
- * config.json:
- ````javascript
+ * `config.json`:
+ ```javascript
{
"production": {
"saml": {
/* omitted */
"groupAttribute": "memberOf",
- "requiredGroups": [ "hackmd-users", "board-members" ],
+ "requiredGroups": [ "codimd-users", "board-members" ],
"externalGroups": [ "temporary-staff" ]
}
}
}
- ````
+ ```
* environment variables
- ````
- HMD_SAML_GROUPATTRIBUTE=memberOf
- HMD_SAML_REQUIREDGROUPS=hackmd-users|board-members
- HMD_SAML_EXTERNALGROUPS=temporary-staff
- ````
+ ```sh
+ CMD_SAML_GROUPATTRIBUTE=memberOf
+ CMD_SAML_REQUIREDGROUPS=codimd-users|board-members
+ CMD_SAML_EXTERNALGROUPS=temporary-staff
+ ```
diff --git a/docs/guides/auth/twitter.md b/docs/guides/auth/twitter.md
index 1b96288f..1973515c 100644
--- a/docs/guides/auth/twitter.md
+++ b/docs/guides/auth/twitter.md
@@ -1,33 +1,29 @@
Authentication guide - Twitter
===
-***Note:** This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!*
+**Note:** *This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!*
1. Sign-in or sign-up for a Twitter account
2. Go to the Twitter Application management page [here](https://apps.twitter.com/)
-3. Click on the **Create New App** button to create a new Twitter app:
+3. Click on the **Create New App** button to create a new Twitter app:
+ ![create-twitter-app](../../images/auth/create-twitter-app.png)
-![create-twitter-app](../images/auth/create-twitter-app.png)
+4. Fill out the create application form, check the developer agreement box, and click **Create Your Twitter Application**
+ ![register-twitter-application](../../images/auth/register-twitter-application.png)
-4. Fill out the create application form, check the developer agreement box, and click **Create Your Twitter Application**
+ *Note: you may have to register your phone number with Twitter to create a Twitter application*
-![register-twitter-application](../images/auth/register-twitter-application.png)
+ To do this Click your profile icon --> Settings and privacy --> Mobile --> Select Country/region --> Enter phone number --> Click Continue
-*Note: you may have to register your phone number with Twitter to create a Twitter application*
+5. After you receive confirmation that the Twitter application was created, click **Keys and Access Tokens**
+ ![twitter-app-confirmation](../../images/auth/twitter-app-confirmation.png)
-To do this Click your profile icon --> Settings and privacy --> Mobile --> Select Country/region --> Enter phone number --> Click Continue
+6. Obtain your Twitter Consumer Key and Consumer Secret
+ ![twitter-app-keys](../../images/auth/twitter-app-keys.png)
-5. After you receive confirmation that the Twitter application was created, click **Keys and Access Tokens**
-
-![twitter-app-confirmation](../images/auth/twitter-app-confirmation.png)
-
-6. Obtain your Twitter Consumer Key and Consumer Secret
-
-![twitter-app-keys](../images/auth/twitter-app-keys.png)
-
-7. Add your Consumer Key and Consumer Secret to your config.json file or pass them as environment variables:
- * config.json:
- ````javascript
+7. Add your Consumer Key and Consumer Secret to your `config.json` file or pass them as environment variables:
+ * `config.json`:
+ ```javascript
{
"production": {
"twitter": {
@@ -36,9 +32,9 @@ To do this Click your profile icon --> Settings and privacy --> Mobile --> Sele
}
}
}
- ````
+ ```
* environment variables:
- ````
- HMD_TWITTER_CONSUMERKEY=esTCJFXXXXXXXXXXXXXXXXXXX
- HMD_TWITTER_CONSUMERSECRET=zpCs4tU86pRVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ````
+ ```sh
+ CMD_TWITTER_CONSUMERKEY=esTCJFXXXXXXXXXXXXXXXXXXX
+ CMD_TWITTER_CONSUMERSECRET=zpCs4tU86pRVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ ```
diff --git a/docs/guides/images/auth/application-page.png b/docs/guides/images/auth/application-page.png
deleted file mode 100644
index a57da017..00000000
--- a/docs/guides/images/auth/application-page.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/create-oauth-app.png b/docs/guides/images/auth/create-oauth-app.png
deleted file mode 100644
index 07d0b511..00000000
--- a/docs/guides/images/auth/create-oauth-app.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/create-twitter-app.png b/docs/guides/images/auth/create-twitter-app.png
deleted file mode 100644
index c555464e..00000000
--- a/docs/guides/images/auth/create-twitter-app.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/gitlab-application-details.png b/docs/guides/images/auth/gitlab-application-details.png
deleted file mode 100644
index 6e042886..00000000
--- a/docs/guides/images/auth/gitlab-application-details.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/gitlab-new-application.png b/docs/guides/images/auth/gitlab-new-application.png
deleted file mode 100644
index be9e4446..00000000
--- a/docs/guides/images/auth/gitlab-new-application.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/gitlab-sign-in.png b/docs/guides/images/auth/gitlab-sign-in.png
deleted file mode 100644
index 27aaf6dd..00000000
--- a/docs/guides/images/auth/gitlab-sign-in.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/mattermost-enable-oauth2.png b/docs/guides/images/auth/mattermost-enable-oauth2.png
deleted file mode 100644
index af5cdbe2..00000000
--- a/docs/guides/images/auth/mattermost-enable-oauth2.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/mattermost-oauth-app-add.png b/docs/guides/images/auth/mattermost-oauth-app-add.png
deleted file mode 100644
index 4a8cdfa7..00000000
--- a/docs/guides/images/auth/mattermost-oauth-app-add.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/mattermost-oauth-app-done.png b/docs/guides/images/auth/mattermost-oauth-app-done.png
deleted file mode 100644
index fcf1beaf..00000000
--- a/docs/guides/images/auth/mattermost-oauth-app-done.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/mattermost-oauth-app-form.png b/docs/guides/images/auth/mattermost-oauth-app-form.png
deleted file mode 100644
index 215947bf..00000000
--- a/docs/guides/images/auth/mattermost-oauth-app-form.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/nextcloud-oauth2-1-settings.png b/docs/guides/images/auth/nextcloud-oauth2-1-settings.png
deleted file mode 100644
index 82652a54..00000000
--- a/docs/guides/images/auth/nextcloud-oauth2-1-settings.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/nextcloud-oauth2-2-client-add.png b/docs/guides/images/auth/nextcloud-oauth2-2-client-add.png
deleted file mode 100644
index 7909fa62..00000000
--- a/docs/guides/images/auth/nextcloud-oauth2-2-client-add.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/nextcloud-oauth2-3-clientid-secret.png b/docs/guides/images/auth/nextcloud-oauth2-3-clientid-secret.png
deleted file mode 100644
index b05513d1..00000000
--- a/docs/guides/images/auth/nextcloud-oauth2-3-clientid-secret.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/onelogin-add-app.png b/docs/guides/images/auth/onelogin-add-app.png
deleted file mode 100644
index 356bb852..00000000
--- a/docs/guides/images/auth/onelogin-add-app.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/onelogin-copy-idp-metadata.png b/docs/guides/images/auth/onelogin-copy-idp-metadata.png
deleted file mode 100644
index 7185f537..00000000
--- a/docs/guides/images/auth/onelogin-copy-idp-metadata.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/onelogin-edit-app-name.png b/docs/guides/images/auth/onelogin-edit-app-name.png
deleted file mode 100644
index 634d1916..00000000
--- a/docs/guides/images/auth/onelogin-edit-app-name.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/onelogin-edit-sp-metadata.png b/docs/guides/images/auth/onelogin-edit-sp-metadata.png
deleted file mode 100644
index 111580b1..00000000
--- a/docs/guides/images/auth/onelogin-edit-sp-metadata.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/onelogin-select-template.png b/docs/guides/images/auth/onelogin-select-template.png
deleted file mode 100644
index 13401816..00000000
--- a/docs/guides/images/auth/onelogin-select-template.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/onelogin-use-dashboard.png b/docs/guides/images/auth/onelogin-use-dashboard.png
deleted file mode 100644
index ea9038ff..00000000
--- a/docs/guides/images/auth/onelogin-use-dashboard.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/register-oauth-application-form.png b/docs/guides/images/auth/register-oauth-application-form.png
deleted file mode 100644
index bd27fd70..00000000
--- a/docs/guides/images/auth/register-oauth-application-form.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/register-twitter-application.png b/docs/guides/images/auth/register-twitter-application.png
deleted file mode 100644
index 442eb680..00000000
--- a/docs/guides/images/auth/register-twitter-application.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/twitter-app-confirmation.png b/docs/guides/images/auth/twitter-app-confirmation.png
deleted file mode 100644
index e24e9d56..00000000
--- a/docs/guides/images/auth/twitter-app-confirmation.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/auth/twitter-app-keys.png b/docs/guides/images/auth/twitter-app-keys.png
deleted file mode 100644
index e13be110..00000000
--- a/docs/guides/images/auth/twitter-app-keys.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/minio-image-upload/create-bucket.png b/docs/guides/images/minio-image-upload/create-bucket.png
deleted file mode 100644
index ccfb6715..00000000
--- a/docs/guides/images/minio-image-upload/create-bucket.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/minio-image-upload/create-policy.png b/docs/guides/images/minio-image-upload/create-policy.png
deleted file mode 100644
index f9cbd3bf..00000000
--- a/docs/guides/images/minio-image-upload/create-policy.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/minio-image-upload/default-view.png b/docs/guides/images/minio-image-upload/default-view.png
deleted file mode 100644
index fadb50a4..00000000
--- a/docs/guides/images/minio-image-upload/default-view.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/minio-image-upload/docker-logs.png b/docs/guides/images/minio-image-upload/docker-logs.png
deleted file mode 100644
index a25f349a..00000000
--- a/docs/guides/images/minio-image-upload/docker-logs.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/minio-image-upload/open-edit-policy.png b/docs/guides/images/minio-image-upload/open-edit-policy.png
deleted file mode 100644
index 1dac7bea..00000000
--- a/docs/guides/images/minio-image-upload/open-edit-policy.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/s3-image-upload/bucket-policy-editor.png b/docs/guides/images/s3-image-upload/bucket-policy-editor.png
deleted file mode 100644
index d5f4427f..00000000
--- a/docs/guides/images/s3-image-upload/bucket-policy-editor.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/s3-image-upload/bucket-property.png b/docs/guides/images/s3-image-upload/bucket-property.png
deleted file mode 100644
index 9f4dc828..00000000
--- a/docs/guides/images/s3-image-upload/bucket-property.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/s3-image-upload/create-bucket.png b/docs/guides/images/s3-image-upload/create-bucket.png
deleted file mode 100644
index 925f0926..00000000
--- a/docs/guides/images/s3-image-upload/create-bucket.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/s3-image-upload/custom-policy.png b/docs/guides/images/s3-image-upload/custom-policy.png
deleted file mode 100644
index 01c570cd..00000000
--- a/docs/guides/images/s3-image-upload/custom-policy.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/s3-image-upload/iam-user.png b/docs/guides/images/s3-image-upload/iam-user.png
deleted file mode 100644
index b26be122..00000000
--- a/docs/guides/images/s3-image-upload/iam-user.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/images/s3-image-upload/review-policy.png b/docs/guides/images/s3-image-upload/review-policy.png
deleted file mode 100644
index 7173788a..00000000
--- a/docs/guides/images/s3-image-upload/review-policy.png
+++ /dev/null
Binary files differ
diff --git a/docs/guides/migrate-etherpad.md b/docs/guides/migrate-etherpad.md
index c3783c89..914a240d 100644
--- a/docs/guides/migrate-etherpad.md
+++ b/docs/guides/migrate-etherpad.md
@@ -12,7 +12,7 @@ require some creativity to work properly in your case. When I wrote this guide,
[Etherpad 1.7.0] and [CodiMD 1.2.1]. Good luck!
[Etherpad 1.7.0]: https://github.com/ether/etherpad-lite/tree/1.7.0
-[CodiMD 1.2.1]: https://github.com/hackmdio/codimd/tree/1.2.1
+[CodiMD 1.2.1]: https://github.com/codimd/server/tree/1.2.1
## 0. Requirements
@@ -21,7 +21,7 @@ require some creativity to work properly in your case. When I wrote this guide,
- running CodiMD server
- [codimd-cli]
-[codimd-cli]: https://github.com/hackmdio/codimd-cli/blob/master/bin/codimd
+[codimd-cli]: https://github.com/codimd/cli/blob/master/bin/codimd
## 1. Retrieve the list of pads
@@ -56,8 +56,8 @@ configuration settings `ETHERPAD_SERVER` and `CODIMD_SERVER`.
# Description: Migrate pads from etherpad to codimd
# Author: Daan Sprenkels <hello@dsprenkels.com>
-# This script uses the codimd command line script[1] to import a list of pads from
-# [1]: https://github.com/hackmdio/codimd-cli/blob/master/bin/codimd
+# This script uses the codimd command line script[1] to import a list of pads from
+# [1]: https://github.com/codimd/cli/blob/master/bin/codimd
# The base url to where etherpad is hosted
ETHERPAD_SERVER="https://etherpad.example.com"
@@ -80,7 +80,7 @@ for PAD_NAME in $1; do
# Download the pad
PAD_FILE="$(mktemp)"
curl "$ETHERPAD_SERVER/p/$PAD_NAME/export/txt" >"$PAD_FILE"
-
+
# Import the pad into codimd
OUTPUT="$(./codimd import "$PAD_FILE")"
echo "$PAD_NAME -> $OUTPUT" >>"$REDIRECTS_FILE"
diff --git a/docs/guides/migrations-and-breaking-changes.md b/docs/guides/migrations-and-breaking-changes.md
new file mode 100644
index 00000000..ef65db1c
--- /dev/null
+++ b/docs/guides/migrations-and-breaking-changes.md
@@ -0,0 +1,56 @@
+Migrations and Notable Changes
+===
+
+## Migrating to 1.4.0
+
+We dropped support for node 6 with this version. If you have any trouble running this version, please double check that you are running at least node 8!
+
+## Migrating to 1.3.2
+
+This is not a breaking change, but to stay up to date with the community
+repository, you may need to update a few urls. This is not a breaking change.
+
+See more at [issue #10](https://github.com/codimd/server/issues/10)
+
+**Native setup using git:**
+
+Change the upstream remote using `git remote set-url origin https://github.com/codimd/server.git`.
+
+**Docker:**
+
+When you use our [container repository](https://github.com/codimd/container)
+(which was previously `codimd-container`) all you can simply run `git pull` and
+your `docker-compose.yml` will be updated.
+
+When you setup things yourself, make sure you use the new image:
+[`quay.io/codimd/server`](https://quay.io/repository/codimd/server?tab=tags).
+
+**Heroku:**
+
+All you need to do is [disconnect GitHub](https://devcenter.heroku.com/articles/github-integration#disconnecting-from-github)
+and [reconnect it](https://devcenter.heroku.com/articles/github-integration#enabling-github-integration)
+with this new repository.
+
+Or you can use our Heroku button and redeploy your instance and link the old
+database again.
+
+## Migrating to 1.1.0
+
+We deprecated the older lower case config style and moved on to camel case style. Please have a look at the current `config.json.example` and check the warnings on startup.
+
+*Notice: This is not a breaking change right now but will be in the future*
+
+## Migrating to 0.5.0
+
+[migration-to-0.5.0 migration tool](https://github.com/hackmdio/migration-to-0.5.0)
+
+We don't use LZString to compress socket.io data and DB data after version 0.5.0.
+Please run the migration tool if you're upgrading from the old version.
+
+## Migrating to 0.4.0
+
+[migration-to-0.4.0 migration tool](https://github.com/hackmdio/migration-to-0.4.0)
+
+We've dropped MongoDB after version 0.4.0.
+So here is the migration tool for you to transfer the old DB data to the new DB.
+This tool is also used for official service.
diff --git a/docs/guides/minio-image-upload.md b/docs/guides/minio-image-upload.md
index 7f5796ca..258b0d90 100644
--- a/docs/guides/minio-image-upload.md
+++ b/docs/guides/minio-image-upload.md
@@ -1,7 +1,7 @@
Minio Guide for CodiMD
===
-***Note:** This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!*
+**Note:** *This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!*
1. First of all you need to setup Minio itself.
@@ -9,7 +9,7 @@ Minio Guide for CodiMD
production setup.
For checking it out and development purposes a non-persistent setup is enough:
- ```console
+ ```sh
docker run --name test-minio --rm -d -p 9000:9000 minio/minio server /data
```
@@ -18,29 +18,29 @@ Minio Guide for CodiMD
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)
+ ![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)
+ ![minio default view](../images/minio-image-upload/default-view.png)
-4. Create a bucket for HackMD
+4. Create a bucket for CodiMD
- ![minio create bucket](images/minio-image-upload/create-bucket.png)
+ ![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)
+ ![minio edit policy](../images/minio-image-upload/open-edit-policy.png)
*Open policy editor*
- ![minio policy adding](images/minio-image-upload/create-policy.png)
+ ![minio policy adding](../images/minio-image-upload/create-policy.png)
*Add policy for uploads*
-6. Set credentials and configs for Minio in HackMD's `config.json`
+6. Set credentials and configs for Minio in CodiMD's `config.json`
```JSON
"minio": {
@@ -58,7 +58,7 @@ Minio Guide for CodiMD
7. Set bucket name
```JSON
- "s3bucket": "hackmd"
+ "s3bucket": "codimd"
```
8. Set upload type.
@@ -79,7 +79,7 @@ Minio Guide for CodiMD
"port": 9000,
"secure": false
},
- "s3bucket": "hackmd",
+ "s3bucket": "codimd",
"imageuploadtype": "minio"
}
```
diff --git a/docs/guides/providing-terms.md b/docs/guides/providing-terms.md
index 1e580df9..73de2b37 100644
--- a/docs/guides/providing-terms.md
+++ b/docs/guides/providing-terms.md
@@ -15,3 +15,12 @@ To add a privacy policy you can use the same technique as for the terms of use.
See our example file `./public/docs/privacy.md.example` container some useful hints for writing your own privacy policy.
As with the terms of use, a link to the privacy notices will show up in the area where the release notes are provided on the index page.
+
+Setup your imprint
+===
+
+To add an imprint you can use the same technique as for the terms of use. The main difference is that the document is called `imprint.md`.
+
+It has to be provided under `./public/docs/` and will be automatically turned into a CodiMD document. It will also automatically updated as soon as you change the document on disk.
+
+As with the terms of use, a link to the imprint will show up in the area where the release notes are provided on the index page.
diff --git a/docs/guides/s3-image-upload.md b/docs/guides/s3-image-upload.md
index dc5e420d..7ca8dd12 100644
--- a/docs/guides/s3-image-upload.md
+++ b/docs/guides/s3-image-upload.md
@@ -1,18 +1,19 @@
-# Guide - Setup CodiMD S3 image upload
+Guide - Setup CodiMD S3 image upload
+===
-***Note:** This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!*
+**Note:** *This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!*
1. Go to [AWS S3 console](https://console.aws.amazon.com/s3/home) and create a new bucket.
- ![create-bucket](images/s3-image-upload/create-bucket.png)
+ ![create-bucket](../images/s3-image-upload/create-bucket.png)
2. Click on bucket, select **Properties** on the side panel, and find **Permission** section. Click **Edit bucket policy**.
- ![bucket-property](images/s3-image-upload/bucket-property.png)
+ ![bucket-property](../images/s3-image-upload/bucket-property.png)
3. Enter the following policy, replace `bucket_name` with your bucket name:
- ![bucket-policy-editor](images/s3-image-upload/bucket-policy-editor.png)
+ ![bucket-policy-editor](../images/s3-image-upload/bucket-policy-editor.png)
```json
{
@@ -32,15 +33,15 @@
5. Enter user page, select **Permission** tab, look at **Inline Policies** section, and click **Create User Policy**
- ![iam-user](images/s3-image-upload/iam-user.png)
+ ![iam-user](../images/s3-image-upload/iam-user.png)
6. Select **Custom Policy**
- ![custom-policy](images/s3-image-upload/custom-policy.png)
+ ![custom-policy](../images/s3-image-upload/custom-policy.png)
7. Enter the following policy, replace `bucket_name` with your bucket name:
- ![review-policy](images/s3-image-upload/review-policy.png)
+ ![review-policy](../images/s3-image-upload/review-policy.png)
```json
{
@@ -76,7 +77,7 @@
}
```
-9. In additional to edit `config.json` directly, you could also try [environment variable](https://github.com/hackmdio/hackmd#environment-variables-will-overwrite-other-server-configs).
+9. In additional to edit `config.json` directly, you could also try [environment variables](../configuration-env-vars.md).
## Related Tools