Ich habe angefangen, mit einer Multisite-Instanz von Discourse herumzuspielen und frage mich, ob es eine Möglichkeit gibt, dies nicht über die app.yml-Hooks zu definieren, sondern stattdessen eine externe Datei zu verwenden (ähnlich wie multisite.yml, jedoch nur auf dem Host-VPS und nicht im Docker-Container, zumindest so konfigurierbar vom Host aus) oder eine sh-Datei, die Discourse-Foren in einer Datenbanktabelle definiert.
Ich würde auch gerne wissen, ob es einen Befehl oder etwas Ähnliches gibt, das ich ausführen kann, um eine neue Site hinzuzufügen, ohne die gesamte App neu zu erstellen?
hooks:
after_postgres:
# Dies müsste irgendwie für jede Sitedb anstelle von b_discourse festgelegt werden
- 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
Discourse-Multisites sind neu für mich, aber ich habe MediaWiki-Multisites eingerichtet und fühle mich darin wohl.