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 포트에서 아파치가 실행되고 있습니다.

이 시대에 리눅스 서버 소프트웨어가 포트 정의를 설정 파일에 포함시켜 사용자가 포트를 변경할 수 있도록 지원하지 않는 이유가 무엇인지 상상이 되지 않습니다. 텔넷과 FTP 시절부터 현대의 SSH, 아파치 등 제가 떠올릴 수 있는 모든 소프트웨어가 그렇게 하고 있습니다.

물론, 과거에는 호스트에 여러 IP 주소를 할당하는 것이 더 어려웠고 호스트 헤더 설정도 더 까다로웠죠.

지금은 단일 SAN 인증서에 여러 도메인을 설정하고, 리버스 프록시를 사용해 트래픽을 다른 소켓으로 전달할 수 있으며, 모든 것이 :money_with_wings:무료:money_with_wings:입니다.

비표준 포트에서 앱을 실행해야 하던 시대는 오래전에 끝났습니다.

저는 단일 서버 패키지를 설치할 수 있는 권한과, Discourse를 테스트할 수 있는 단일 포트만 부여받았습니다. Discourse가 이미 다른 팀이 사용 중인 포트에 바인딩되도록 하드코딩되어 있어, 다른 리버스 프록시 소프트웨어를 설치해야 하므로 교육청 차원에서 다른 팀들의 협력이 필요하다고 설명하는 것은 협상 타결을 막는 결정적 장애물(deal breaker)이 됩니다. 그들은 그러한 변경 사항을 절대 승인하지 않을 것입니다.

그렇다면 유일한 선택지는 오프사이트에 설치하거나, 다른 제품을 찾아보는 것뿐입니다. 5달러짜리 VPS를 사용하면 Discourse를 충분히 테스트해 볼 수 있습니다. 무료 체험 기간을 확보할 수도 있습니다.

많은 프로젝트들이 채택하고 있는 몇 가지 트렌드에 대해 그들에게 알려주는 것이 도움이 될 수 있습니다. Docker와 같은 기술을 활용한 자동 설치와 표준 포트 의존성은 이제 표준이 되고 있습니다.

COVID-19 and Discourse 에 따르면, 모든 학교를 위해 3개월간의 무조건적인 시험 사용 기간을 제공하고 있습니다.

그것을 시험 목적으로 사용하시면 되고, 만약 나중에 자체 호스팅으로 전환해야 하는 상황이 발생해도 문제가 되지 않습니다. 데이터를 가져갈 수 있습니다.

코로나19 시기에 지역 초·중·고등학교를 돕기 위해 노력하는 부모로서, 학교 이사회 전체를 설득해서 IT 인프라를 변경해야 한다고 주장하는 것은… 가능성이 낮습니다.

사람들이 사용하는 트렌드를 채택하도록 교육하는 문제에 대해서는, 다른 리눅스 서버 소프트웨어처럼 지원되는 “포트” 옵션을 제공하여, 리버스 프록시를 설치하지 않고도 TCP 포트를 쉽게 변경할 수 있도록 하는 것을 권장합니다.

그 코로나19 링크를 보내줘서 고마워, 샘. 그들에게 알려줄게. 더 이상 서버 수정을 허락해 주지 않을 것 같으니,hopefully 그들이 그 방향으로 진행해 주길 바라.

저는 예전에 대학 교수였으며, 그 동안 계속 그런 시도를 해봤기 때문에 어떤 말씀인지 잘 압니다. 가장 쉬운 해결책은 외부에 호스팅하는 것입니다. Hopefully 캠퍼스에 대역폭이 충분하고, 데이터가 반드시 캠퍼스 내에 저장되어야 한다는 규칙이 없기를 바랍니다.

cdck에서 제공하는 것처럼 외부에 호스팅하는 대신 직접 호스팅(self-hosting)을 원하신다면, DigitalOcean과 Mailgun을 이용한 무료 설치를 제공해 드리겠습니다. 기술 담당 팀이 여러분을 위해 다수의 DNS 레코드를 생성해 주기로 동의하지 않는 한, 직접 도메인을 등록하는 것이 더 쉬울 것입니다.

제안해 주셔서 감사합니다.

이 일을 처리할 수 있는 시기를 놓친 것 같습니다. 학교장이 이 프로젝트를 중단했는데, 솔루션은 학교 이사회에서 나와야 한다고 하더군요. 또한 저는 서버에 이 프로그램을 설치할 권한이 없습니다. 시도해 볼 가치가 있었지만, 결국 학교 이사회가 Microsoft Teams를 솔루션으로 도입하는 방안을 조사하고 있는 것으로 보입니다.