Discourse에서 Nextcloud 사용

안녕하세요,

저는 Ubuntu가 설치된 가상 머신에 Discourse V.3.5.0을 표준 방식으로 새로 설치했습니다. 이 서비스는 공개된 https://discourse.domain.de 주소를 통해 접근할 수 있습니다.
또한 Docker 시스템에서 실행되는 Nextcloud 설치 환경도 있으며, 이 역시 공개적으로 접근 가능한 https://cloud.domain.de 주소를 가지고 있습니다.
두 서비스 모두 개별적으로는 완벽하게 작동하고 있습니다.

현재 저는 Discourse의 특정 그룹 구성원들에게 Nextcloud의 특정 폴더에 파일을 업로드하고, 필요에 따라 OnlyOffice를 사용하여 편집하며, 해당 위치에 파일을 모으는 기능을 제공하고자 합니다.

Nextcloud 폴더를 위한 공개 링크와 비밀번호 조합을 생성하는 방식은 원하지 않습니다. 이 방법은 작동은 하지만, 포럼 외부에서 링크와 비밀번호 조합을 누가 사용하는지 통제할 수 없기 때문입니다.
또한 이렇게 하면 OnlyOffice를 활용할 수 없습니다.

Discourse의 모든 사용자를 Nextcloud에도 등록하는 것은 너무 많은 작업입니다.

또한, 자체 로그인 화면, Discourse용 그룹 관리, 데이터베이스 생성을 위해 Authelia 인스턴스를 구축하는 것도 솔직히 너무 많은 작업이라고 생각합니다.

참고로:
Redis, pgbouncer 뒤의 Postgresql, postfix, Nextcloud, OnlyOffice를 Docker 시스템에서 호스팅하고 ClamAV로 모니터링하는 NAS가 있습니다. 이 NAS는 Discourse가 실행되는 Ubuntu VM도 호스팅합니다. 모든 구성 요소는 NGINX 리버스 프록시 뒤에 연결되어 있습니다.

따라서 질문 드립니다:

Discourse에서 Nextcloud를 어떻게 활용하면 좋을까요?

아이디어를 주시면 감사하겠습니다.

Doc

GitHub - discourse/discourse-auth-proxy: An http proxy that uses the DiscourseConnect protocol to authenticate users · GitHub 가 필요하신 요구사항에 맞을 수 있습니다.

한 웹사이트에서 다른 웹사이트의 권한을 확인하여 사용자를 인증하고 싶다면, 두 시스템을 통합하면 됩니다. 이 작업은 상당한 노력이 필요합니다. 저는 한 번 시도해 본 적이 있으며, DiscourseConnect를 사용하여 인터페이스를 개발해야 했습니다. 실제로 이것이 가장 쉬운 방법이라고 생각합니다. 개발에 몇 시간 정도가 소요되었습니다. 다만 NextCloud에 플러그인을 설치하는 것이 얼마나 쉬운지는 잘 모르겠습니다. 가능해 보이기는 합니다.

오, 그걸 몰랐네요. 근데 이게 어떤 사용자가 무엇을 접근할 수 있는지 지정할 수는 없잖아요? 웹사이트 전체를 보호해서 포럼 사용자만 볼 수 있게 하는 건데, 일단 보게 되면 모든 내용을 다 볼 수 있잖아요.

시작할 때 허용된 그룹 목록을 지정할 수 있습니다.

맞아요. 따라서 웹사이트 전체를 여기에 넣지 않고, 특정 경로나 마법 같은 호스트명만 적용할 수도 있습니다.

작동하려면 상당한 조정이 필요할 것이지만, 시작하기에 적합한 구성 요소가 될 수 있습니다.

웹훅과 자동화 플랫폼을 사용하는 것을 좋아해서, 간단하게 이렇게 해볼 수 있습니다!

  1. 웹훅 설정을 합니다. Discourse에서 그룹에 가입할 때와 그룹을 탈퇴할 때 각각 하나씩 트리거되도록 합니다.
  2. 자동화 플랫폼에서 해당 웹훅을 수신하여 Nextcloud에서 사용할 수 있는 형식으로 변환합니다. 저는 이 용도로 huginn을 사용합니다 :black_bird:
  3. Nextcloud API를 통해 사용자를 생성하거나 그룹에 추가합니다.

이렇게 하면 Discourse의 그룹에 사용자를 초대하거나 삭제함으로써, 이에 해당하는 Nextcloud 그룹을 관리할 수 있습니다. 사용자 계정, 비밀번호 등에 대해서는 몇 가지 결정을 내려야 합니다. 이는 Discourse를 통해 외부 사이트 접근 권한을 빠르게 부여하는 방법입니다. :slight_smile:

좋네요! 저는 항상 discourse와 nextcloud 간의 더 매끄러운 통합을 원해 왔습니다. 저는 가정용 사이트로 nextcloud를 사용하거든요. 특히 discourse에서 nextcloud의 파일(예: 사진이나 PDF)에 대해 쉽게 이야기할 수 있는 기능이 정말 아쉬웠습니다.

저는 social login nextcloud 앱을 사용하여 단일 로그인(SSO)을 설정했습니다. 이를 통해 discourse 그룹을 nextcloud 그룹과 매핑하여, 다양한 유형의 사용자에게 서로 다른 nextcloud 폴더에 대한 접근 권한을 부여할 수 있습니다. 만약 해당 계정이 nextcloud에 아직 없다면, 제 discourse 사이트를 통해 처음 로그인할 때 자동으로 추가됩니다.

지금 내가 선택한 방식은 이렇습니다. Discourse를 SSO와 함께 '전방’에 두고, Nextcloud와那里的 그룹 권한을 '후방’에 배치하는 것입니다. Nextcloud는 자체 사용자 권한 없이 운영되어야 합니다.

진행 상황을 공유하겠습니다. 앱을 한 번 더 살펴보겠습니다!

감사합니다!