Продвинутая установка для разработчика: ошибка при выполнении rake db:create db:migrate

Уважаемые коллеги,

Надеюсь, кто-нибудь сможет помочь мне с ошибкой, которую я получаю при попытке установки:

Debian 10
PHP 7.3.6
Nginx

Я следую этой инструкции:

https://github.com/discourse/discourse/blob/master/docs/DEVELOPER-ADVANCED.md

Но всегда на этапе миграции базы данных возникает следующая ошибка. Я также пробовал разные релизы, но проблема остаётся той же:

/var/www/discourse# RAILS_ENV=production bundle exec rake db:migrate
rake aborted! NoMethodError: undefined method `keys' for nil:NilClass
/var/www/discourse/app/models/global_setting.rb:57:in `load_defaults'
/var/www/discourse/config/application.rb:32:in `<top (required)>'
/var/www/discourse/Rakefile:5:in `require'
/var/www/discourse/Rakefile:5:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/ruby_executable_hooks:24:in `eval'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/ruby_executable_hooks:24:in `<main>'

Я также искал другие руководства или что-либо ещё в интернете, но не нашёл способов исправить эту ошибку или продолжить установку.

Я также пробовал способ установки через Docker — он работал на этапе настройки, НО он несовместим с используемым мной ISPConfig: при доступе к Discourse через поддомен возникают частичные сбои, а после регистрации учётной записи администратора мастер-настройки не продолжает работу и всегда отображается пустая страница.

Заранее спасибо и с уважением,

Мат

Эта инструкция предназначена для настройки сред разработки, а не продакшн-серверов. Для серверов мы официально поддерживаем только наши руководства по Docker: discourse/docs/INSTALL.md at main · discourse/discourse · GitHub

Я не думаю, что надёжно или даже возможно установить Discourse на продакшн-сервер, используя инструкцию, предназначенную для разработки.


Возможно, вам стоит попробовать обойти проблему с провайдером или разместить Discourse у внешнего хостинг-провайдера?

Спасибо за быстрый ответ.

Насчёт «руководства» — оно было нужно лишь для общего понимания. Как я уже упоминал, я пробовал использовать Docker, но так и не смог заставить всё работать корректно.

Я настроил обратный прокси и всё остальное.

Настройка прошла без проблем,
НО после регистрации администратора стиль Discourse ломается: отображается только пустая страница, а мастер настройки не запускается и не продолжается. Я проверил базу данных и Ruby-приложение — учётная запись администратора была/является активной.

IspConfig сообщает, что это не связано с их панелью управления, а является проблемой самого Discourse. Кроме того, Docker не поддерживается IspConfig.

Я думаю, проблема связана с настройками vhost в nginx, но я не знаю, какую именно часть нужно добавить в панель управления IspConfig (аналогично тому, как это делается, например, в Plesk). Я также прочитал сообщения здесь и пробовал разные варианты.

Поэтому я попытался установить Discourse без Docker, что возможно, например, по этому руководству: Install Discourse Forum on Ubuntu 18.04 Without Docker

Ничего особенного сделано не будет, так как процесс аналогичен стандартной настройке через Docker.

Мне нужна помощь в следующем: в чём заключается ошибка, возникающая при миграции базы данных, о которой упоминалось выше?

Я не нашёл ничего подобного в интернете, и мне бы хотелось использовать Discourse для своего сайта на WordPress, так как это идеальная интеграция для комментариев и дальнейшей поддержки.

Если у вас есть идея, как заставить Discourse работать с Docker и IspConfig — это тоже отлично. Это мой собственный сервер, и я могу использовать его любым способом.

Единственная проблема в том, что я обязан установить IspConfig перед Discourse, потому что IspConfig требует чистый сервер для 100% корректной работы. Сначала установить Discourse с Docker, а затем попытаться добавить IspConfig и остальное — невозможно.

Заранее спасибо.

См. Run other websites on the same machine as Discourse - #281

Скорее всего, это будет сложно или даже невозможно сделать в связке с ISPConfig. Если вы хотите запускать Discourse вместе с ISPConfig, обратитесь за помощью к разработчикам ISPConfig.

Я пробовал это, следуя публикации «Запуск других веб-сайтов на том же сервере, что и Discourse», чтобы заставить это работать с Docker, но спустя несколько часов успеха нет.

Моя последняя идея — отказаться от Docker, так как ISPConfig его не поддерживает, но мне нужна помощь в решении ошибки:

/var/www/discourse# RAILS_ENV=production bundle exec rake db:migrate

rake aborted! NoMethodError: undefined method `keys’ for nil:NilClass

/var/www/discourse/app/models/global_setting.rb:57:in load_defaults'/var/www/discourse/config/application.rb:32:in <top (required)>‘/var/www/discourse/Rakefile:5:in require'/var/www/discourse/Rakefile:5:in <top (required)>’/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rake-12.3.2/exe/rake:27:in <top (required)>'/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/ruby_executable_hooks:24:in eval’/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/ruby_executable_hooks:24:in `’

Я пробовал версию 2.4 beta, которая также устанавливается через Docker, а также различные другие релизы из GitHub.

Заранее спасибо.

Сообщество Discourse не поддерживает ISPConfig.

Запуск тестовой установки для рабочего сайта ни к чему хорошему не приведёт. За 5 долларов в месяц вы можете просто получить Droplet от DigitalOcean (или аналогичный), и всё будет работать.