Ошибки при экспорте данных из Teams в саморазмещенный Discourse на Digital Ocean

Всем привет!
Сталкнулся с проблемами при экспорте и восстановлении данных и прошу вашей помощи.

Контекст:
Хотел экспортировать данные из Discourse Teams на собственный сервер (droplet) в DigitalOcean.
Резервное копирование и восстановление прошли гладко, без проблем. Но после восстановления Discourse показывает следующее:


Dropshare Apps - upload anything anywhere on macOS and iOS (вот запись экрана — извините, этот форум не позволил загрузить её напрямую)

Я попытался восстановить данные ещё раз. Та же проблема.

Вот лог восстановления данных в формате txt:
Dropshare Apps - upload anything anywhere on macOS and iOS

Пожалуйста, помогите.

Редактирование:
Вот скриншот из /logs:
dsh.re/64209a (пожалуйста, добавьте https:// — извините, форум не позволил загрузить изображение или добавить ещё одну ссылку)

Привет, Яш! Жаль слышать, что у тебя возникли проблемы с резервным копированием и восстановлением. Ты уже пробовал безопасный режим? Просто добавь /safe-mode в конец URL. Затем ты сможешь увидеть, что происходит при отключении текущей темы, неофициальных плагинов или всех плагинов.

Также рекомендую проверить /logs и лог ошибок nginx, чтобы найти возможные ошибки, которые могут помочь в решении проблемы.

А что происходит, когда ты запускаешь ./launcher rebuild app из командной строки? Возможно, стоит попробовать запустить эту команду несколько раз. В прошлом это мне помогало.

И наконец, не мог бы ты поделиться содержимым файла containers/app.yml (без паролей и идентифицирующей информации о сайте), чтобы мы могли посмотреть, какие у тебя установлены плагины?

Привет, Тобиас,
Большое спасибо за быстрый ответ. Искренне ценю твою помощь.

  1. Когда я перехожу по адресу /safe-mode, мне предлагаются несколько вариантов с чекбоксами, например, отключить тему и т.д. После того как я отмечаю все из них и нажимаю «Далее», на фронтенде появляется та же ошибка.

В URL добавлено следующее: /?safe_mode=no_custom%2Cno_plugins%2Conly_official

Обрати внимание: это одношаговый Droplet от DigitalOcean, на котором пока не установлено никаких дополнительных плагинов. Однако в экземпляре Teams было много плагинов. Как ты думаешь, это может быть причиной проблемы?

  1. Вот содержимое /logs:
    Dropshare Apps - upload anything anywhere on macOS and iOS

  2. Сейчас пытаюсь запустить ./launcher rebuild app. Первая попытка не дала результата. Пробую снова. После входа в систему на фронтенде всё та же ошибка.

  3. Вот скриншот файла app.yml. Стоит ли мне экспортировать файл и отправить его сюда?

Есть ли у тебя какие-то мысли о том, что идёт не так?

Погодите. Единственный поддерживаемый способ установки — это discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

Пожалуйста, попробуйте этот метод и сообщите нам о результатах.

Discourse | DigitalOcean Marketplace 1-Click App — это не сработает? Мне придется удалить дроплет и настроить всё заново по инструкциям, которые вы предоставили. Я правильно понимаю?

Верно. Извините за это! Вам придется начать сначала.

Хорошо, попробую это и опубликую результаты здесь. Спасибо, Тобиас!

Привет, @tobiaseigen
Я настроил новый droplet, установил Discourse по инструкциям с GitHub. Войдя в систему, загрузил резервную копию и выполнил восстановление — та же ошибка.

Журнал восстановления:
Dropshare Apps - upload anything anywhere on macOS and iOS

Журнал ошибок в /logs

App.yml

Не могли бы вы помочь мне с дальнейшими шагами? Я также пробовал запускать rebuild и безопасный режим через launcher — та же ошибка. На данный момент я не устанавливал никаких плагинов.

Кстати, одношаговый установщик от DO использует Docker и последнюю версию с GitHub. Разве это не должно быть полностью идентично ручной установке?

Отлично, мы стали на шаг ближе. Я займусь этим, когда буду за компьютером.

Это проблема с загрузками. Система ищет имя бакета S3, но в новой среде оно не настроено.

Как была создана резервная копия и включены ли в неё все загрузки? В логе восстановления я не вижу никаких загрузок, что говорит о том, что в резервной копии их не было.

Ах! Был ли этот сайт закрыт до того, как вы создали резервную копию? Если нет, то активы находятся в S3, поэтому полное восстановление не удастся.

Чтобы резервное копирование работало корректно, необходимо включить скрытую настройку, чтобы все активы S3 включались в резервную копию.

Вполне возможно, что отмена сайта команды не автоматически включает эту настройку.

Я довольно уверен, что это обычная загрузка резервной копии, которая происходит при закрытии сайта. Она включает все загруженные файлы.

Завтра я лично проверю это и подтвержу, что процесс резервного копирования и восстановления на Teams работает как положено.

Я только что провел быстрое тестирование процесса резервного копирования и увидел, что загрузки действительно включены в файл резервной копии. Завтра я попробую разобраться, как восстановить это на свежем самостоятельно размещенном сайте.

Привет, @schleifer. Как правильно заметил Тобиас, резервная копия была создана из команд (стандартная загрузка резервной копии). Когда я нажал «Отменить подписку», мне предложили создать и загрузить резервную копию. После этого я сделал отдельную резервную копию через панель администратора. Оба файла имеют одинаковый размер, но ни один из них не работает на установке с самостоятельным хостингом.

@pfaffman — Нет-нет, сайт всё ещё был активен, когда я делал резервную копию. Насчёт скрытой настройки я не уверен. Возможно, проблема именно в ней.

@tobiaseigen — Когда я распаковываю файл tar.gz, в нём содержится только «dump.sql». Я не вижу папок с медиафайлами или вложениями. Неужели я что-то сделал неправильно при создании резервной копии?

Да. Это не та резервная копия, которая вам нужна. Если у вас есть только дамп SQL, вам нужно связаться с ними и запросить резервную копию с загрузками. Я почти уверен, что они всё исправят завтра, и у вас всё будет в порядке.

Обычно оно (конечно) не будет включать загрузки, но восстановление не должно завершаться неудачей из-за этого?

У меня были те же мысли: если файлы отсутствуют, разве Discourse не должен показывать все темы, внешние ссылки и обсуждения, даже без загруженных в систему вложений?

Я думаю, что если он извлечёт dump.sql.gz и переименует его в full-dump-filename.sql.gz, то восстановление произойдёт, но если использовать имя с tar.gz, система попытается обработать загрузки и завершится ошибкой. (Возможно, в настройках сайта есть что-то связанное с S3? Я не до конца понимаю.) На прошлой неделе была похожая тема, и тогда Герхард дал именно такую рекомендацию.

Но если он действительно хочет разместить сайт, ему нужны загрузки, так что ему лучше подождать полный дамп.

@biyaniyash, пожалуйста, перейдите на /admin/site_settings/category/all_results?filter=s3 на вашем новом сайте и отключите всё, что связано с S3, а затем попробуйте снова. Это должно заставить ваш сайт работать.

Привет, @tobiaseigen:
Вот что я вижу по умолчанию, когда перехожу на /admin/site_settings/category/all_results?filter=s3 на новом самостоятельно размещённом сайте Discourse:

Почти все варианты, кроме одного, по умолчанию отключены. Не могли бы вы подтвердить, какие шаги мне нужно предпринять?