高度な開発者インストール: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 表示が一部破損しており、管理者アカウントの登録後、ウィザードが進行せず、常に空白のページが表示されてしまいます。

ご多忙の折とは存じますが、何卒よろしくお願い申し上げます。

Mat

そのガイドは開発環境のセットアップを目的としたものであり、本番サーバー向けではありません。サーバーについては、公式にサポートされているのは Docker ガイドのみです:discourse/docs/INSTALL.md at main · discourse/discourse · GitHub

開発目的のガイドを使って本番サーバーに Discourse をインストールするのは、信頼性がなく、おそらく不可能だと思います。


ISP の問題を回避するか、外部プロバイダーで Discourse をホストすることを検討してみてはいかがでしょうか?

お早いご返信ありがとうございます。

「ガイド」については、あくまで参考までという意図でした。ご指摘の通り、Docker での試行も行いましたが、正常に動作させることはできませんでした。
リバースプロキシなどの設定はすべて完了しています。

セットアップ自体は問題なく完了しました。
しかし、管理者登録後、Discourse の表示スタイルが崩れ、管理画面では空白ページが表示されるのみです。また、ウィザードが起動しない、または進まないという状況です。データベースや Ruby アプリケーション内でも確認しましたが、管理者アカウントはアクティブでした。

ISPConfig 側からは、これは ISPConfig パネルとは無関係であり、Discourse 側の問題であるとの回答でした。また、ISPConfig は Docker をサポートしていないとも伝えられています。

問題は nginx の vhost 設定にあると考えていますが、ISPConfig のコントロールパネルにどの部分を挿入すればよいか(例えば Plesk の場合のように)がわかりません。こちらの投稿も読み、様々な試みを行ってきました。

そこで、Docker を使用せずにインストールする方法を試みました。例えば、以下のガイドが参考になります:Install Discourse Forum on Ubuntu 18.04 Without Docker

特別な設定は行いません。Docker によるデフォルトのセットアップと同様の構成です。

私が求めているサポートは、前述のデータベースマイグレーションで発生しているエラーが何なのか、という点です。

Web 上でも関連情報が見つからず、私の WordPress サイトへの統合(コメント機能やサポート機能など)に Discourse を活用したいと考えています。

もし Docker と ISPConfig の組み合わせで Discourse を動作させる方法をご存知であれば、それも大変助かります。これは私のサーバーですので、自由に設定を変更可能です。

唯一の制約は、Discourse をインストールする前に必ず ISPConfig をインストールしなければならない点です。ISPConfig は、100% 正常に動作させるためにクリーンなサーバー環境を必要とするためです。まず Docker で Discourse を入れ、その後に ISPConfig と他の設定を行うことは不可能です。

何卒よろしくお願いいたします。

Run other websites on the same machine as Discourse - #281 をご覧ください。

ISPConfig との連携は困難、あるいは不可能かもしれません。ISPConfig を使用して Discourse を運用したい場合は、ISPConfig のサポートにお問い合わせください。

Docker を使用して、Discourse と同じマシンで他の Web サイトを動かす という投稿の手順を試してみましたが、数時間経っても成功しませんでした。

ISPConfig が Docker をサポートしていないため、現在は Docker を使わない方法で検討していますが、以下のエラーメッセージについて助けていただけますでしょうか。

/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 ベータ版(Docker 経由でインストール可能)や GitHub から取得した他のリリース版も試しました。

ご協力よろしくお願いいたします。

ISPConfig は Discourse コミュニティではサポートされていません。

本番環境のサイトを、開発用インストールで実行しても良い結果は得られません。月額5ドルで Digital Ocean のドロプレット(または同様のもの)を取得でき、すぐに動作します。