How to specify a different port (not 80) during installation?

I am installing this on the production server, which I already have a website running on port 80.

How do I specify a different port to install Discourse?

Currently it won’t let me install and says:

# ./discourse-setup
Port 80 appears to already be in use.

If you are trying to run Discourse simultaneously with another web
server like Apache or nginx, you will need to bind to a different port

See https://meta.discourse.org/t/17247

However the above link says “assumes you already have Discourse working”, but I don’t.

Yes, that does appear to be something of a chicken-and-egg problem… what the discourse-setup script does, more-or-less, is just copy samples/standalone.yml to containers/app.yml and edit a bunch of stuff in response to your answers to a bunch of questions. You can do the same thing yourself – copy the file, edit to suit. It’s how all installs used to be done before @codinghorror decided he wanted to show he could write bash scripts with the best of 'em. :grinning:

Just bear in mind that running on a different port that 80 and 443 isn’t really supported, and there will be some things broken.

If you really need to reuse the server you can set nginx in front to proxy request between discourse and he other site. There’s an howto for that.

Thank you for the answers!

what is it that actually isn’t working when using different ports? did it some months ago for a little test install and can’t see any issues …

now would have to do a more serious installation and am not sure if i should bother doing the nginx-proxy-thing or just change the ports as i did with the other…

tia,
markus.

It breaks some parts, and since isn’t a priority for us (you can just use a reverse-proxy + subdomain or subfolder) we won’t be spending time to add support for this.

well, what are these parts? i still couldn’t uncover any…

and for me at least - on a plesk managed server where it’s a bit harder to see what’s actually happening behind the scenes - this reverse-proxying so far seems over my head… and from what i found so far most plesk related howtos and threads essentially end up using different ports as well… :roll_eyes:

That’s mostly unknown, but when you use a port and find out that it didn’t work, you’ll know. And then you can’t get help here, because it’s not supposed to work.

Your best bet is to install on a separate server.

2020 年現在でも、Discourse は 80/443 以外のポートにインストールできない、あるいはすべきではないという状況は変わっていないのでしょうか?それとも、この問題は最終的に解決されたのでしょうか?

単純な問題に対処するために nginx をインストールするのは、かなり大掛かりな作業のように思えます!ほとんどのソフトウェアでは、バインドするポートを簡単に指定できます。また、app.yml には http/https のポートも記載されています。

はい、デフォルト以外のポートを使用する構成は、依然として本番環境でサポートされていません。

これを「問題」と呼ぶのは少し大げさかもしれません。最近、非標準ポートで何かを実行する理由はほとんどありません。現在は nginx や Traefik で簡単にプロキシ化でき、無料の SSL 証明書も至る所で見られます。

なぜそれが問題なのか、もう少し詳しく説明していただけませんか?

K-12 学校のサーバーにインストールしようとしているため、インストールできるソフトウェアやバインド可能なポートが制限されています。また、そのサーバーでは、学校が運用している他のサービスのために、80、443、8080 ポートで既に Apache が実行されています。

現代において、設定ファイルでポート定義をサポートし、ユーザーがポートを変更できるようにしない Linux サーバーソフトウェアがあるとは想像できません。telnet や ftp の時代から、現代の ssh や apache に至るまで、私が思い浮かぶすべてのソフトウェアはこのように動作しています。

はい、かつてはホストに複数の IP アドレスを設定するのが難しく、ホストヘッダーの設定も厄介でした。

現在では、単一の SAN 証明書に多数のドメインを設定し、リバースプロキシを使用してトラフィックを異なるソケットに転送することが可能で、すべてが :money_with_wings:無料 :money_with_wings: です。

標準的でないポートでアプリケーションを実行する必要がある時代は、すでに 長らく 過去のものとなりました。

Discourse のテストに使用できる単一のサーバーパッケージと単一のポートのインストール許可を得ました。しかし、Discourse はハードコードにより、すでに他チームが使用しているポートにバインドするように設定されているため、他のリバースプロキシソフトウェアをインストールする必要があると伝え、学校区レベルで他のチームの関与が必要だと説明することは、合意形成の決定的な障害となります。そのような変更が承認されることはまずありません。

その場合、オフサイトでのインストールを行うか、別の製品を探すしかありません。5ドルのVPSを使えば、Discourseを本格的にテストできます。無料トライアルを利用できる可能性もあります。

彼らに対して、多くのプロジェクトで採用されているトレンドについて説明する価値があるかもしれません。Dockerなどの技術を用いた自動インストールや、標準的なポート依存関係の構築は、現在では一般的になりつつあります。

すべての学校向けに、3 ヶ月間の条件なしトライアルを提供しています(COVID-19 and Discourse を参照)。

トライアル目的でこれを利用することができます。最終的にセルフホスティングを余儀なくされた場合でも問題ありません。データは引き継ぐことができます。

K-12の地元の学校を、コロナ禍の現在、親としてお手伝いしようとしています。しかし、ITインフラの運用方法を変えるよう、学校全体を説得しようとするのは…まず不可能でしょう。

人々が利用しているトレンドの普及については、他のすべてのLinuxサーバーソフトウェアがサポートしているように、公式にサポートされた「ポート」オプションを用意することをお勧めします。そうすれば、リバースプロキシを別途インストールすることなく、TCPポートを簡単に変更できるようになります。

サン、その COVID-19 のリンクをありがとう。彼らに伝えておきます。もう彼らのサーバーに変更を加えることは許可されないと思うので、できればその方法で進めてほしいです。

かつて私は大学教授として、そのように何度も挑戦してきました。あなたの言いたいことはよくわかります。最も簡単な解決策は、外部ホスティングを利用することです。帯域幅に余裕があり、データをキャンパス内に保存しなければならないという規則がないことを願っています。

CDCK が提供するホスティングではなく、セルフホスティングを希望される場合は、Digital Ocean と Mailgun を用いた無料のインストールをお手伝いします。技術担当者が多数の DNS レコードを作成してくれるのでなければ、独自ドメインを登録する方がおそらく簡単でしょう。

ご提案ありがとうございます。

この件を完了させるチャンスを逃してしまったようです。校長が、解決策は学校理事会から出る必要があるとし、このプロジェクトを中止しました。また、私がサーバーにインストールすることはできません。試す価値はありましたが、学校理事会はMicrosoft Teamsを解決策として検討しているとのことです。