Итак, насколько я понимаю, лучший способ — держать всё отдельно.
Основной сервер для запуска Discourse. Затем отдельный сервер для PostgreSQL и S3 (или любого другого сервиса объектного хранилища) для загрузок.
Мне кажется, что файл app.yml меняется нечасто, поэтому его достаточно сохранить один раз. Или, в крайнем случае, несколько раз в месяц.
Это позволяет делать резервные копии ваших файлов, причём более упорядоченным образом.
В таком случае решение не внедрять несколько ежедневных резервных копий в ядро кажется мне вполне логичным. С другой стороны, те, у кого сложные потребности, наверняка сами настроят подобную конфигурацию. В итоге вам просто нужно будет переустановить систему (при этом app.yml должен быть сохранён где-то отдельно), а затем подключить её к базе данных и к S3 для загрузок. Резервные копии хранятся на этих двух серверах отдельно, поэтому для меня это легко управляется. Я считаю это очень разумным решением.
Спасибо всем за разъяснения.