J’ai commencé à jouer avec une instance Discourse multisite et je me demandais, au lieu de définir les sites dans les hooks d’app.yml, s’il existe un moyen de rendre cela possible via un fichier externe (comme multisite.yml, mais hébergé sur le VPS hôte et non dans le conteneur Docker, du moins configurable depuis l’hôte) ou d’avoir un fichier sh définissant les forums Discourse dans une table de base de données.
Je voudrais également savoir s’il existe une ligne de commande ou quelque chose de similaire que je puisse exécuter pour ajouter un nouveau site sans devoir reconstruire toute l’application.
hooks:
after_postgres:
# cela devrait être configuré pour chaque sitedb d'une manière ou d'une autre au lieu de b_discourse
- 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
host_names:
- sub.domain.tld
after_bundle_exec:
- exec: cd /var/www/discourse && sudo -H -E -u discourse bundle exec rake multisite:migrate
Les sites multiples de Discourse sont nouveaux pour moi, mais j’ai configuré et je suis à l’aise avec les sites multiples de MediaWiki.