Использование Nextcloud из Discourse

Всем привет,

Я установил новую версию Discourse 3.5.0 на виртуальную машину с Ubuntu. Это стандартная установка. Доступ к ней осуществляется по публичному адресу https://discourse.domain.de.

Помимо этого у меня есть установка Nextcloud в Docker-окружении, которая также доступна публично: https://cloud.domain.de.

Каждая из систем работает отлично по отдельности.

Теперь я хочу предоставить пользователям определённых групп в Discourse возможность загружать файлы в папку на Nextcloud, при необходимости редактировать их с помощью OnlyOffice и хранить их там.

Мне не хотелось бы создавать публичную ссылку на папку Nextcloud с паролем. Хотя это возможно, я не смогу контролировать, кто именно использует эту комбинацию ссылки и пароля за пределами форума. Кроме того, в таком случае использование OnlyOffice будет невозможно.

Создавать учётные записи всех пользователей Discourse в Nextcloud — это слишком много работы.

Кроме того, развёртывание отдельной инстансы Authelia с собственной страницей входа, управлением группами для Discourse и созданием базы данных кажется мне чрезмерно трудоёмким.

Кстати:
У меня есть NAS, в Docker-окружении которого работают Redis, PostgreSQL через pgbouncer, Postfix, Nextcloud и OnlyOffice, а также мониторинг с помощью ClamAV. На этом же NAS запущена виртуальная машина с Ubuntu, на которой работает Discourse. Всё это находится за NGINX, который выступает в роли обратного прокси.

Поэтому мой вопрос:

Как обеспечить доступ к Nextcloud из Discourse?

Заранее спасибо за любые идеи.

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. Создавайте пользователей и добавляйте их в группы через API Nextcloud

Таким образом, вы можете приглашать или удалять пользователей из группы Discourse для управления соответствующей группой в Nextcloud. При этом нужно будет принять некоторые решения относительно учётных записей пользователей, паролей и т. д. Это быстрый способ предоставить доступ к внешнему сайту из Discourse. :slight_smile:

Отлично! Я всегда мечтал о более бесшовной интеграции между Discourse и Nextcloud, которые я использую для своего семейного сайта. Чего мне действительно не хватает, так это возможности легко обсуждать в Discourse файлы из Nextcloud, например, фотографии или PDF-документы.

Я настроил единый вход с помощью приложения Nextcloud social login. Это позволяет мне сопоставлять группы Discourse с группами Nextcloud, предоставляя разным категориям пользователей доступ к разным папкам Nextcloud. Если учётная запись ещё не существует в Nextcloud, она автоматически создаётся при первом входе через мой сайт Discourse.

Вот путь, который я теперь для себя наметил. Discourse с SSO на «переднем плане», а Nextcloud и управление правами групп в ней — на «заднем плане». Nextcloud должна обходиться без собственных настроек прав пользователей.
Я отпишусь о том, как всё будет работать. Я ещё раз изучу это приложение!

Большое спасибо!