Ошибка Bootstrap при установке Discourse: ENOENT - /etc/runit/1.d/letsencrypt

Вот обновление.

Добавление этого в секцию run в нижней части вашего файла app.yml решит проблему с запросом сертификатов для DISCOURSE_HOSTNAME и www.DISCOURSE_HOSTNAME через /usr/local/bin/letsencrypt.

- exec: sed -i "s|-d \${DISCOURSE_HOSTNAME}|-d \${DISCOURSE_HOSTNAME} -d www.\${DISCOURSE_HOSTNAME}|g" /usr/local/bin/letsencrypt

Раньше этого (как-то?) хватало, но теперь, когда поступает запрос на http://www.HOSTNAME/.well-known…, он перенаправляется на сайт без www, вместо отправки необходимого вызова. Я пытался сделать что-то вроде этого:

server {
  listen 80;
  listen [::]:80;
  server_name nzarchitecture.net.nz www.nzarchitecture.net.nz;

  # Обслуживание вызова ACME (Let's Encrypt)
  location ^~ /.well-known/acme-challenge/ {
    root /var/www/discourse/public;  # Убедитесь, что это совпадает с корневым каталогом Let's Encrypt
    allow all;
  }

  # Перенаправление всего остального на HTTPS
  location / {
    return 301 https://$host$request_uri;
  }
}

но так и не смог разобраться до конца.

Если кто-то из команды это читает, было бы здорово, если бы существовал хук letsencrypt, чтобы его можно было вызывать в after_letsencrypt. До внесения этих изменений в after_ssl всё работало, но теперь, если мы делаем так, это выполняется после SSL, но до letsencrypt.