Cette configuration permettra-t-elle de créer avec succès une deuxième instance Discourse (avec proxy)?

Je mets en place un deuxième site Discourse sur le même serveur, et j’utilise un proxy inverse pour gérer le trafic. Je ne suis pas très expérimenté avec les aspects techniques, je cherche donc des conseils pour m’assurer que tout est correctement configuré. Ci-dessous se trouve le fichier app1.yml que j’ai utilisé pour le nouveau conteneur.

Je souhaite savoir si cette configuration me permettra de faire fonctionner deux instances Discourse en parallèle.

Configuration (app1.yml) :

## c'est le modèle de conteneur Docker Discourse autonome tout-en-un
##
## Après avoir apporté des modifications à ce fichier, vous DEVEZ reconstruire
## /var/discourse/launcher rebuild app1
##
## SOYEZ *TRÈS* PRUDENT LORS DE L'ÉDITION !
## LES FICHIERS YAML SONT EXTRÊMEMENT SENSIBLES AUX ERREURS D'ESPACEMENT OU D'ALIGNEMENT !
## visitez http://www.yamllint.com/ pour valider ce fichier si nécessaire

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.socketed.template.yml"
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"
image: discourse/discourse:latest

## quels ports TCP/IP ce conteneur doit-il exposer ?
## Si vous souhaitez que Discourse partage un port avec un autre serveur web comme Apache ou nginx,
## consultez https://meta.discourse.org/t/17247 pour plus de détails
expose:
  #- "80"   # port HTTP interne
  #- "443"  # port HTTPS interne

params:
  db_default_text_search_config: "pg_catalog.english"
  db_shared_buffers: "2048MB"
  upload_size: 100m

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8
  DISCOURSE_DEFAULT_LOCALE: zh_CN
  DISCOURSE_FORCE_HTTPS: 'true'
  UNICORN_WORKERS: 8
  DISCOURSE_HOSTNAME: xxxx.com
  DISCOURSE_DEVELOPER_EMAILS: 'youremail@xxxx.com'
  DISCOURSE_SMTP_ADDRESS: xxxxx
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: your_smtp_username
  DISCOURSE_SMTP_PASSWORD: "your_smtp_password"
  DISCOURSE_NOTIFICATION_EMAIL: no-reply@xxxx.com
  LETSENCRYPT_ACCOUNT_EMAIL: me@example.com
  DISCOURSE_MAXMIND_LICENSE_KEY: xxxxxxx

volumes:
  - volume:
      host: /var/discourse/shared/app1
      guest: /shared
  - volume:
      host: /var/discourse/shared/app1/log/var-log
      guest: /var/log

hooks:
  after_postgres:
    - exec: sudo -u postgres createdb discourse_app1 || exit 0
    - exec:
         stdin: |
           grant all privileges on database discourse_app1 to discourse;
         cmd: sudo -u postgres psql discourse_app1
    - exec: /bin/bash -c 'sudo -u postgres psql discourse_app1 <<EOF\nalter schema public owner to discourse;\nEOF'
    - exec: /bin/bash -c 'sudo -u postgres psql discourse_app1 <<EOF\ncreate extension if not exists hstore;\nEOF'
    - exec: /bin/bash -c 'sudo -u postgres psql discourse_app1 <<EOF\ncreate extension if not exists pg_trgm;\nEOF'

run:
  - exec: echo "Beginning of custom commands"
  - exec: echo "End of custom commands"

Comme je ne suis pas très familier avec le codage, tout conseil ou amélioration de cette configuration serait grandement apprécié !

Vous devez commenter ces deux lignes si vous utilisez un proxy inverse.

De plus, il serait probablement préférable d’utiliser une configuration à deux conteneurs pour n’avoir qu’une seule base de données, mais vous avez besoin de deux redis. Vous pourriez également envisager le multisite.

Configuration multisite avec Docker

Configuration multisite avec Let’s Encrypt et sans proxy inverse

1 « J'aime »