Не удалось выполнить загрузку при первой установке

Спасибо за все детали. Хорошо, что вы это сделали:

но, скорее всего, это действие сохранится только до следующей перезагрузки. После перезагрузки его нужно будет выполнить снова. См. Мнение MKJ о конфигурации развёртывания Discourse для советов по тому, как сделать это постоянным.

Возможно, у вас слишком мало памяти (имеется в виду RAM + swap), хотя 2+4 должно быть достаточно. Пожалуйста, выполните следующие быстрые диагностические команды и опубликуйте результаты:

cat /etc/lsb-release
uptime
df -h /
free
swapon
vmstat 5 5
dmesg|egrep -i "memory|oom|kill"
ps auxrc

Также поделитесь здесь вашим файлом app.yml, но не указывайте пароли и секретные токены внутри него!

Если у вас есть возможность установить два SSH-соединения, вы можете использовать одно для запуска пересборки приложения, а другое — чтобы отслеживать, что происходит на машине. Мне нравится чередовать:

vmstat 5 5
ps auxrc

Возможно, вы используете свопирование на удалённый диск — сетевое хранилище (NAS) — и это известно как проблема. Это будет очень медленно. Возможно, это вызывает тайм-аут, и в этом заключается проблема. Может быть, есть способ настроить тайм-аут.

Я нашёл это — возможно, это поможет?

(Тайм-аут по умолчанию в systemd составляет 90 секунд, по крайней мере, в некоторых версиях systemd, так что это вполне подходит).

Вы можете попытаться обойти это, увеличив TimeoutStartSec в юните systemd для PostgreSQL (или даже глобально), хотя это, возможно, лишь скроет проблему до тех пор, пока следующая служба вдруг не перестанет запускаться.

Редактирование: если это так, то этот совет может быть полезен:

Вы можете раскомментировать в /etc/systemd/system.conf следующие строки:

DefaultTimeoutStartSec=90s
DefaultTimeoutStopSec=90s

и изменить значение на то, которое считаете подходящим.