Всем привет!
Я использую установку Discourse 2.6.0.beta2 через Docker за прокси Nginx. К сожалению, пользователи не могут сбросить свои пароли. Письмо со ссылкой приходит, но ссылка, кажется, нерабочая, независимо от того, как быстро вы попытаетесь её использовать. При нажатии на ссылку сброса пароли из письма появляется грустный смайлик
и сообщение «Что-то пошло не так».
В панели администратора (https://mysite/logs/) я не вижу никаких логов, связанных с этим событием. И что ещё странно, контейнер Docker тоже ничего не логирует:
Это вывод команды
docker logs app
run-parts: executing /etc/runit/1.d/00-ensure-links
run-parts: executing /etc/runit/1.d/00-fix-var-logs
run-parts: executing /etc/runit/1.d/anacron
run-parts: executing /etc/runit/1.d/cleanup-pids
Cleaning stale PID files
run-parts: executing /etc/runit/1.d/copy-env
Started runsvdir, PID is 39
chgrp: invalid group: ‘syslog’
ok: run: redis: (pid 52) 0s
ok: run: postgres: (pid 50) 0s
rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
rsyslogd: activation of module imklog failed [v8.1901.0 try https://www.rsyslog.com/e/2145 ]
supervisor pid: 55 unicorn pid: 78
(55) Reopening logs
мой файл app.yml
## это шаблон контейнера Docker Discourse «всё в одном», автономный
##
## После внесения изменений в этот файл вы ОБЯЗАНЫ выполнить пересборку
## /var/discourse/launcher rebuild app
##
## БУДЬТЕ *ОЧЕНЬ* ОСТОРОЖНЫ ПРИ РЕДАКТИРОВАНИИ!
## YAML-ФАЙЛЫ ЧРЕЗВЫЧАЙНО ЧУВСТВИТЕЛЬНЫ К ОШИБКАМ В ПРОБЕЛАХ И ВЫРАВНИВАНИИ!
## посетите http://www.yamllint.com/, чтобы при необходимости проверить этот файл
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Раскомментируйте эти две строки, если хотите добавить Lets Encrypt (https)
# - "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"
## какие TCP/IP-порты должен открывать этот контейнер?
## Если вы хотите, чтобы Discourse использовал один порт с другим веб-сервером, например Apache или nginx,
## см. https://meta.discourse.org/t/17247 для деталей
expose:
# - 3040
- "127.0.0.1:3040:80"
params:
db_default_text_search_config: "pg_catalog.english"
upload_size: 20m
## Установите db_shared_buffers максимум на 25% от общего объёма памяти.
## будет установлено автоматически при загрузке на основе обнаруженной оперативной памяти, либо вы можете переопределить
db_shared_buffers: "128MB"
## может улучшить производительность сортировки, но увеличивает использование памяти на подключение
#db_work_mem: "40MB"
## Какую ревизию Git должен использовать этот контейнер? (по умолчанию: tests-passed)
#version: tests-passed
env:
LANG: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## Сколько одновременных веб-запросов поддерживается? Зависит от памяти и ядер CPU.
## будет установлено автоматически при загрузке на основе обнаруженных процессоров, либо вы можете переопределить
UNICORN_WORKERS: 2
## TODO: Доменное имя, на которое будет реагировать этот экземпляр Discourse
## Обязательно. Discourse не будет работать с чистым IP-адресом.
VIRTUAL_HOST: $$$$$$$$$$$$$$$$$$$$$$
VIRTUAL_PORT: 80
LETSENCRYPT_HOST: $$$$$$$$$$$$$$$$$$$$$44
LETSENCRYPT_EMAIL: $$$$$$$$$$$$$$$$$$$4
DISCOURSE_HOSTNAME: $$$$$$$$$$$$$$$$$
## Раскомментируйте, если хотите, чтобы контейнер запускался с тем же
## именем хоста (опция -h), что указано выше (по умолчанию "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: Список email-адресов через запятую, которые станут администраторами и разработчиками
## при первоначальной регистрации, например 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: '$$$$$$$$$$$'
## TODO: SMTP-сервер, используемый для проверки новых аккаунтов и отправки уведомлений
## SMTP-адрес, имя пользователя и пароль обязательны
## ВНИМАНИЕ: символ '#' в пароле SMTP может вызвать проблемы!
DISCOURSE_SMTP_ADDRESS: $$$$$$$$$$$$$$$
DISCOURSE_SMTP_PORT: $$$$$$$$$$$$
DISCOURSE_SMTP_USER_NAME: $$$$$$$$$$$$$$$$$$$
DISCOURSE_SMTP_PASSWORD: "$$$$$$$$$$$$$$$$"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (опционально, по умолчанию true)
## Если вы добавили шаблон Lets Encrypt, раскомментируйте ниже, чтобы получить бесплатный SSL-сертификат
# LETSENCRYPT_ACCOUNT_EMAIL: $$$$$$$$$$$$$$$
## Адрес CDN http или https для этого экземпляра Discourse (настроен на извлечение)
## см. https://meta.discourse.org/t/14857 для деталей
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
## Контейнер Docker не сохраняет состояние; все данные хранятся в /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## Плагины размещаются здесь
## см. https://meta.discourse.org/t/19157 для деталей
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
# - git clone https://github.com/discourse/discourse-chat-integration.git
## Любые пользовательские команды для выполнения после сборки
run:
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: "types {"
to: |
set_real_ip_from 172.18.0.0/24;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
types {
docker_args:
- "--network=nginx-proxy"