La mia pagina degli aggiornamenti è completamente vuota.
Ho eseguito ./launcher rebuild app e sono riuscito ad aggiornare alla versione v2.6.0beta4, ma anche dopo, la pagina degli aggiornamenti rimane vuota. Il tag <body> per la pagina è:
Grazie. Ho avuto modo di provare queste soluzioni. Le varie opzioni in modalità sicura non hanno aiutato. Disabilitare tutti i plugin di terze parti e includere solo docker_manager non ha cambiato nulla. Rimane ancora una schermata bianca vuota.
Ho visto un post con lo stesso problema di inizio anno, ma l’autore originale ha smesso di rispondere, quindi non ci sono cause o soluzioni evidenti.
## questo è il modello del contenitore Docker Discourse standalone all-in-one
##
## Dopo aver apportato modifiche a questo file, DEVI eseguire il rebuild
## /var/discourse/launcher rebuild app
##
## FAI *MOLTA* ATTENZIONE DURANTE LA MODIFICA!
## I FILE YAML SONO SUPER SUPER SENSIBILI A ERRORI NELLO SPAZIAMENTO O NELL'ALLINEAMENTO!
## visita http://www.yamllint.com/ per validare questo file se necessario
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Scommenta queste due righe se desideri aggiungere Lets Encrypt (https)
# - "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"
- "templates/web.socketed.template.yml"
## quali porte TCP/IP dovrebbe esporre questo contenitore?
## Se vuoi che Discourse condivida una porta con un altro server web come Apache o nginx,
## consulta https://meta.discourse.org/t/17247 per i dettagli
expose:
# - "80:80" # http
# - "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## Imposta db_shared_buffers a un massimo del 25% della memoria totale.
## verrà impostato automaticamente da bootstrap in base alla RAM rilevata, oppure puoi 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 Git dovrebbe utilizzare questo contenitore? (default: tests-passed)
#version: tests-passed
env:
LANG: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## Quante richieste web concorrenti sono supportate? Dipende dalla memoria e dai core della CPU.
## verrà impostato automaticamente da bootstrap in base alle CPU rilevate, oppure puoi sovrascriverlo
UNICORN_WORKERS: 2
## TODO: Il nome di dominio a cui risponderà questa istanza di Discourse
## Obbligatorio. Discourse non funzionerà con un semplice numero IP.
DISCOURSE_HOSTNAME: <RIMOSSO PER PUBBLICAZIONE PUBBLICA>
## Scommenta se desideri che il contenitore venga avviato con lo stesso
## hostname (opzione -h) specificato sopra (default "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: Elenco di email separate da virgola che verranno rese amministratori e sviluppatori
## all'iscrizione iniziale, ad esempio 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: <RIMOSSO PER PUBBLICAZIONE PUBBLICA>
## TODO: Il server 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: smtp.mailgun.org
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: <RIMOSSO PER PUBBLICAZIONE PUBBLICA>
DISCOURSE_SMTP_PASSWORD: <RIMOSSO PER PUBBLICAZIONE PUBBLICA>
DISCOURSE_SMTP_ENABLE_START_TLS: true # (opzionale, default true)
## Se hai aggiunto il modello Lets Encrypt, scommenta qui sotto per ottenere un certificato SSL gratuito
LETSENCRYPT_ACCOUNT_EMAIL: <RIMOSSO PER PUBBLICAZIONE PUBBLICA>
## L'indirizzo CDN http o https per questa istanza di Discourse (configurato per il pull)
## consulta https://meta.discourse.org/t/14857 per i dettagli
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
# Configurazione S3
DISCOURSE_CDN_URL: <RIMOSSO PER PUBBLICAZIONE PUBBLICA>
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: "us-west-002"
DISCOURSE_S3_ENDPOINT: https://s3.us-west-002.backblazeb2.com
DISCOURSE_S3_ACCESS_KEY_ID: <RIMOSSO PER PUBBLICAZIONE PUBBLICA>
DISCOURSE_S3_SECRET_ACCESS_KEY: <RIMOSSO PER PUBBLICAZIONE PUBBLICA>
DISCOURSE_S3_CDN_URL: <RIMOSSO PER PUBBLICAZIONE PUBBLICA>
DISCOURSE_S3_BUCKET: <RIMOSSO PER PUBBLICAZIONE PUBBLICA>
DISCOURSE_S3_BACKUP_BUCKET: <RIMOSSO PER PUBBLICAZIONE PUBBLICA>
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_INSTALL_CORS_RULE: false
## Il contenitore 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
## consulta 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-user-notes
- git clone https://github.com/discourse/discourse-assign
- git clone https://github.com/discourse/discourse-policy
- git clone https://github.com/discourse/discourse-tooltips
- git clone https://github.com/discourse/discourse-saved-searches
- git clone https://github.com/discourse/discourse-knowledge-explorer
- git clone https://github.com/discourse/discourse-voting
- git clone https://github.com/discourse/discourse-translator
- git clone https://github.com/angusmcleod/discourse-elections
- git clone https://github.com/discourse/discourse-styleguide
- git clone https://github.com/Ahmedgagan/discourse-custom-trust-level
- git clone https://github.com/paviliondev/discourse-quick-messages
- git clone https://github.com/paviliondev/discourse-locations
- git clone https://github.com/discourse/discourse-calendar
# Archiviazione oggetti
after_assets_precompile:
- exec:
cd: $home
cmd:
- su discourse -c 'bundle exec rake s3:upload_assets'
## Qualsiasi comando personalizzato da eseguire dopo la compilazione
run:
- exec: echo "Inizio dei comandi personalizzati"
## Se desideri impostare l'indirizzo email 'From' per la tua prima registrazione, scommenta e modifica:
## Dopo aver ricevuto la prima email di iscrizione, riscommenta la riga. Deve essere eseguita solo una volta.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec: echo "Fine dei comandi personalizzati"
Con la disponibilità della versione 2.6.0.beta5 (io sono sulla 2.6.0.beta4), continuo ad avere una pagina di aggiornamento vuota. Sarei grato per qualsiasi ulteriore consiglio, dato che ho provato a disabilitare i plugin senza successo.
Dai un’occhiata agli strumenti di sviluppo di Chrome: ci sono errori nella console quando la pagina appare bianca? Il mio sospetto è che si tratti di qualcosa legato alla tua CSP.
Grazie, hai ragione: sta rifiutando il caricamento di uno script proveniente dalla mia CDN. Con gli URL sanificati:
upgrade:1 È stato rifiutato il caricamento dello script 'https://cdn-to-discourse.b-cdn.net/assets/docker-manager-app-32418f2f7cd50e6f4a0b8d13badc4e59f6a1ad74e7bed270f3a051478fed773d.js' perché viola la seguente direttiva della Content Security Policy: "script-src https://forum.example.com/logs/ https://forum.example.com/sidekiq/ https://forum.example.com/mini-profiler-resources/ https://cdn-to-s3.b-cdn.net/assets/ https://cdn-to-s3.b-cdn.net/brotli_asset/ https://forum.example.com/extra-locales/ https://cdn-to-discourse.b-cdn.net/highlight-js/ https://cdn-to-discourse.b-cdn.net/javascripts/ https://cdn-to-discourse.b-cdn.net/plugins/ https://cdn-to-discourse.b-cdn.net/theme-javascripts/ https://cdn-to-discourse.b-cdn.net/svg-sprite/ https://matomo.example.com". Si noti che 'script-src-elem' non è stato impostato esplicitamente, quindi viene utilizzato 'script-src' come fallback.
La pagina delle impostazioni di Sicurezza dice: “L’host corrente e la CDN sono inclusi per impostazione predefinita.” Dovrei aggiungere comunque manualmente la CDN alla whitelist?
Vedo che una questione identica è stata sollevata qui, senza una risposta definitiva sul motivo per cui l’elencamento in bianco predefinito non funzionava.
Sì, infatti, era così. Il plugin docker_manager stava caricando due file JS in un template utilizzando javascript_include_tag, che non è consapevole di DISCOURSE_S3_CDN_URL, quindi stava utilizzando come predefinito DISCOURSE_CDN_URL e causando problemi alla CSP.