Comecei a brincar com uma instância multissítio do Discourse e fiquei me perguntando: em vez de definir os sites nos hooks do app.yml, existe uma maneira de tornar isso um arquivo externo (como o multisite.yml, mas apenas no VPS hospedeiro, não dentro do contêiner Docker, pelo menos configurável a partir do hospedeiro) ou ter um arquivo .sh definindo os fóruns do Discourse em uma tabela de banco de dados?
Gostaria também de saber se existe um comando ou algo assim que eu possa executar para adicionar um novo site sem precisar reconstruir todo o aplicativo.
hooks:
after_postgres:
# isso teria que ser definido para cada sitedb de alguma forma, em vez 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
Os multissítios do Discourse são novidade para mim, mas já configurei e me sinto confortável com os multissítios do MediaWiki.