Empecé a experimentar con una instancia multisitio de Discourse y me preguntaba si, en lugar de definir los sitios en los hooks de app.yml, existe una forma de hacerlo mediante un archivo externo (como multisite.yml, pero alojado en el VPS del host y no dentro del contenedor Docker, al menos configurable desde el host) o si es posible que un script .sh defina los foros de Discourse en una tabla de la base de datos.
También me gustaría saber si hay algún comando que pueda ejecutar para agregar un nuevo sitio sin tener que reconstruir toda la aplicación.
hooks:
after_postgres:
# esto tendría que configurarse de alguna manera para cada sitedb en lugar 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
Los multisitios de Discourse son nuevos para mí, pero he configurado y manejo con comodidad los multisitios de MediaWiki.