From e52499316e106d21ca3da5b25bbbc6cb38b16ef2 Mon Sep 17 00:00:00 2001 From: Pavel Mineev Date: Sun, 11 Oct 2020 20:28:20 +0300 Subject: [PATCH] split docs by versions --- docs/1.6/README.md | 7 + docs/{ => 1.6}/email.md | 0 docs/{ => 1.6}/images/email_auth.png | Bin docs/{ => 1.6}/images/email_notifications.png | Bin docs/1.6/nginx-proxy.md | 50 +++++ docs/{ => 1.6}/subdomain.md | 0 docs/{ => 1.6}/telegram.md | 0 docs/1.6/translation.md | 49 +++++ docs/{ => latest}/README.md | 0 .../developers-guide/email-templates.md | 0 docs/latest/email.md | 202 ++++++++++++++++++ docs/latest/images/email_auth.png | Bin 0 -> 61581 bytes docs/latest/images/email_notifications.png | Bin 0 -> 29064 bytes docs/{ => latest}/nginx-proxy.md | 0 docs/{ => latest}/spa.md | 0 docs/latest/subdomain.md | 73 +++++++ docs/latest/telegram.md | 32 +++ docs/{ => latest}/translation.md | 0 18 files changed, 413 insertions(+) create mode 100644 docs/1.6/README.md rename docs/{ => 1.6}/email.md (100%) rename docs/{ => 1.6}/images/email_auth.png (100%) rename docs/{ => 1.6}/images/email_notifications.png (100%) create mode 100644 docs/1.6/nginx-proxy.md rename docs/{ => 1.6}/subdomain.md (100%) rename docs/{ => 1.6}/telegram.md (100%) create mode 100644 docs/1.6/translation.md rename docs/{ => latest}/README.md (100%) rename docs/{ => latest}/developers-guide/email-templates.md (100%) create mode 100644 docs/latest/email.md create mode 100644 docs/latest/images/email_auth.png create mode 100644 docs/latest/images/email_notifications.png rename docs/{ => latest}/nginx-proxy.md (100%) rename docs/{ => latest}/spa.md (100%) create mode 100644 docs/latest/subdomain.md create mode 100644 docs/latest/telegram.md rename docs/{ => latest}/translation.md (100%) diff --git a/docs/1.6/README.md b/docs/1.6/README.md new file mode 100644 index 00000000..d54c0310 --- /dev/null +++ b/docs/1.6/README.md @@ -0,0 +1,7 @@ +# Documentation and FAQ + +- [How to configure remark42 with nginx reverse proxy](nginx-proxy.md) +- [How to configure remark42 without a subdomain](subdomain.md) with Nginx or Caddy +- [Telegram notifications](telegram.md) +- [Setup email authentication and\or email notifications](email.md) +- [How to add new translation to remark42](translation.md) diff --git a/docs/email.md b/docs/1.6/email.md similarity index 100% rename from docs/email.md rename to docs/1.6/email.md diff --git a/docs/images/email_auth.png b/docs/1.6/images/email_auth.png similarity index 100% rename from docs/images/email_auth.png rename to docs/1.6/images/email_auth.png diff --git a/docs/images/email_notifications.png b/docs/1.6/images/email_notifications.png similarity index 100% rename from docs/images/email_notifications.png rename to docs/1.6/images/email_notifications.png diff --git a/docs/1.6/nginx-proxy.md b/docs/1.6/nginx-proxy.md new file mode 100644 index 00000000..385c15ed --- /dev/null +++ b/docs/1.6/nginx-proxy.md @@ -0,0 +1,50 @@ +## How to configure remark42 with nginx reverse proxy + +Example of nginx configuration (reverse proxy) running remark42 service on remark42.example.com + +``` +server { + listen 443; + server_name remark42.example.com; + ssl on; + ssl_certificate /etc/nginx/ssl/remark42.example.com.crt; + ssl_certificate_key /etc/nginx/ssl/remark42.example.com.key; + + gzip on; + gzip_types text/plain application/json text/css application/javascript application/x-javascript text/javascript text/xml application/xml application/rss+xml application/atom+xml application/rdf+xml; + gzip_min_length 1000; + gzip_proxied any; + + + location ~ /\.git { + deny all; + } + + location /index.html { + proxy_redirect off; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_pass http://remark42:8080/web/index.html; + } + + location / { + proxy_redirect off; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_pass http://remark42:8080/; + } + + access_log /var/log/nginx/remark42.log; + +} + +server { + listen 80; + server_name remark42.example.com; + return 301 https://remark42.example.com$request_uri; +} +``` + +note: `proxy_pass` points to internal DNS name `remark42` and expected to run from the same compose. If nginx runs outside of compose the real IP (or docker's bridge IP) should be used \ No newline at end of file diff --git a/docs/subdomain.md b/docs/1.6/subdomain.md similarity index 100% rename from docs/subdomain.md rename to docs/1.6/subdomain.md diff --git a/docs/telegram.md b/docs/1.6/telegram.md similarity index 100% rename from docs/telegram.md rename to docs/1.6/telegram.md diff --git a/docs/1.6/translation.md b/docs/1.6/translation.md new file mode 100644 index 00000000..5c7834bf --- /dev/null +++ b/docs/1.6/translation.md @@ -0,0 +1,49 @@ +## How to add new language translation to Remark42 + +Translation files are stored in [/frontend/app/locales](https://github.com/umputun/remark42/tree/master/frontend/app/locales) +directory with `.json` extension and content like following: + +```json +{ + "anonymousLoginForm.length-limit": "Username must be at least 3 characters long", + "anonymousLoginForm.log-in": "Log in", + "anonymousLoginForm.symbol-limit": "Username must start from the letter and contain only latin letters, numbers, underscores, and spaces", +<...> +} +``` + +### How to add a new translation + +We truly appreciate people spending time contributing their translations to remark42. Please go through the steps +below in order to have your translation start being available to all remark42 users and included in the next release. + +1. create a fork of [umputun/remark42](https://github.com/umputun/remark42) repo, and if you already have one please +pull the latest changes from the upstream master branch. It could be done like that: + ```shell + git remote add upstream https://github.com/umputun/remark42.git + git fetch upstream + git rebase upstream/master + git push + ``` +1. add new locale with [two-letter code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) +of the language you want to make the translation into to list in +[frontend/tasks/supportedLocales.json](https://github.com/umputun/remark42/blob/master/frontend/tasks/supportedLocales.json) +1. run `npm run translation:generate` in `frontend` folder +1. translate all values in the newly created json file in +[frontend/app/locales/](https://github.com/umputun/remark42/blob/master/frontend/app/locales/) +1. commit all changes above in your fork +1. test your changes in the interface: + 1. uncomment `locale: "ru"` line in [frontend/index.ejs](https://github.com/umputun/remark42/blob/master/frontend/index.ejs#L133) + and replace `ru` with your translation language code + 1. [run remark42 in Docker](https://github.com/umputun/remark42#development) by issuing following commands + from the root directory of your remark42 fork: + + ```shell + docker-compose -f compose-dev-frontend.yml build + docker-compose -f compose-dev-frontend.yml up + ``` + 1. open [http://127.0.0.1:8080](http://127.0.0.1:8080), log in, make a comment, make a reply to a comment, + and make sure that your translation looks as you expect it to look + 1. make a screenshot from [http://127.0.0.1:8080](http://127.0.0.1:8080) with your translation in place +1. after all previous steps are done, create a [Pull Request](https://github.com/umputun/remark42/pulls) to umputun/remark42 +repo with your changes, attaching a screenshot or two from your local test instance to it diff --git a/docs/README.md b/docs/latest/README.md similarity index 100% rename from docs/README.md rename to docs/latest/README.md diff --git a/docs/developers-guide/email-templates.md b/docs/latest/developers-guide/email-templates.md similarity index 100% rename from docs/developers-guide/email-templates.md rename to docs/latest/developers-guide/email-templates.md diff --git a/docs/latest/email.md b/docs/latest/email.md new file mode 100644 index 00000000..70279541 --- /dev/null +++ b/docs/latest/email.md @@ -0,0 +1,202 @@ +## Overview + +This documentation describes how to enable the email-related capabilities of Remark. + +- email authentication for users: + + enabling this will let the user log in using their emails: + + ![Email authentication](/docs/images/email_auth.png?raw=true) + +- email notifications for any users except anonymous: + + GitHub or Google or Twitter or any other kind of user gets the ability to get email notifications about new replies to their comments: + + ![Email notifications subscription](/docs/images/email_notifications.png?raw=true) + +## Setup email server connection + +To enable any of email functionality you need to set up email (SMTP) server connection using these variables: + +``` +SMTP_HOST +SMTP_PORT +SMTP_TLS +SMTP_USERNAME +SMTP_PASSWORD +SMTP_TIMEOUT +``` + +### Mailgun + +This is an example of a configuration using [Mailgun](https://www.mailgun.com/) email service: + +```yaml +- SMTP_HOST=smtp.eu.mailgun.org +- SMTP_PORT=465 +- SMTP_TLS=true +- SMTP_USERNAME=postmaster@mg.example.com +- SMTP_PASSWORD=secretpassword +- AUTH_EMAIL_FROM=notify@example.com +- NOTIFY_EMAIL_FROM=notify@example.com +``` + +#### API + +When you don't want to expose your IP (which is impossible with any SMTP provider) +and for situations when connecting to external SMTP server is impossible due to firewall +settings is setting up an SMTP-to-API bridge and sending messages trough it. + +To use any of containers below with in remark42 environment set following two `SMTP` variables: + +```yaml +- SMTP_HOST=mail +- SMTP_PORT=25 +``` + +#### stevenolen/mailgun-smtp-server + +Here is `docker-compose.yml` configuration part spinning up a container for +[stevenolen/mailgun-smtp-server](https://hub.docker.com/r/stevenolen/mailgun-smtp-server): +```yaml + mailgun: + image: stevenolen/mailgun-smtp-server + container_name: "mail" + hostname: "mail" + + logging: + driver: json-file + options: + max-size: "10m" + max-file: "5" + + environment: + - MG_KEY=key-123456789 + - MG_DOMAIN=example.com +``` + +Please note that before +[stevenolen/mailgun-smtp-server#5](https://github.com/stevenolen/mailgun-smtp-server/issues/5) +is fixed, Europe domain names are not supported by this tool. + +### SendGrid + +This is an example of a configuration using [SendGrid](https://sendgrid.com/) email service: + +```yaml +- SMTP_HOST=smtp.sendgrid.net +- SMTP_PORT=465 +- SMTP_TLS=true +- SMTP_USERNAME=apikey +- SMTP_PASSWORD=key-123456789 +- AUTH_EMAIL_FROM=notify@example.com +- NOTIFY_EMAIL_FROM=notify@example.com +``` + +#### API + +When you don't want to expose your IP (which is impossible with any SMTP provider) +and for situations when connecting to external SMTP server is impossible due to firewall +settings is setting up an SMTP-to-API bridge and sending messages trough it. + +To use any of containers below with in remark42 environment set following two `SMTP` variables: + +```yaml +- SMTP_HOST=mail +- SMTP_PORT=25 +``` + +#### fgribreau/smtp-to-sendgrid-gateway + +Here is `docker-compose.yml` configuration part spinning up a container for +[fgribreau/smtp-to-sendgrid-gateway](https://hub.docker.com/r/fgribreau/smtp-to-sendgrid-gateway): +```yaml + sendgrid: + image: fgribreau/smtp-to-sendgrid-gateway + container_name: "mail" + hostname: "mail" + + logging: + driver: json-file + options: + max-size: "10m" + max-file: "5" + + environment: + - SENDGRID_API=key-123456789 +``` + +### Gmail + +Configuration example for Gmail: + +```yaml +- SMTP_HOST=smtp.gmail.com +- SMTP_PORT=465 +- SMTP_TLS=true +- SMTP_USERNAME=example.user@gmail.com +- SMTP_PASSWORD=secretpassword +- AUTH_EMAIL_FROM=example.user@gmail.com +- NOTIFY_EMAIL_FROM=example.user@gmail.com +``` + +### Amazon SES + +Configuration example for [Amazon SES](https://aws.amazon.com/ses/) (us-east-1 region): +```yaml +- SMTP_HOST=email-smtp.us-east-1.amazonaws.com +- SMTP_PORT=465 +- SMTP_TLS=true +- SMTP_USERNAME=access_key_id +- SMTP_PASSWORD=secret_access_key +- AUTH_EMAIL_FROM=notify@example.com +- NOTIFY_EMAIL_FROM=notify@example.com +``` + +A domain or an email that will be used in `AUTH_EMAIL_FROM` or `NOTIFY_EMAIL_FROM` must first be [verified](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-domain-procedure.html). + +[SMTP Credentials](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html) must first be obtained from [Amazon SES Console](https://console.aws.amazon.com/ses/home?region=us-east-1#smtp-settings:): + +## Setup email authentication + +Here is the list of variables which affect email authentication: + +``` +AUTH_EMAIL_ENABLE +AUTH_EMAIL_FROM +AUTH_EMAIL_SUBJ +AUTH_EMAIL_CONTENT_TYPE +AUTH_EMAIL_TEMPLATE +``` + +After you set `SMTP_` variables, you can allow email authentication by setting these two variables: + +```yaml +- AUTH_EMAIL_ENABLE=true +- AUTH_EMAIL_FROM=notify@example.com +``` + + +Usually, you don't need to change/set anything else. In case if you want to use a different email template set `AUTH_EMAIL_TEMPLATE`, for instance +`- AUTH_EMAIL_TEMPLATE="Confirmation email, token: {{.Token}}"`. See [verified-authentication](https://github.com/go-pkgz/auth#verified-authentication) for more details. + +## Setup email notifications + +Here is the list of variables which affect email notifications: + +```yaml +NOTIFY_TYPE +NOTIFY_EMAIL_FROM +NOTIFY_EMAIL_VERIFICATION_SUBJ +# for administrator notifications for new comments on their site +ADMIN_SHARED_EMAIL +NOTIFY_EMAIL_ADMIN +``` + +After you set `SMTP_` variables, you can allow email notifications by setting these two variables: + +```yaml +- NOTIFY_TYPE=email +# - NOTIFY_TYPE=email,telegram # this is in case you want to have both email and telegram notifications enabled +- NOTIFY_EMAIL_FROM=notify@example.com +``` diff --git a/docs/latest/images/email_auth.png b/docs/latest/images/email_auth.png new file mode 100644 index 0000000000000000000000000000000000000000..919926101b8cc744d22dcd7d8e83e4f6f924317b GIT binary patch literal 61581 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 literal 0 HcmV?d00001 diff --git a/docs/nginx-proxy.md b/docs/latest/nginx-proxy.md similarity index 100% rename from docs/nginx-proxy.md rename to docs/latest/nginx-proxy.md diff --git a/docs/spa.md b/docs/latest/spa.md similarity index 100% rename from docs/spa.md rename to docs/latest/spa.md diff --git a/docs/latest/subdomain.md b/docs/latest/subdomain.md new file mode 100644 index 00000000..5f7cb54b --- /dev/null +++ b/docs/latest/subdomain.md @@ -0,0 +1,73 @@ +## How to configure remark42 without a subdomain + +All README examples show configurations with remark42 on its own subdomain, i.e. `https://remark42.example.com`. However, it is possible and sometimes desirable to run remark42 without a subdomain, but just under some path, i.e. `https://example.com/remark42`. + +- The frontend URL looks like this: `s.src = 'https://example.com/remark42/web/embed.js;` + +- The backend `REMARK_URL` parameter will be `https://example.com/remark42` + +- And you also need to slightly modify the callback URL for the social media login API's: + - Facebook Valid OAuth Redirect URIs: `https://example.com/remark42/auth/facebook/callback` + - Google Authorized redirect URIs: `https://example.com/remark42/auth/google/callback` + - Github Authorised callback URL: `https://example.com/remark42/auth/github/callback` + +### docker-compose configuration + +Both Nginx and Caddy configuration below relies on remark42 available on hostname `remark42`, which is achieved by having `container_name: remark42` in docker-compose. + +Example `docker-compose.yaml`: + +```yaml +version: '2' +services: + remark42: + image: umputun/remark42:latest + container_name: remark42 + restart: always + environment: + - REMARK_URL=https://example.com/remark42/ + - SITE= + - SECRET= + - ADMIN_SHARED_ID= + volumes: + - ./data:/srv/var + logging: + options: + max-size: "10m" + max-file: "1" +``` + +### Nginx configuration + +The `nginx.conf` would then look something like: + +``` + location /remark42/ { + rewrite /remark42/(.*) /$1 break; + proxy_pass http://remark42:8080/; // use internal docker name of remark42 container for proxy + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +``` + +### Caddy configuration + +Example of Caddy configuration (`Caddyfile`) running remark42 service on `example.com/remark42/`: + +```caddy +example.com { + gzip + tls mail@example.com + + root /srv/www + log /logs/access.log + + # remark42 + proxy /remark42/ http://remark42:8080/ { + without /remark42 + transparent + } +} +``` diff --git a/docs/latest/telegram.md b/docs/latest/telegram.md new file mode 100644 index 00000000..42aaf347 --- /dev/null +++ b/docs/latest/telegram.md @@ -0,0 +1,32 @@ +## Telegram notifications + +In order to integrate notifications from remark42 with the [telegram](https://telegram.org), you should make [a channel](https://telegram.org/faq_channels) and obtain a token. This token should be used as `NOTIFY_TELEGRAM_TOKEN`. You also need to set `NOTIFY_TYPE=telegram` and set `NOTIFY_TELEGRAM_CHAN` to your channel. + +In order to get token "just talk to [BotFather](https://core.telegram.org/bots#6-botfather)". All you need is to send `/newbot` command, choose bot name and the name for your bot (it must end in `bot`). This is it, you got a token. + +_Example of such a "talk":_ + +``` +Umputun: +/newbot + +BotFather: +Alright, a new bot. How are we going to call it? Please choose a name for your bot. + +Umputun: +example_comments + +BotFather: +Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot. + +Umputun: +example_comments_bot + +BotFather: +Done! Congratulations on your new bot. You will find it at t.me/example_comments_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you've finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this. + +Use this token to access the HTTP API: +12345678:xy778Iltzsdr45tg + +For a description of the Bot API, see this page: https://core.telegram.org/bots/api +``` diff --git a/docs/translation.md b/docs/latest/translation.md similarity index 100% rename from docs/translation.md rename to docs/latest/translation.md