Лучшие практики настройки развертывания

Обычно файл app.yml редактируют для настройки параметров Discourse.

Кроме того, в How to avoid throttling limits with admin API key? - #7 by aas я обнаружил, что мне нужно изменить конфигурацию nginx, чтобы избежать ограничения скорости запросов к API.

Мой вопрос: каковы рекомендуемые лучшие практики для таких задач, как:

  • Версионирование файлов, таких как app.yml
    • Мне потребуется хранить его версию вне директории /var/discourse и перемещать в /var/discourse/containers/ каждый раз при изменении.
  • Изменение, переопределение или добавление новых шаблонов
    • templates/web.ratelimited.template.yml не игнорируется git. Хотя этот файл не менялся уже 6 лет, прямое редактирование кажется неразумным. Возможно, команда ./launcher rebuild перезапишет его. Или команды git pull завершатся ошибкой.

Возможное решение:

  • Создать собственный репозиторий git с файлом app.yml и шаблоном.
  • Написать GitHub Action, который использует Ansible для копирования app.yml в /var/discourse/containers/, а также копирования шаблона на сервер, где запущен Discourse.
    • В этом случае я мог бы исключить templates/web.ratelimited.template.yml из раздела шаблонов в app.yml и заменить его своим собственным шаблоном.

Вопросы:

  • Где было бы удобно разместить мой собственный шаблон?

Похоже, что я могу добавлять секции replace непосредственно в app.yml, вместо использования шаблонов, как упоминается здесь:

Да, с помощью App.yml вы можете создавать резервные копии и называть их так, как вам нужно.

Если вы изменяете определённый раздел, вы также можете добавлять комментарии. Я, как пользователь с самостоятельным размещением, организую свои плагины по категориям: официальные, Pavilion и другие. При установке нового плагина я добавляю комментарий в соответствующий раздел.

Однако у других могут быть лучшие идеи, чем мои.