Мы переезжаем на новый Droplet DigitalOcean и попытались использовать образ из маркетплейса. При запуске скрипта настройки он завершается с ошибкой на раннем этапе, так как наше доменное имя всё ещё указывает на текущий экземпляр в продакшене.
Мне нужно запустить эту новую установку, чтобы восстановить её резервную копию, а затем обновить DNS-записи.
Ошибка:
Проверка вашего доменного имени . . .
ПРЕДУПРЕЖДЕНИЕ: Порт 443 компьютера, по-видимому, недоступен по имени хоста: x
ПРЕДУПРЕЖДЕНИЕ: Соединение с x (порт 80) также не удаётся.
Это означает, что x разрешается в какой-то IP-адрес, который не ведёт к этой машине, где вы устанавливаете Discourse.
Первое, что нужно сделать, — убедиться, что x разрешается в IP-адрес этого сервера.
Обычно это делается в том же месте, где вы покупали домен.
Если вы уверены, что IP-адрес разрешается корректно, проблема может быть в брандмауэре.
Поиск в интернете по запросу «открыть порты ВАШЕ ОБЛАЧНОЕ ОБСЛУЖИВАНИЕ» может помочь.
Доменное имя действительно отвечает на портах 80 и 443, поэтому это сообщение об ошибке также, по-видимому, неверно.
Мы (команда Discourse) не управляем образом DO Marketplace, поэтому, боюсь, сможем оказать лишь ограниченную помощь в решении этой конкретной проблемы.
Да, мы это контролируем. Я не смотрел код, я предположил, что проверка исходит из изображения маркетплейса.
./discourse-setup предназначен как простой способ настройки Discourse — чтобы избежать необходимости вручную редактировать текстовый файл при запуске нового сайта Discourse. Ваш случай не является «типичным», который обрабатывает скрипт настройки.
В вашем случае, скорее всего, лучше всего будет скопировать файл containers/app.yml с текущего сервера на новый. В качестве альтернативы вы можете отредактировать файл вручную самостоятельно, как предложено в строках 75/76:
Но теперь я не могу импортировать резервную копию, так как не могу активировать свой временный аккаунт администратора:
(6) Отказано в загрузке скрипта ‘’, поскольку он нарушает следующую директиву политики безопасности контента: “script-src ”. Обратите внимание, что ‘script-src-elem’ явно не задан, поэтому используется ‘script-src’ в качестве запасного варианта.
Есть ли прямой способ восстановить из резервной копии или отключить CSP до этого момента?
cd /var/discourse
sudo ./launcher enter app
rails c
SiteSetting.content_security_policy = false
exit
exit
Обратите внимание: я бы сначала попробовал восстановить резервную копию через CLI — это решает вашу основную проблему (восстановление резервной копии), а не текущее препятствие (CSP).