Ciao a tutti, sto cercando di far funzionare Multisite da alcuni giorni, ma senza successo.
Essere un lavoratore autonomo è piuttosto difficile in questo momento, quindi sto cercando di consolidare tutto su una singola VM.
Ho iniziato con un sito in un singolo container che è attivo da un po’ di tempo.
Poi l’ho messo dietro nginx per poter ospitare alcuni siti WordPress sullo stesso host. La gestione SSL è già a posto.
Il vecchio forum Discourse funziona bene, ma ora voglio aggiungere un nuovo forum utilizzando Multisite.
Ho seguito queste istruzioni: Multisite configuration with Docker
E ho aggiornato l’hook before_bundle_exec: con il nuovo nome host del forum.
Immagino che le mie domande siano:
- È solo il secondo nome host che va nell’hook
before_bundle_exec:? - È solo il primo nome host che va nella variabile
env: DISCOURSE_HOSTNAME:? - Le impostazioni SMTP nella sezione
env:si applicano a tutti i siti?
Ecco cosa ho attualmente in app.yml. Qualsiasi aiuto sarebbe molto apprezzato.
## questo è il modello del container Docker Discourse "all-in-one", standalone
##
## Dopo aver apportato modifiche a questo file, DEVI ricostruire
## /var/discourse/launcher rebuild app
##
## FAI MOLTO *ATTENZIONE* QUANDO MODIFICHI!
## I FILE YAML SONO SUPER SUPER SENSIBILI A ERRORI NELLO SPAZIAMENTO O NELL'ALLINEAMENTO!
## visita 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"
## 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 deve esporre questo container?
## Se desideri che Discourse condivida una porta con un altro server web come Apache o nginx,
## vedi 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 al massimo al 25% della memoria totale.
## verrà impostato automaticamente da bootstrap in base alla RAM rilevata, oppure puoi sovrascrivere
db_shared_buffers: "1024MB"
## può migliorare le prestazioni di ordinamento, ma aggiunge l'uso di memoria per connessione
#db_work_mem: "40MB"
## Quale revisione 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 puoi sovrascrivere
UNICORN_WORKERS: 4
## TODO: Il nome di dominio a cui risponderà questa istanza di Discourse
## Obbligatorio. Discourse non funzionerà con un semplice numero IP.
DISCOURSE_HOSTNAME: forum.braidholmplaygroup.co.uk
## Scommenta se desideri 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: 'foo@braidholmplaygroup.co.uk'
## 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: smtp.sendgrid.net
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: apikey
DISCOURSE_SMTP_PASSWORD:bar
#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: foo@braidholmplaygroup.co.uk
## L'indirizzo CDN per questa istanza di Discourse (configurato per recuperare)
## vedi https://meta.discourse.org/t/14857 per i dettagli
#DISCOURSE_CDN_URL: //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
## vedi https://meta.discourse.org/t/19157 per i dettagli
hooks:
after_postgres:
- exec: sudo -u postgres createdb b_discourse || exit 0
- exec:
stdin: |
grant all privileges on database b_discourse to discourse;
cmd: sudo -u postgres psql b_discourse
raise_on_fail: false
- exec: /bin/bash -c 'sudo -u postgres psql b_discourse <<< "alter schema public owner to discourse;"'
- exec: /bin/bash -c 'sudo -u postgres psql b_discourse <<< "create extension if not exists hstore;"'
- exec: /bin/bash -c 'sudo -u postgres psql b_discourse <<< "create extension if not exists pg_trgm;"'
after_code:
- exec:
cd: $home/plugins
cmd:
- mkdir -p plugins
- git clone https://github.com/discourse/docker_manager.git
before_bundle_exec:
- file:
path: $home/config/multisite.yml
contents: |
secondsite:
adapter: postgresql
database: b_discourse
pool: 25
timeout: 5000
db_id: 2
host_names:
#- forum.braidholmplaygroup.co.uk
- forum.tssss.org
after_bundle_exec:
- exec: cd /var/www/discourse && sudo -E -u discourse bundle exec rake multisite:migrate
## Qualsiasi comando personalizzato da eseguire dopo la costruzione
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"