Различные вопросы по установке мультисайта

Мне интересно, что означает значение db_id: 2 в предложенной выше конфигурации?

Также, какова процедура добавления нового сайта в существующую настройку мультисайта? Это просто:

  • Обновить yaml
  • ./launcher bootstrap multisite [1]
  • ./launcher start multisite

Я задавался вопросом, есть ли способ избежать влияния на все остальные существующие сайты при выполнении полной инициализации (bootstrap) или пересборки (rebuild) и как-то просто добавить необходимую дополнительную базу данных?


  1. Сначала я попробовал ./launcher rebuild multisite, но это, похоже, не сработало ↩︎

Я думаю, что идентификатор базы данных больше не нужен.

Вы можете просто отредактировать файл мультисайта, добавив новый сайт, и выполнить команду

sv restart unicorn

а затем выполнить миграцию базы данных.

1 лайк

Вы настоящий спаситель!

Мне не хватало этой команды для перезапуска (я также пробовал sv reload unicorn, но этого почему-то было недостаточно).

Что касается создания базы данных, есть ли уже способ делать это автоматически? Было бы здорово иметь rake db:create[mynewdbname]. В противном случае я могу написать небольшой shell-скрипт.

В данный момент я создаю всё вручную (создаю БД и устанавливаю права доступа), а затем выполняю RAILS_DB=newdb rake db:migrate, чтобы заполнить её данными.

Просто хочу убедиться, что я не делаю ничего глупого:

  • В данный момент я редактирую файл multisite внутри Docker (/var/www/discourse/config/multisite.yml)
  • Создаю базу данных вручную
  • Запускаю rake db:migrate
  • Выполняю sv restart unicorn
  • Затем мне также приходится редактировать YAML-файл вне Docker, чтобы конфигурация multisite оставалась синхронизированной на случай будущих пересборок или обновлений.

Неужели я поступаю глупо, редактируя конфигурацию multisite в двух разных местах, когда уже есть способ внести изменения в одном месте и применить их?

1 лайк

Возможно ли немного привести эту документацию в порядок и добавить туда больше указаний? Во-первых, я крайне новичок в Docker, хотя и имею опыт работы с Linux-серверами, но не на уровне эксперта. Я человек старой школы, люблю cron-задачи, shell-скрипты и всякие подобные вещи, такие как мультисайты на Apache. Но здесь всё немного сложнее, и используется язык программирования, к которому я не привык. Возможно, стоит добавить демонстрационное видео? Было бы здорово, если бы Discourse сразу поддерживал мультисайты, и тогда вам нужно было бы лишь отредактировать несколько файлов и так далее.

2 лайка

Просто вставьте этот фрагмент текста и отредактируйте его под свои нужды.

Также вам потребуется либо обратный прокси, либо следование инструкции Настройка Let’s Encrypt для нескольких доменов / перенаправлений, чтобы получить сертификаты для всех доменов.

См. также Настройка мультисайтовой конфигурации с Let’s Encrypt без обратного прокси. Однако эту инструкцию нужно обновить, добавив ещё одну обязательную строку, которую можно найти по ссылке выше. Я собирался это сделать, но пока не успел.

1 лайк

Если я настраиваю мультисайт, куда мне указывать свой домен? На тот же IP-адрес, что и сервер (который также размещает другой форум)?

Да, укажите все домены на один и тот же IP-адрес сервера.
Настройте обратный прокси-сервер с использованием Nginx или Caddy.
Caddy — лучший вариант, так как он предоставляет бесплатные автоматические SSL-сертификаты для всех ваших доменов.

1 лайк

Я успешно использовал этот учебник для настройки мультисайтовой установки с Docker. Недавно я сталкивался с ошибкой при попытке обновления, и я считаю, что строку:

    - exec: cd /var/www/discourse && sudo -E -u discourse bundle exec rake multisite:migrate

следует изменить на:

    - exec: cd /var/www/discourse && sudo -H -E -u discourse bundle exec rake multisite:migrate

Может ли кто-нибудь подтвердить это или внести изменения в учебник?

1 лайк

Да. Я тоже столкнулся с этим. Вам нужно внести это изменение, иначе ваш запуск не удался бы.

2 лайка