Ho iniziato a sperimentare con un’istanza multisito di Discourse e mi chiedevo: invece di definire i siti negli hook di app.yml, esiste un modo per rendere tutto questo un file esterno (come multisite.yml, ma solo sull’host VPS e non nel contenitore Docker, almeno configurabile dall’host) o far sì che uno script sh definisca i forum di Discourse in una tabella del database?
Vorrei anche sapere se esiste un comando da riga di comando o qualcosa di simile che possa eseguire per aggiungere un nuovo sito senza dover ricostruire l’intera applicazione.
hooks:
after_postgres:
# questo dovrebbe essere impostato in qualche modo per ogni sitedb invece che per 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
I multisiti di Discourse sono nuovi per me, ma ho configurato e mi trovo a mio agio con i multisiti di MediaWiki.