Развертывал ли кто-нибудь Discourse с помощью Kamal?
Думаю, это можно сделать либо с помощью шаблона standalone, либо написав deploy.yml, в котором все контейнеры зависимостей будут указаны как аксессуары.
В документации указано, что недостаток шаблона standalone — более длительные простои при обновлении, но с Kamal этого не будет, благодаря его обновлениям без простоев (он сохраняет старый контейнер и переключает обратный прокси на новый только тогда, когда тот отвечает кодом HTTP 200).
Но это не сработает, потому что два контейнера не могут одновременно обращаться к одной и той же базе данных PostgreSQL. Вам придется создать собственный контейнер, который при запуске будет выполнять миграцию базы данных, или использовать новые (пока еще не поддерживаемые) контейнеры, которые делают то же самое. Чтобы это реализовать, нужен человек, который хорошо разбирается и в Discourse, и в Kamal. А поскольку пока никто не ответил, похоже, что такого специалиста здесь нет.
Я бы начал со стандартной установки, а потом разбирался, как заставить всё работать с Kamal.