Caprover 설치

Caprover는 기본적으로 자체 호스팅(셀프호스팅)된 Heroku이며, Docker 컨테이너를 원클릭으로 배포할 수 있는 기능이 있습니다.

이러한 원클릭 앱의 세부 사항은 .yml 파일에 포함되어 있으며, 현재 Discourse용 파일이 하나 존재하지만 이는 Discourse 버전 2.4.4를 기반으로 합니다.

설치는 환경 변수 ALLOW_EMPTY_PASSWORD=yes에 의존합니다.
버전 2.4.4보다 새로운 버전의 Discourse를 설치하는 것은 단순히 작동하지 않습니다: PostgreSQL과 Redis 비밀번호를 환경 변수로 제공하도록 요구하는 오류가 발생합니다. 이를 제공하면 다른 방식으로 실패합니다(시도를 포기했기 때문에 정확히 기억나지 않습니다!).

버전 2.4.4를 설치한 후 대시보드에서 업그레이드를 시도해도 작동하지 않으며, Sidekiq가 실행 중이지 않다는 오류가 발생하고 애플리케이션에서 셸을 열 수 없습니다.

새로운 버전에서 작동하도록 .yml 파일을 수정할 만큼 Discourse, Docker 또는 Caprover의 작동 원리를 충분히 이해하지 못합니다!
어떤 힌트를 주실 수 있으신가요?

Caprover 팀으로부터 도움을 받을 수 없다면, 표준 설치를 진행한 후 데이터베이스를 새 인스턴스에 복원하는 것이 최선의 방법일 것입니다.

이 문제에 대한 업데이트가 있나요? 저도 Caprover를 통해 Discourse를 설치하려고 하고 있는데, 2.4.4 버전만 작동하며 이 버전은 안전하지 않은 빈 비밀번호를 사용합니다. 다른 버전을 시도하면 작동하지 않습니다.

비밀번호를 제공하면 다른 방식으로 실패하더군요 (시도를 포기해서 정확히 기억은 나지 않습니다!).

신규 설치를 시도하고, postgres 비밀번호 환경 변수를 설정하고, 컨테이너 내 postgres 비밀번호를 업데이트하는 등 제가 정확히 같은 경로를 거쳐도 여전히 작동하지 않았다는 점이 흥미롭네요…

표준 설치보다 훨씬 더 복잡해 보입니다. 이 구성 방식에서 어떤 점이 매력적이라고 느끼시나요? 단일 호스트에서 여러 웹사이트를 운영하시길 원하시나요?

여기서 업데이트를 받을 가능성은 매우 낮습니다. 왜냐하면 하려는 작업 자체가 기본적으로 지원되지 않기 때문입니다.

원클릭 설치 방식이며, 더 어렵지 않고 오히려 훨씬 쉽습니다. 유일한 문제는 2.4.4 버전만 작동한다는 점입니다.

그리고 네, 여러 앱/사이트가 있는 서버를 운영 중이며, discourse 인스턴스도 추가하고 싶습니다(기존 2.7.0 인스턴스를 마이그레이션).

정확히 어떤 부분이 지원되지 않나요? Caprover용 Discourse 원클릭 설치를 제공하는 것이 지원되지 않나요?

Caprover 팀에 문의해도 크게 도움이 되지 않습니다. 그들은 플랫폼 자체만 관리할 뿐, 각 앱 개발자가 Docker 컨테이너를 기반으로 한 자체 원클릭 설정 파일을 제공해야 하기 때문입니다. 또한 2.4.4 버전은 정상 작동하므로, 최신 버전에서 무엇이 변경되었는지 파악하고 수정하는 것은 쉽지 않을까 싶습니다.

여기서 우리가 지원하는 설치 방식은 표준 설치뿐입니다.

서드파티는 사용자가 자신의 제품, 서비스 또는 플랫폼을 이용하도록 장려하기 위해 패키지를 생성합니다.

경험해 보셨겠지만, 해당 패키지는 잘 유지 관리되지 않습니다. 그들이 유발하는 기술 부채를 우리가 모두 떠안을 수는 없지만, 미래에도 계속 작동할 수 있도록 Discourse를 설치하는 방법은 도와드릴 수 있습니다.

그렇게 가정하셔도 좋습니다. 이곳에서 사용자들을 도운 수년간의 경험에 따르면, 이러한 패키지는 예측할 수 없는 방식으로 깨질 수 있고 실제로도 깨집니다. 하지만 결국 그것은 당신, caprover, 그리고 패키지 개발자 사이의 문제입니다.

알겠습니다. 저도 앱 개발자라 이해는 하지만, 사용자가 앱을 더 쉽게 설치할 수 있는 방법은 분명히 있습니다. 예를 들어 Docker도 제3자 도구이지만 Docker 이미지를 제공하는 이유가 바로 그 때문입니다. 또한 DigitalOcean에서 Discourse용 원클릭 앱을 본 것 같습니다. 개발자가 사용자의 제품 설치를 위한 다양한 방법을 제공하고 다양한 플랫폼을 지원해야 한다고 생각합니다.

네, 개발자가 이를 지원하지 않으면 시간이 지나면서 문제가 생길 수 있습니다. 그래서 저는 개발자가 이를 생성하고 유지보수하며, 사용자가 다양한 환경에서 제품을 쉽게 설치할 수 있도록 하는 것이 개발자의 역할이라고 생각합니다.

개발자가 Windows용 빌드를 제공하고 Linux용 빌드를 제공하는 것과 같은 맥락이 아닌가요? 물론 개발자는 Linux만 지원한다고 선언하고, 제품을 사용하려면 Linux를 사용하도록 강제할 수 있습니다. 하지만 다른 플랫폼에 대한 지원도 추가할 수 있습니다.

또한, 지금까지 CapRover를 살펴본 결과, 해야 할 일은 올바른 yml 파일을 만드는 것뿐입니다. 이 파일은 제품 자체(또는该产品이 사용하는 기술)에 깨지는 업데이트가 없는 한 시간이 지나도 깨질 가능성이 낮습니다.

음, 고쳤다고 생각하는데, 이걸 봐: App issue: Discourse · Issue #803 · caprover/one-click-apps · GitHub

수리되어서 다행이네요! “원클릭”에는 아무도 어떻게 지원해야 하는지 모르는 100줄의 yml 파일이 포함된 것 같습니다.

여기서 Bitnami를 검색하면 사람들이 어려움을 겪는 사례를 많이 찾을 수 있습니다.