Ciao a tutti!
Sto utilizzando l’installazione Docker di Discourse 2.6.0.beta2 dietro un proxy Nginx. Purtroppo gli utenti non possono reimpostare le proprie password. Arriva un’email con un link, ma il link sembra essere rotto indipendentemente da quanto velocemente si prova a utilizzarlo. Quando si clicca sul link per reimpostare la password dall’email, appare una faccina triste
e il messaggio “Qualcosa è andato storto”.
Nel pannello di amministrazione (https://mysite/logs/) non riesco a vedere alcun log relativo a quell’evento. E ciò che è anche strano è che il container Docker non registra nulla:
Questo è l’output di
dokcer 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
Il mio file app.yml
## Questo è il modello del container Docker Discourse "all-in-one", autonomo
##
## Dopo aver apportato modifiche a questo file, DOVETE eseguire la ricompilazione
## /var/discourse/launcher rebuild app
##
## SIATE *MOLTO* ATTENTI DURANTE LA MODIFICA!
## I FILE YAML SONO SUPER SUPER SENSIBILI A ERRORI NEGLI SPAZI O NELL'ALLINEAMENTO!
## Visitare http://www.yamllint.com/ per convalidare questo file quando necessario
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Scommentate queste due righe se desiderate aggiungere Lets Encrypt (https)
# - "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"
## Quali porte TCP/IP deve esporre questo container?
## Se desiderate che Discourse condivida una porta con un altro server web come Apache o nginx,
## consultate https://meta.discourse.org/t/17247 per i dettagli
expose:
# - 3040
- "127.0.0.1:3040:80"
params:
db_default_text_search_config: "pg_catalog.english"
upload_size: 20m
## Impostate db_shared_buffers al massimo al 25% della memoria totale.
## verrà impostato automaticamente da bootstrap in base alla RAM rilevata, oppure potete sovrascriverlo
db_shared_buffers: "128MB"
## può migliorare le prestazioni di ordinamento, ma aumenta l'utilizzo della memoria per connessione
#db_work_mem: "40MB"
## Quale revisione di Git dovrebbe utilizzare questo container? (default: tests-passed)
#version: tests-passed
env:
LANG: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## Quante richieste web simultanee sono supportate? Dipende dalla memoria e dai core della CPU.
## verrà impostato automaticamente da bootstrap in base alle CPU rilevate, oppure potete sovrascriverlo
UNICORN_WORKERS: 2
## TODO: Il nome di dominio a cui risponderà questa istanza di Discourse
## Obbligatorio. Discourse non funzionerà con un semplice indirizzo IP.
VIRTUAL_HOST: $$$$$$$$$$$$$$$$$$$$$$
VIRTUAL_PORT: 80
LETSENCRYPT_HOST: $$$$$$$$$$$$$$$$$$$$$44
LETSENCRYPT_EMAIL: $$$$$$$$$$$$$$$$$$$4
DISCOURSE_HOSTNAME: $$$$$$$$$$$$$$$$$
## Scommentate se desiderate che il container venga avviato con lo stesso
## nome host (opzione -h) specificato sopra (default "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: Elenco di email separate da virgola che diventeranno amministratori e sviluppatori
## all'iscrizione iniziale, esempio 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: '$$$$$$$$$$$'
## TODO: Il server di posta SMTP utilizzato per validare nuovi account e inviare notifiche
## INDIRIZZO SMTP, nome utente e password sono obbligatori
## ATTENZIONE: il carattere '#' nella password SMTP può causare problemi!
DISCOURSE_SMTP_ADDRESS: $$$$$$$$$$$$$$$
DISCOURSE_SMTP_PORT: $$$$$$$$$$$$
DISCOURSE_SMTP_USER_NAME: $$$$$$$$$$$$$$$$$$$
DISCOURSE_SMTP_PASSWORD: "$$$$$$$$$$$$$$$$"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (opzionale, default true)
## Se avete aggiunto il modello Lets Encrypt, scommentate qui sotto per ottenere un certificato SSL gratuito
# LETSENCRYPT_ACCOUNT_EMAIL: $$$$$$$$$$$$$$$
## L'indirizzo http o https CDN per questa istanza di Discourse (configurato per il recupero)
## consultate https://meta.discourse.org/t/14857 per i dettagli
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
## Il container Docker è senza stato; tutti i dati sono archiviati in /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## I plugin vanno qui
## consultate https://meta.discourse.org/t/19157 per i dettagli
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
## Qualsiasi comando personalizzato da eseguire dopo la compilazione
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"